Довідковий матеріал

Використання параметрів сеансу

1.1. Параметри сеансу призначені для зберігання значень певних типів для кожного клієнтського сеансу на час роботи цього сеансу. Ініціалізацію параметрів сеансу слід виконувати в модулі сеансу (див. нижче розділ 2.1), а їх значення рекомендується використовувати в запитах і умовах обмеження доступу до даних для поточного сеансу.Приклади параметрів сеансу:Установлення параметрів сеансу "за потребою". Див. також

Установлення параметрів сеансу "за потребою"

Див. також

 

1.1. Параметри сеансу призначені для зберігання значень певних типів для кожного клієнтського сеансу на час роботи цього сеансу. Ініціалізацію параметрів сеансу слід виконувати в модулі сеансу (див. нижче розділ 2.1), а їх значення рекомендується використовувати в запитах і умовах обмеження доступу до даних для поточного сеансу.
Приклади параметрів сеансу:

  • ТекущийПользователь – тип СправочникСсылка.Пользователи
  • ОбменДаннымиВключен – тип Булево
  • РабочееМестоКлиента – тип СправочникСсылка.РабочиеМеста

Параметри сеансу доступні з вбудованої мови 1С:Предприятия, наприклад:

ЗначениеТекущегоПользователя = ПараметрыСеанса.ТекущийПользователь;

У цьому випадку для встановлення або отримання значення параметра сеансу поточний користувач повинен бути наділений відповідним правом.

Також вони можуть використовуватися в текстах обмежень доступу, наприклад:

ГДЕ Документ.Пользователь = &ТекущийПользователь

В останньому випадку для отримання значення параметра сеансу наявність у поточного користувача відповідного права не потрібна.

1.2.Не рекомендується використовувати параметри сеансу для зберігання значень, що використовуються виключно в клієнтській логіці. Оскільки в клієнт-серверному варіанті 1С:Предприятия параметри сеансу зберігаються на сервері, то будь-яке їх зчитування або змінення в процесі роботи на клієнті потребуватиме додаткового серверного виклику та збільшить обсяг даних, що передаються з клієнта на сервер і назад.

У таких випадках слід використовувати глобальні змінні модуля керованого застосунку (і звичайного застосунку — для режиму звичайного застосунку, відповідно).

1.3. Також не рекомендується використовувати параметри сеансу для кешування обчислених значень, які багаторазово використовуються в серверній бізнес-логіці. У таких випадках слід визначати функцію в серверному загальному модулі з повторним використанням значень, що повертаються. Виняток становлять випадки, коли час обчислення результату функції модуля з повторним використанням значень, що повертаються, сумірний з періодом скидання платформного кешу.

Установлення параметрів сеансу "за потребою"

2.1. Не слід виконувати ініціалізацію параметрів сеансу під час запуску програми, оскільки:

  • не всі параметри сеансу запитуються з коду конфігурації під час запуску програми.
  • під час роботи програми можливе навмисне обнулення значень параметрів сеансу з коду вбудованою мовою.

Правильним способом встановлення значень параметрів сеансу є встановлення значень "за потребою" в обробнику УстановкаПараметровСеанса модуля сеансу. Тобто параметри сеансу мають бути ініціалізовані лише в той момент, коли до них відбувається перше звернення, як до невстановлених.

Приклад встановлення параметрів сеансу "за потребою":

Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)
	
	Если ИменаПараметровСеанса = Неопределено Тогда
		// Розділ встановлення параметрів сеансу на початку сеансу (ИменаПараметровСеанса = Неопределено)
		// Виконується встановлення параметрів сеансу, які можна ініціалізувати 
		// на початку роботи системи
		
	Иначе
		// Встановлення параметрів сеансу "за потребою"
		
		// Параметри сеансу, ініціалізація яких потребує звернення до одних і тих самих даних
		// слід ініціалізувати відразу групою. Щоб уникнути їх повторної ініціалізації,
		// імена вже встановлених параметрів сеансу зберігаються в масиві УстановленныеПараметры
		УстановленныеПараметры = Новый Массив;
		Для Каждого ИмяПараметра ИЗ ИменаПараметровСеанса Цикл
			УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры);
		КонецЦикла;
		
	КонецЕсли;
	
КонецПроцедуры
// Установити значення параметрів сеансу та повернути імена встановлених параметрів сеансу
// у параметрі УстановленныеПараметры.
//
// Параметри
// ИмяПараметра - Рядок - ім'я параметра сеансу, який потрібно встановити (ініціалізувати).
// УстановленныеПараметры - Масив - масив, до якого додаються імена
// встановлених (ініціалізованих) параметрів.
//
Процедура УстановитьЗначениеПараметраСеанса(Знач ИмяПараметра, УстановленныеПараметры)
	
	// Якщо в цьому виклику УстановкаПараметровСеанса параметр ИмяПараметра вже 
	// був установлений — повернення.
	Если УстановленныеПараметры.Найти(ИмяПараметра) <> Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Если ИмяПараметра <> "ТекущийПользователь" Тогда
		ПараметрыСеанса.ТекущийПользователь = <значение>;
		УстановленныеПараметры.Добавить(ИмяПараметра);
	КонецЕсли;
КонецПроцедуры

Див. також

  • Вплив зміни значень параметрів сеансу та функціональних опцій на продуктивність механізму обмеження доступу до даних
Записатися телефоном