Параметры сеанса: создание и использование
Параметры сеанса являются объектами метаданных и задаются в дереве конфигурации и предназначены для хранения временных, обычно примитивных значений:
Создаем новый параметр и задаем ему имя «ТекущийПользователь» и заполняем свойства параметра:
Какие типы можно использовать для параметра сеанса:
- Все ссылочные (cправочники, документы, планы счетов и другие)
- Строка, Дата, Число
- ФиксированныйМассив
При начале работы или при первом обращении параметры сеанса должны быть заполнены значением иначе будет ошибка «попытка получения неинициализированного значения параметра сеанса».
Параметры сеанса могут использованы в шаблонах ограничения полей объектов при использовании ограничения доступа на уровне записей.
На тонком клиенте или веб-клиенте ПараметрыСеанса недоступны:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Возможен обмен с сервером.
Об идеалах нации можно судить по ее рекламе.
— Норман Дуглас
Параметр сеанса в 1С
Параметры сеанса в 1С — это переменные, которые доступны в течение всего сеанса пользователя в любом месте конфигурации. Например, в параметрах сеанса можно хранить текущего пользователя, или имя компьютера.
Для примера, создадим параметр сеанса, который назовем ИмяТекущегоКомпьютера., в этом параметре будем хранить имя текущего компьютера. Для этого нужно выделить ветку «Параметры сеанса» в группе «Общие» дерева метаданных, вызвать контекстное меню, и в контекстном меню выполнить команду «Добавить».
В правой части экрана откроется палитра свойств параметра сеанса, где следует указать название, синоним и тип (в моем случае это будет тип Строка).
На всякий случай, проверим, есть ли права у нужной роли на этот параметр сеанса. Посмотреть на роли параметра сеанса можно в окне «Дополнительно». Откроем его: выделим созданный параметр сеанса, вызовем контекстное меню и выполним команду «Дополнительно».
В окне «Дополнительно» интересует закладка «Права», в которой следует проверить флажки у прав Получение и Установка для нужной роли.
Получение – это право на получение значения параметра сеанса;
Установка – это право на установку значения параметра сеанса;
Параметр сеанса создан, теперь необходимо написать алгоритм установки значения в этот параметра сеанса. Делается это в модуле сеанса.
Модуль сеанса в 1С
Модуль сеанса необходим для установки значений параметров сеанса. Мы уже создали единственный параметр сеанса в конфигурации – «Имя текущего компьютера».
Научимся устанавливать значение в этот параметр сеанса при запуске сеанса пользователя. Делается это в модуле сеанса. Откроем его. Модуль сеанса открывается достаточно просто: выделяется самый верхний узел конфигурации, вызывается контекстное меню, в котором необходимо выполнить команду «Открыть модуль сеанса».
Впоследствии откроется модуль сеанса, в котором нас интересует один-единственный обработчик событий «УстановкаПараметровСеанса». Создадим процедуру – обработчик события, для этого после открытия модуля сеанса выполним команду «Процедуры и функции», которая расположена в меню «Текст» главного меню (модуль должен быть активен).
В открывшемся окне нужно выделить единственную процедуру и нажать на кнопку «Перейти».
Будет создана процедура «УстановкаПараметровСеанса»
В этой процедуре параметру сеанса ИмяТекущегоКомпьютера установим имя текущего компьютера.
Проверим, как работает установка параметров сеанса. Для этого создадим обработку, форму обработки, и на управляемой форме обработки создадим реквизит ИмяКомпьютера, который разместим на форме в виде поля надписи.
Следующим шагом, создадим событие формы обработки ПриСозданииНаСервере, и в этом событии реквизиту формы обработки будем присваивать значение параметра сеанса.
Осталось проверить работу обработки.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Параметры сеанса в 1С 8.3
Рассматриваемые параметры в 1С:Предприятие представлены в виде объекта метаданных. По существу, это не что иное, как глобальная переменная, привязанная к текущему сеансу.
Рис.1 Параметры в виде объекта метаданных
Глобальная переменная – такая же переменная, как и любая другая, но особенность ее в том, что обратиться к ней можно из любой точки программы, а в случае с параметром сеанса это работает только в пределах текущего сеанса.
Поскольку параметр сеанса является объектом метаданных, он имеет определенные особенности:
- Он может быть определенного типа. Разрешенные типы определяются платформой. Перечень их достаточно обширный, но даже если в данном списке нет нужного для вас, всегда можно сериализовать значение и хранить его в параметре в виде строки.
Рис.2 Хранение в параметре в виде строки
- Права на него, как и на любой другой объект метаданных, можно ограничивать ролями (как на запись, так и на чтение). При этом существует особенность при использовании его в RLS, но об этом будет написано ниже.
- Он имеет ограничение на объем помещаемых данных в сериализованном виде. Их объем не должен превышать 4 Гб.
Если тип параметра сеанса:
- ФиксированныйМассив
- ФиксированнаяКоллекция
- ФиксированнаяСтруктура
Тогда значение элемента коллекции может быть Неопределено.
Основная область параметров – применение их значений в запросах RLS (ограничение доступа на уровне записей).
Например, нам нужно в запросе RLS установить условие по текущему пользователю. Для этого заводим параметр сеанса «ТекущийПользователь», из кода встроенного языка устанавливаем значение:
Далее в запросе RLS позволено обращаться к данному параметру:
При таком использовании параметра сеанса права на чтение параметра не учитываются, однако можно попытаться получить их значение из встроенного языка:
При этом у текущего пользователя должны быть права на получение (чтение) значения.
Рис.3 При этом у текущего пользователя должны быть права на получение (чтение) значения
Установить параметр сеанса, то есть его значение, можно только программно и только на сервере. Для этого с клиента потребуется вызвать серверную процедуру. При обращении к параметру сеанса (установка, получение), если параметр не инициализирован, будет вызвана процедура УстановкаПараметровСеанса в модуле сеанса. Данная процедура имеет один параметр ТребуемыеПараметры – массив устанавливаемых идентификаторов параметров сеанса. УстановкаПараметровСеанса вызывается также при установке соединения с информационной базой до вызова всех остальных обработчиков. В этом случае ТребуемыеПараметры будет равен Неопределено.
Рекомендовано использовать отложенную (ленивую) инициализацию, то есть инициализировать параметры сеанса по требованию, а не при старте системы, так как не все параметры сеанса требуются непосредственно при старте системы. Отложенная инициализация выполняется так:
Так как параметр сеанса привязан к сеансу, не получится обратиться к параметру сеанса из метода, выполняющегося в фоне, поскольку это будет уже другой сеанс. Этот нюанс может стать неожиданностью, поэтому лучше к нему подготовиться заранее, передав нужное значение как параметр метода и инициализировав из параметра сеанса в начале процедуры.
Параметры сеанса в 1С 8.3
Что такое «Параметр сеанса» в 1С? Все слышали, но никто особо не вникал в этот объект конфигурации в программе 1С:Бухгалтерия 8.3.
Параметр сеанса – это глобальная переменная конфигурации, которая задается при запуске системы программы в модуле сеанса конфигурации. А именно в процедуре «УстановкаПараметровСеанса()» Самая известная из всех – это «Текущий Пользователь».
Разработчики могут добавлять параметры с любым необходимым по задаче разным типом. О чем не надо забывать при работе с параметрами, так это о правах на них.
При настройке прав доступа для новых параметров необходимо учитывать, что для определенных типов пользователей мы можем настроить только получение значения параметра, а для другого также установку значения параметра. Это зависит от должности и обязанностей пользователя в базе.
Так как сейчас есть конфигурации, в которых есть обычные формы, то обращение к параметрам сеанса будет проще. Всего лишь необходимо будет написать в коде «глЗначениеПеременной(«ТекущийПользователь»);» и мы получим значение параметра. Для своих параметров сеанса будет код посложнее, но его можно также получить, сделав вызов по аналогии с уже существующими параметрами, какие есть.
2. Управляемые формы 1С
В управляемых формах 1С все намного проще и быстрее, просто прописываешь «ПараметрыСеанса.ТекущийПользователь();» и будет счастье, получаем значение сеанса.
Приведу пример установки параметра сеанса.
Но обратите внимание, что если параметр неверно задан, не задан или у пользователя нет прав на него, то мы получим ошибку «не удается продолжить выполнение кода».
Также их можно использовать для ограничения на уровне записей. Какой пользователь хорошо знает программу, тот знает, как настраивать ограничение, и сможет быстро использовать параметры для этого.
Есть небольшой нюанс при работе с сеансами с базами на клиент-серверной системе. Все данные параметров хранятся на сервере и могут получаться как с сервера, так и с клиента.
С одной стороны все хорошо с параметрами, но вот только они не доступны на тонком клиенте 1С и на веб-клиенте. Потому необходимо быть очень аккуратным и писать код правильно.
Если при использовании параметров сеанса в чем-то не уверены, знайте: всегда рядом есть более опытные коллеги, которые с радостью помогут и подскажут. Ведь они тоже когда-то были в такой же ситуации. Учиться необходимо постоянно, чтобы успевать в ногу со временем.