Что такое параметры сеанса и где устанавливаются первоначальные значения
Программирование в 1С для всех
Параметры сеанса в 1С — это переменные, которые доступны в течение всего сеанса пользователя в любом месте конфигурации. Например, в параметрах сеанса можно хранить текущего пользователя, или имя компьютера.
Для примера, создадим параметр сеанса, который назовем ИмяТекущегоКомпьютера., в этом параметре будем хранить имя текущего компьютера. Для этого нужно выделить ветку «Параметры сеанса» в группе «Общие» дерева метаданных, вызвать контекстное меню, и в контекстном меню выполнить команду «Добавить».
В правой части экрана откроется палитра свойств параметра сеанса, где следует указать название, синоним и тип (в моем случае это будет тип Строка).
На всякий случай, проверим, есть ли права у нужной роли на этот параметр сеанса. Посмотреть на роли параметра сеанса можно в окне «Дополнительно». Откроем его: выделим созданный параметр сеанса, вызовем контекстное меню и выполним команду «Дополнительно».
В окне «Дополнительно» интересует закладка «Права», в которой следует проверить флажки у прав Получение и Установка для нужной роли.
Получение – это право на получение значения параметра сеанса;
Установка – это право на установку значения параметра сеанса;
Параметр сеанса создан, теперь необходимо написать алгоритм установки значения в этот параметра сеанса. Делается это в модуле сеанса.
Модуль сеанса в 1С
Модуль сеанса необходим для установки значений параметров сеанса. Мы уже создали единственный параметр сеанса в конфигурации – «Имя текущего компьютера».
Научимся устанавливать значение в этот параметр сеанса при запуске сеанса пользователя. Делается это в модуле сеанса. Откроем его. Модуль сеанса открывается достаточно просто: выделяется самый верхний узел конфигурации, вызывается контекстное меню, в котором необходимо выполнить команду «Открыть модуль сеанса».
Впоследствии откроется модуль сеанса, в котором нас интересует один-единственный обработчик событий «УстановкаПараметровСеанса». Создадим процедуру – обработчик события, для этого после открытия модуля сеанса выполним команду «Процедуры и функции», которая расположена в меню «Текст» главного меню (модуль должен быть активен).
В открывшемся окне нужно выделить единственную процедуру и нажать на кнопку «Перейти».
Будет создана процедура «УстановкаПараметровСеанса»
В этой процедуре параметру сеанса ИмяТекущегоКомпьютера установим имя текущего компьютера.
Проверим, как работает установка параметров сеанса. Для этого создадим обработку, форму обработки, и на управляемой форме обработки создадим реквизит ИмяКомпьютера, который разместим на форме в виде поля надписи.
Следующим шагом, создадим событие формы обработки ПриСозданииНаСервере, и в этом событии реквизиту формы обработки будем присваивать значение параметра сеанса.
Осталось проверить работу обработки.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Параметры сеанса в 1С 8.3
Параметры сеанса
Параметры сеанса предназначены для хранения каких-либо значений в течении всего сеанса пользователя. Например, имя текущего пользователя.
Параметры сеанса находятся в узле метаданных Общие — Параметры сеанса:
При создании нового параметра сеанса для него нужно указать имя и тип. Перечень возможных типов ограничен:
Помимо ссылочных типов, примитивных типов и других типов, можно указывать такие типы как: ФиксированныйМассив, ФиксированноеСоответствие и ФиксированнаяСтруктура.
Значения параметров сеанса хранятся отдельно для каждого пользователя, в течении всего сеанса пользователя.
Значения параметров сеанса сохраняются в сеансовых данных, на сервере. Изменять и читать значения параметров сеанса можно только на сервере. Если попытаться обратиться к параметрам сеанса на клиенте будет вызвана ошибка «Переменная не определена (ПараметрыСеанса)».
Для параметров сеанса можно назначать права доступа: на получение и на установку.
Если у пользователя нет права «Установка» для параметра сеанса, то установить параметр можно только в привилегированном общем модуле или в модуле сеанса (который всегда выполняется в привилегированном режиме).
Модуль сеанса
Данный модуль выполняется самым первым при загрузке конфигурации. Он всегда выполняется без контроля прав доступа (в привилегированном режиме).
В модуле сеанса есть только один обработчик УстановкаПараметровСеанса с одним параметром ТребуемыеПараметры (при этом ничто не мешает переименовать данный параметр). Данный обработчик предназначен для инициализации параметров сеанса.
При запуске системы и вызове данного обработчика, параметр ТребуемыеПараметры будет равен Неопределено. В дальнейшем, если обратиться к неинициализированному параметру сеанса, то будет вызван данный обработчик, а в параметре ТребуемыеПараметры будет содержаться массив с именами параметров сеанса, к которым было выполнено обращение. Если после вызова хотя бы один из параметров сеанса из данного массива все еще будет равен Неопределено, то будет вызвано исключение «Попытка получения неинициализированного значения параметра сеанса».
Работа с параметрами сеанса из встроенного языка
К параметрам сеанса можно обращаться только на сервере. Причем, можно как получать значения параметров, так и изменять. Обращение выполняется через свойство ПараметрыСеанса, после которого указывается имя параметра:
Параметры сеанса в 1С 8.3 и 8.2
Параметры сеансы 1С 8.3 — переменная, в которой хранится значение нужного параметра на время сеанса пользователя. По сути, это некая глобальная переменная, привязанная к сеансу текущего пользователя.
Использование параметров сеанса в 1С
Параметры сеанса задаются только программно, универсального интерфейса для установки параметров сеанса в системе нет. Обычно они задаются при старте системы, в «Модуле сеанса». Если параметр не определен, во время обращения к нему будет вызвана ошибка.
Пример установки параметра сеанса 1С
Рассмотрим типичный пример использования параметров сеанса — установку текущего пользователя. Пример я возьму из подготовки к специалисту по платформе.
В древе метаданных создадим новый параметр сеанса — ТекущийПользователь, назначим ему тип — СправочникСсылка.ФизическиеЛица:
В модуле сеанса создадим процедуру, в которой будет определяться текущий параметр сеанса:
После этого в любом месте конфигурации Вы можете узнать, кто же у нас текущий пользователь, просто используя конструкцию «ПараметрыСеанса.ТекущийПользователь».
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Использование параметров сеанса
Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1.1. Параметры сеанса предназначены для хранения значений определенных типов для каждого клиентского сеанса на время работы этого сеанса. Инициализацию параметров сеанса следует выполнять в модуле сеанса (см. ниже раздел 2.1), а их значения рекомендуется использовать в запросах и условиях ограничения доступа к данным для текущего сеанса.
Примеры параметров сеанса:
В этом случае, для установки или получения значения параметра сеанса текущий пользователь должен быть наделен соответствующим правом.
Также они могут использоваться в текстах ограничений доступа, например:
ГДЕ Документ.Автор = &ТекущийПользователь
В последнем случае для получения значения параметра сеанса наличия у текущего пользователя соответствующего права не требуется.
1.2. Не рекомендуется использовать параметры сеанса для хранения значений, используемых исключительно в клиентской логике. Поскольку в клиент-серверном варианте 1С:Предприятия параметры сеанса хранятся на сервере, то любое их считывание или изменение в процессе работы на клиенте потребует дополнительного серверного вызова и увеличит объем передаваемых данных с клиента на сервер и обратно.
В таких случаях следует использовать глобальные переменные модуля управляемого приложения (и обычного приложения – для режима обычного приложения, соответственно).
1.3. Также не рекомендуется использовать параметры сеанса для кеширования вычисленных значений, которые многократно используются в серверной бизнес-логике. В таких случаях следует определять функцию в серверном общем модуле с повторным использованием возвращаемых значений. Исключение составляют случаи, когда время вычисления результата функции модуля с повторным использованием возвращаемых значений соизмеримо с периодом сброса платформенного кеша.
Установка параметров сеанса «по требованию»
2.1. Не следует производить инициализацию параметров сеанса при запуске программы, так как:
Правильным способом установки значений параметров сеанса является установка значений «по требованию» в обработчике УстановкаПараметровСеанса модуля сеанса. Т.е. параметры сеанса должны быть инициализированы только в тот момент, когда к ним происходит первое обращение, как к неустановленным.
Пример установки параметров сеанса «по требованию»:
Если ИменаПараметровСеанса = Неопределено Тогда
// Раздел установки параметров сеанса при начале сеанса (ИменаПараметровСеанса = Неопределено)
// Выполняется установка параметров сеанса, которые можно инициализировать
// при начале работы системы
Иначе
// Установка параметров сеанса «по требованию»
// Параметры сеанса, инициализация которых требует обращения к одним и тем же данным
// следует инициализировать сразу группой. Для того, чтобы избежать их повторной инициализации,
// имена уже установленных параметров сеанса сохраняются в массиве УстановленныеПараметры
УстановленныеПараметры = Новый Массив;
Для Каждого ИмяПараметра Из ИменаПараметровСеанса Цикл
УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры);
КонецЦикла;
Если ИмяПараметра = «ТекущийПользователь» Тогда
ПараметрыСеанса.ТекущийПользователь = ;
ПараметрыСеанса. = ;
УстановленныеПараметры.Добавить(ИмяПараметра);
УстановленныеПараметры.Добавить(» «);
КонецЕсли;
Объект 1С «Параметры сеанса»
Объект «Параметры сеанса» предназначен для хранения значений определенных типов для каждого клиентского сеанса на время работы этого сеанса. По сути, это некая глобальная (. ) переменная, привязанная к сеансу текущего пользователя.
Параметры сеанса задаются только программно, универсального интерфейса для установки параметров сеанса в системе нет.
Инициализацию параметров сеанса следует выполнять в модуле сеанса (см. ниже), а их значения рекомендуется использовать в запросах и условиях ограничения доступа к данным для текущего сеанса. Если параметр не определен, во время обращения к нему будет вызвана ошибка.
Открытие модуля сеанса выполняется с помощью контекстного меню в окне конфигурации:
Примеры параметров сеанса 1С:
Параметры сеанса доступны из встроенного языка 1С:Предприятия, например:
В этом случае, для установки или получения значения параметра сеанса текущий пользователь должен быть наделен соответствующим правом.
Также они могут использоваться в текстах ограничений доступа, например:
В последнем случае для получения значения параметра сеанса наличия у текущего пользователя соответствующего права не требуется.
Особенности использования параметров сеанса 1С:
Установка параметров сеанса 1С по требованию
Правильным способом установки значений параметров сеанса является установка значений «по требованию» в обработчике УстановкаПараметровСеанса модуля сеанса. Т.е. параметры сеанса должны быть инициализированы только в тот момент, когда к ним происходит первое обращение, как к неустановленным.