Капитально об программе 1С 8.0-8.3-8.4, 7.7

Параметры сеанса: создание и использование

 

Параметры сеанса являются объектами метаданных и задаются в дереве конфигурации и предназначены для хранения временных, обычно примитивных значений:

 
Одной из целей параметров сеанса является замена глобальных переменных из 7.7. Вот об этом и пойдет речь в данной статье.
 
Наша задача будет состоять в том, чтобы из любого места конфигурации можно было узнать имя пользователя. Например, при создании документа, неплохо было бы знать его автора.
 
Создаем новый параметр и задаем ему имя «ТекущийПользователь» и заполняем свойства параметра:
 
 
Теперь нам необходимо задать параметру имя текущего пользователя. Открываем модуль сеанса:
 
 
и вставляем предопределнную процедуру УстановкаПараметровСеанса:

Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)
 
       Перем ИДПользователя,СпрПользователейДляПоиска,СсылкаНаНайденногоПользователя;
 
       Если ИменаПараметровСеанса = Неопределено Тогда
       Иначе
               СпрПользователейДляПоиска Справочники.Пользователи;
               ИДПользователя ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
               ПараметрыСеанса.ТекущийПользователь СпрПользователейДляПоиска.НайтиПоРеквизиту(«ИДПользователя»,ИДПользователя);
       КонецЕсли;
 
КонецПроцедуры

здесь мы из метаданных берем уникальный идентификатор пользователя, находим по этому реквизиту пользователя из справочника «Пользователи» и присваеваем ссылку пользователя нашему параметру «ТекущийПользователь».
 
Теперь чтобы воспользоваться параметром «ТекущийПользователь» на клиенте, создадим процедуру обертку которую можно будет вызвать откуда угодно. Например в общий модуль «ОМПользователи»:

//Возвращает ссылку на текущего пользователя базы данных
Функция ТекущийПользователь () Экспорт
 
       Возврат ПараметрыСеанса.ТекущийПользователь;
 
КонецФункции

 
Осталось  только создать какой нибудь документ, добавить туда реквизит «Автор»:
 
заполнить свойства:
 
разместить реквизиты на форме и к ней добавить событие «ПриСозданииНаСервере«:

&НаСервере
ПроцедураПриСозданииНаСервере(Отказ,СтандартнаяОбработка)
 
       Если НЕ ЗначениеЗаполнено(Объект.Ссылка)Тогда
               Объект.Автор=ОМПользователи.ТекущийПользователь();
       КонецЕсли;
 
КонецПроцедуры

 
Результат:
 
 

Какие типы можно использовать для параметра сеанса:

При начале работы или при первом обращении параметры сеанса должны быть заполнены значением иначе будет ошибка «попытка получения неинициализированного значения параметра сеанса».

Параметры сеанса могут использованы в шаблонах ограничения полей объектов при использовании ограничения доступа на уровне записей.

На тонком клиенте или веб-клиенте ПараметрыСеанса недоступны:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Возможен обмен с сервером.