Параметры сеанса являются объектами метаданных и задаются в дереве конфигурации и предназначены для хранения временных, обычно примитивных значений:
Одной из целей параметров сеанса является замена глобальных переменных из 7.7. Вот об этом и пойдет речь в данной статье.
Наша задача будет состоять в том, чтобы из любого места конфигурации можно было узнать имя пользователя. Например, при создании документа, неплохо было бы знать его автора.
Теперь нам необходимо задать параметру имя текущего пользователя. Открываем модуль сеанса:
и вставляем предопределнную процедуру УстановкаПараметровСеанса:
Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)
Перем ИДПользователя,СпрПользователейДляПоиска,СсылкаНаНайденногоПользователя;
Если ИменаПараметровСеанса = Неопределено Тогда
Иначе
СпрПользователейДляПоиска = Справочники.Пользователи;
ИДПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
ПараметрыСеанса.ТекущийПользователь = СпрПользователейДляПоиска.НайтиПоРеквизиту(«ИДПользователя»,ИДПользователя);
КонецЕсли;
КонецПроцедуры
здесь мы из метаданных берем уникальный идентификатор пользователя, находим по этому реквизиту пользователя из справочника «Пользователи» и присваеваем ссылку пользователя нашему параметру «ТекущийПользователь».
Теперь чтобы воспользоваться параметром «ТекущийПользователь» на клиенте, создадим процедуру обертку которую можно будет вызвать откуда угодно. Например в общий модуль «ОМПользователи»:
//Возвращает ссылку на текущего пользователя базы данных
Функция ТекущийПользователь () Экспорт
Возврат ПараметрыСеанса.ТекущийПользователь;
КонецФункции
Осталось только создать какой нибудь документ, добавить туда реквизит «Автор»:
заполнить свойства:
разместить реквизиты на форме и к ней добавить событие «ПриСозданииНаСервере«:
&НаСервере
ПроцедураПриСозданииНаСервере(Отказ,СтандартнаяОбработка)
Если НЕ ЗначениеЗаполнено(Объект.Ссылка)Тогда
Объект.Автор=ОМПользователи.ТекущийПользователь();
КонецЕсли;
КонецПроцедуры
Результат:
Какие типы можно использовать для параметра сеанса:
- Все ссылочные (cправочники, документы, планы счетов и другие)
- Строка, Дата, Число
- ФиксированныйМассив
При начале работы или при первом обращении параметры сеанса должны быть заполнены значением иначе будет ошибка «попытка получения неинициализированного значения параметра сеанса».
Параметры сеанса могут использованы в шаблонах ограничения полей объектов при использовании ограничения доступа на уровне записей.
На тонком клиенте или веб-клиенте ПараметрыСеанса недоступны:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Возможен обмен с сервером.
Реклама — фантазирование об обычном предмете в извращенной форме.