1С 8.x Управляемое приложение 1С 7.7. Бухучет Статьи Ссылки
1С 8.x arrow Управляемое приложение arrow Параметры сеанса arrow Основные сведения по работе спараметрами сеанса
Основные сведения по работе спараметрами сеанса Печать

Что такое параметр сеанса

Объект конфигурации. Создается в конфигураторе в ветке «параметры сеанса» дерева конфигурации.

 

Назначение параметров сеанса

 

Предназначены для хранения значений в рамках текущей сессии (например, имени пользователя)

 

Могут быть использованы в RLS (ограничение доступа на уровне записей), к параметрам сеанса можно обращаться напрямую в запросах по ограничению доступа.

 

Какого типа может быть параметр сеанса

Обычные типы, плюс: ФиксированныйМассив, ФиксированноеСоответствие, ФиксированнаяСтруктура

 

Где можно устанавливать и читать параметры сеанса

Как устанавливать, так и читать параметры сеанса можно только на сервере. Значение параметров сеанса кэшируется.

 

Параметры сеанса инициализируются в модуле сеанса. Модуль сеанса исполняется до начала исполнения модуля управляемого приложения или модуля внешнего соединения. Модуль сеанса исполняется в привелигированном режиме (то есть, без контроля прав доступа).

 

Установка параметра сеанса происходит в обработчике события УстановкаПараметровСеанса(ИменаПараметровСеанса)модуля сеанса.

 

Обработчик УстановкаПараметровСеанса(ИменаПараметровСеанса) вызывается несколько раз:

  1. При старте информационной базы, когда отрабатывает модуль сеанса. В этом случае, знаечение ИменаПараметровСеанса, которое присутствует в параметрах обработчика события равно Неопределенно.

  2. Перед фактическим использованием параметров сеанса, которые не были инициализированы ранее. В этом случае, ИменаПараметровСеанса- содержит массив идентификаторов неинициализированных параметров сеанса, значения которых используются. Если после того, как обработчик отработает, хотя бы одно значение останется неинициализированным, то возникнет исключение.

    Пример инициализации параметров сеанса:

     

     

    Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)

     

           Если ИменаПараметровСеанса= Неопределено Тогда

    //При старте системы параметр не инициируем

           Иначе

    //Инициируем параметр при фактическом обращении

    //пример упрощен, надо бы еще проверить, что в параметре ИменаПараметровСеанса есть параметр

    //Текущий пользователь

                   ИД=ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;

                   ПараметрыСеанса.ТекущийПользователь= Справочники.Пользователи.НайтиПоРеквизиту("ИДПользователя",ИД);

           КонецЕсли;

     

    КонецПроцедуры

     

     

    Как прочитать параметр сеанса

     

    Прочитать параметр сеанса можно на сервере вот так:

     

    &НаСервере

    Функция ТекущийПользователь() Экспорт

           ВозвратПараметрыСеанса.ТекущийПользователь;

    КонецФункции