1С:Предприятие 8.2 /
Разработчикам /
Создание и изменение объектов метаданных
Использование параметров сеанса
Установка параметров сеанса "по требованию"
1.1. Параметры сеанса предназначены для хранения значений определенных типов для каждого клиентского сеанса на время работы этого сеанса. Инициализацию параметров сеанса следует выполнять в модуле сеанса (см. ниже раздел 2.1), а их значения рекомендуется использовать в запросах и условиях ограничения доступа к данным для текущего сеанса.
Примеры параметров сеанса:
- ТекущийПользователь – тип СправочникСсылка.Пользователи
- ОбменДаннымиВключен – тип Булево
- РабочееМестоКлиента – тип СправочникСсылка.РабочиеМеста
Параметры сеанса доступны из встроенного языка 1С:Предприятия, например:
ЗначениеТекущегоПользователя = ПараметрыСеанса.ТекущийПользователь;
В этом случае, для установки или получения значения параметра сеанса текущий пользователь должен быть наделен соответствующим правом.
Также они могут использоваться в текстах ограничений доступа, например:
ГДЕ Документ.Пользователь = &ТекущийПользователь
В последнем случае для получения значения параметра сеанса наличия у текущего пользователя соответствующего права не требуется.
1.2.Не рекомендуется использовать параметры сеанса для хранения значений, используемых исключительно в клиентской логике. Поскольку в клиент-серверном варианте 1С:Предприятия параметры сеанса хранятся на сервере, то любое их считывание или изменение в процессе работы на клиенте потребует дополнительного серверного вызова и увеличит объем передаваемых данных с клиента на сервер и обратно.
В таких случаях следует использовать глобальные переменные модуля управляемого приложения (и обычного приложения – для режима обычного приложения, соответственно).
1.3. Также не рекомендуется использовать параметры сеанса для кеширования вычисленных значений, которые многократно используются в серверной бизнес-логике. В таких случаях следует определять функцию в серверном общем модуле с повторным использованием возвращаемых значений. Исключение составляют случаи, когда время вычисления результата функции модуля с повторным использованием возвращаемых значений соизмеримо с периодом сброса платформенного кеша.
Установка параметров сеанса "по требованию"
2.1. Не следует производить инициализацию параметров сеанса при запуске программы , так как:
- не все параметры сеанса запрашиваются из кода конфигурации при запуске программы.
- при работе программы возможно намеренное обнуление значений параметров сеанса из кода на встроенном языке.
Правильным способом установки значений параметров сеанса является установка значений "по требованию" в обработчике УстановкаПараметровСеанса модуля сеанса. Т.е. параметры сеанса должны быть инициализированы только в тот момент, когда к ним происходит первое обращение, как к неустановленным.
Пример установки параметров сеанса "по требованию":
Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса) Если ИменаПараметровСеанса = Неопределено Тогда // Раздел установки параметров сеанса при начале сеанса (ИменаПараметровСеанса = Неопределено) // Выполняется установка параметров сеанса, которые можно инициализировать // при начале работы системы Иначе // Установка параметров сеанса "по требованию" // Параметры сеанса, инициализация которых требует обращения к одним и тем же данным // следует инициализировать сразу группой. Для того, чтобы избежать их повторной инициализации, // имена уже установленных параметров сеанса сохраняются в массиве УстановленныеПараметры УстановленныеПараметры = Новый Массив; Для Каждого ИмяПараметра ИЗ ИменаПараметровСеанса Цикл УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры); КонецЦикла; КонецЕсли; КонецПроцедуры
// Установить значения параметров сеанса и возвратить имена установленных параметров сеанса // в параметре УстановленныеПараметры. // // Параметры // ИмяПараметра - Строка - имя параметра сеанса, который требуется установить (проинициализировать). // УстановленныеПараметры - Массив - массив, в который добавляются имена // установленных (проинициализированных) параметров. // Процедура УстановитьЗначениеПараметраСеанса(Знач ИмяПараметра, УстановленныеПараметры) // Если в данном вызове УстановкаПараметровСеанса параметр ИмяПараметра уже // был установлен - возврат. Если УстановленныеПараметры.Найти(ИмяПараметра) <> Неопределено Тогда Возврат; КонецЕсли; Если ИмяПараметра <> "ТекущийПользователь" Тогда ПараметрыСеанса.ТекущийПользователь = <значение>; УстановленныеПараметры.Добавить(ИмяПараметра); КонецЕсли; КонецПроцедуры
См. также
- Влияние изменения значений параметров сеанса и функциональных опций на производительность механизма ограничения доступа к данным
Тренинг-семинар «Как получить работу бухгалтера»
Курсы бухгалтеров с трудоустройством
Курсы программирования 1С:Предприятие 8.2
Другие материалы по теме:
текущий пользователь, неопределено, иначе, конецпроцедуры, пользователи, приложения, программы, клиент, буфер обмена, копировать, раздел, установка, пользователь, обмен, возврат, значения, время, результат, конфигурирование, параметры, работы, установить, конфигурации
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Создание и изменение объектов метаданных
Другие материалы по теме:
Отказ от использования модальных окон
Нас находят: параметры сеанса 1с 8 2, 1с параметры сеанса, сеанс отсутствует или удален 1с 8 2, параметры сеанса 1с, 1с 8 2 параметры сеанса, установка параметров сеанса 1с 8 2, шибка инициализации модуля: SessionModule по причине: {SessionModule(6 2)}: Переменная не определена (СтандартныеПодсистемыСервер) <<?>>СтандартныеПодсистемыСервер УстановкаПараметровСеанса(ИменаПараметровСеанса); {SessionModule(10 2)}: Перемен, что такое параметры сеанса в 1с8 2, УстановкаПараметровСеанса, установить параметры сеанса 1с
Мы на Facebook