6.10 Модуль сеанса и параметры сеанса
❓ 6.10 Модуль сеанса и параметры сеанса
📚 Документация
Заголовок раздела «📚 Документация»-
ИТС: Стандарты разработки — Использование параметров сеанса https://its.1c.ru/db/v8std/content/413/hdoc
-
ИТС: Руководство разработчика — Модуль сеанса и параметры сеанса https://its.1c.ru/db/v8doc/content/59/hdoc
🧠 Краткая теория
Заголовок раздела «🧠 Краткая теория»Модуль сеанса
Заголовок раздела «Модуль сеанса»Модуль сеанса выполняется на сервере и предназначен для действий, связанных с началом и работой сеанса, прежде всего — для инициализации параметров сеанса.
Особенности:
- выполняется в привилегированном режиме;
- содержит только процедуры и функции;
- не содержит переменных модуля и тела модуля.
Основной обработчик:
Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)
КонецПроцедурыКогда вызывается УстановкаПараметровСеанса
Заголовок раздела «Когда вызывается УстановкаПараметровСеанса»Обработчик вызывается платформой автоматически.
При начале сеанса:
Начало сеанса ↓УстановкаПараметровСеанса() ↓ПередНачаломРаботыСистемы()Но УстановкаПараметровСеанса вызывается не только при начале сеанса.
Если код впервые обращается к параметру сеанса, который еще не инициализирован:
ПараметрыСеанса.ТекущийПользователь ↓параметр еще не установлен ↓УстановкаПараметровСеанса() ↓значение параметра установлено ↓чтение продолжаетсяПолучается УстановкаПараметровСеанса может вызываться несколько раз за один сеанс.
Инициализация «по требованию»
Заголовок раздела «Инициализация «по требованию»»При первом вызове обработчика
УстановкаПараметровСеанса(ИменаПараметровСеанса):
ИменаПараметровСеанса = НеопределеноПри последующих вызовах платформа передает имена параметров, которые потребовалось инициализировать.
Это позволяет не рассчитывать все параметры сразу при запуске, а устанавливать их только тогда, когда они действительно понадобились.
👉 Такой подход — инициализацию параметров сеанса по требованию — рекомендуют стандарты разработки 1С.
Права на параметры сеанса
Заголовок раздела «Права на параметры сеанса»Для каждого параметра существуют два права:
- Получение — разрешает читать значение;
- Установка — разрешает изменять значение.
Если право Установка есть, параметр можно изменять из обычного прикладного кода:
ПараметрыСеанса.ТекущаяОрганизация = Организация;Если право Установка снято, значение можно установить только:
- в модуле сеанса;
- в общем модуле со свойством Привилегированный.
👉 Это позволяет защитить параметры, значение которых пользователь не должен иметь возможность произвольно менять.
🧠 Ключевая мысль
Заголовок раздела «🧠 Ключевая мысль»УстановкаПараметровСеанса — выполняется не только при запаске сеанса
Платформа может повторно вызвать обработчик при обращении к неинициализированному параметру сеанса. Поэтому параметры удобно устанавливать по требованию, а возможность их изменения дополнительно контролируется правом Установка.