Использование параметров сеанса
Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1.1. Параметры сеанса предназначены для хранения значений определенных типов для каждого клиентского сеанса на время работы этого сеанса. Инициализацию параметров сеанса следует выполнять в модуле сеанса (см. ниже раздел 2.1), а их значения рекомендуется использовать в запросах и условиях ограничения доступа к данным для текущего сеанса.
Примеры параметров сеанса:
- ТекущийПроект – тип СправочникСсылка.Проекты ;
- ОбменДаннымиВключен – тип Булево ;
- РабочееМестоКлиента – тип СправочникСсылка.РабочиеМеста .
Параметры сеанса доступны из встроенного языка 1С:Предприятия , например:
В этом случае, для установки или получения значения параметра сеанса текущий пользователь должен быть наделен соответствующим правом.
Также они могут использоваться в текстах ограничений доступа, например:
ГДЕ Документ.Автор = &ТекущийПользователь
В последнем случае для получения значения параметра сеанса наличия у текущего пользователя соответствующего права не требуется.
1.2. Не рекомендуется использовать параметры сеанса для хранения значений, используемых исключительно в клиентской логике. Поскольку в клиент-серверном варианте 1С:Предприятия параметры сеанса хранятся на сервере, то любое их считывание или изменение в процессе работы на клиенте потребует дополнительного серверного вызова и увеличит объем передаваемых данных с клиента на сервер и обратно.
В таких случаях следует использовать глобальные переменные модуля управляемого приложения (и обычного приложения – для режима обычного приложения, соответственно).
1.3. Также не рекомендуется использовать параметры сеанса для кеширования вычисленных значений, которые многократно используются в серверной бизнес-логике. В таких случаях следует определять функцию в серверном общем модуле с повторным использованием возвращаемых значений. Исключение составляют случаи, когда время вычисления результата функции модуля с повторным использованием возвращаемых значений соизмеримо с периодом сброса платформенного кеша.
Установка параметров сеанса «по требованию»
2.1. Не следует производить инициализацию параметров сеанса при запуске программы, так как:
- не все параметры сеанса запрашиваются из кода конфигурации при запуске программы.
- при работе программы возможно намеренное обнуление значений параметров сеанса из кода на встроенном языке.
Правильным способом установки значений параметров сеанса является установка значений «по требованию» в обработчике УстановкаПараметровСеанса модуля сеанса. Т.е. параметры сеанса должны быть инициализированы только в тот момент, когда к ним происходит первое обращение, как к неустановленным.
Пример установки параметров сеанса «по требованию»:
Если ИменаПараметровСеанса = Неопределено Тогда
// Раздел установки параметров сеанса при начале сеанса (ИменаПараметровСеанса = Неопределено)
// Выполняется установка параметров сеанса, которые можно инициализировать
// при начале работы системы
Иначе
// Установка параметров сеанса «по требованию»
// Параметры сеанса, инициализация которых требует обращения к одним и тем же данным
// следует инициализировать сразу группой. Для того, чтобы избежать их повторной инициализации,
// имена уже установленных параметров сеанса сохраняются в массиве УстановленныеПараметры
УстановленныеПараметры = Новый Массив;
Для Каждого ИмяПараметра Из ИменаПараметровСеанса Цикл
УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры);
КонецЦикла;
// Установить значения параметров сеанса и возвратить имена установленных параметров сеанса
// в параметре УстановленныеПараметры.
//
// Параметры
// ИмяПараметра — Строка — имя параметра сеанса, который требуется установить (проинициализировать).
// УстановленныеПараметры — Массив — массив, в который добавляются имена
// установленных (проинициализированных) параметров.
//
Процедура УстановитьЗначениеПараметраСеанса(Знач ИмяПараметра, УстановленныеПараметры)
// Если в данном вызове УстановкаПараметровСеанса параметр ИмяПараметра уже
// был установлен — возврат.
Если УстановленныеПараметры.Найти(ИмяПараметра) <> Неопределено Тогда
Возврат;
КонецЕсли;
Если ИмяПараметра = «ТекущийПользователь» Тогда
ПараметрыСеанса.ТекущийПользователь = ;
ПараметрыСеанса. = ;
УстановленныеПараметры.Добавить(ИмяПараметра);
УстановленныеПараметры.Добавить(«»);
КонецЕсли;
См. также
1с как инициализировать параметр сеанса
Ну ведь моя конфигурация состоит на 99% из БСП. Почему у меня то этого не произошло? Почему у меня отладчиком не инициализируются параметры? Да и как вообще они этим окном могут инициализироваться тоже не очень понятно?
Событие предназначено для инициализации параметров сеанса.
Вызывается системой:
при установке соединения с информационной базой до вызова всех остальных обработчиков. Значение параметра «Параметры сеанса» — Неопределено;
перед фактическим использованием значений параметров сеанса, которые не были инициализированы ранее. В этом случае значением параметра «Параметры сеанса» является массив идентификаторов неинициализированных параметров сеанса, значения которых используются. Если после выполнения обработчика хотя бы один из перечисленных параметров сеанса остается неинициализированным, то генерируется исключение.
Что то я уже ничего не понимаю. Вот код:
Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)
// СтандартныеПодсистемы
(*)СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса);
// Конец СтандартныеПодсистемы
// ТехнологияСервиса
ТехнологияСервиса.ВыполнитьДействияПриУстановкеПараметровСеанса(ИменаПараметровСеанса);
// Конец ТехнологияСервиса
Я ставлю точку на месте, где (*). Набираю в табло: ПараметрыСеанса.ТекущийПользователь. И в значении вижу «Администратор». Откуда БСП это берёт с потолка что ли? Откуда она знает под кем я зашёл, еще же ничего не инициализировалось же?
Или вы имеете в виду, что когда отладчик вычисляет выражение «ПараметрыСеанса.ТекущийПользователь» происходит инициализация? Это же не функция вроде
Параметры сеанса
Параметры сеанса — общий объект конфигурации, позволяющий хранить значения, к которым часто обращаются из программных модулей разных объектов.
Параметры сеанса инициируются для конкретной клиентской сессии при запуске прикладного решения, хранятся на сервере и кэшируются на клиенте. Инициализация параметров сеанса должна быть осуществлена программно .
Инициализация параметров сеанса выполняется в предопределенной процедуре УстановкаПараметровСеанса в модуле сеанса. При обращении к неинициализированному параметру сеанса происходит вызов именно этой процедуры. Если в процедуре не описано как инициализировать конкретный параметр, то это может привести к ошибке .


Параметры сеанса используется при ограничении доступа к данным на уровне записей в общем объекте конфигурации “Роли”.
- Предыдущий раздел: Подсистемы
- Следующий раздел: Роли
Оставить комментарий, задать вопрос.
Вы должны быть авторизованы для возможности комментировать запись.
- Без рубрики
- Комфортно переходим на бухгалтерию 3.0
- Курс по платформе 1С Предприятие
- Назад Подсистемы
- Далее Роли
Яндекс.Деньги – доступный и безопасный способ платить за товары и услуги через интернет. Пополнение счета и оплата заказов происходят в реальном времени на сайте платежной системы.
© 2023 Советник ИТ — ваш советник · Блог работает на WordPress & Русской версии шаблона Green Park 2.
Валидно XHTML 1.0 Transitional | Валидно CSS 3
Ошибка при получении значения атрибута контекста (ТекущийПользователь)
Эта процедура вызывается раньше чем ПриНачалеРаботыСистемы.
Ну а дальше подставлять сопоставленное значение при создании соответствующего документа:
Код 1C v 8.х
Док.Пользователь=ПараметрыСеанса.Пользователь;
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
[ Главная | FAQ: Все | 7.х | 8.х | 8.2 УП | 8.3 | Видео | Files | Forum | Freelance | Поиск | Реклама на HelpF.pro | Обратная связь ]
HelpF.pro [old Help1C.com] 2009-2023 Все материалы, размещенные на сайте, добавлены посетителями сайта или взяты из свободных источников. Подробнее.
