Top.Mail.Ru
Меню
Каталог Программы 1С Опыт и отзывы Услуги Компания Интересное Контакты

Параметры сеанса 1С: назначение и применение

Основатель и генеральный директор компании MoscowSoft, Сорокин Сергей
Сорокин Сергей, Генеральный директор MoscowSoft  02.09.2026 Актуальность проверена: 02.09.2026   5 мин.
Содержание

Параметры сеанса – это специальные объекты конфигурации, позволяющие хранить и передавать значения в рамках текущего клиентского сеанса. По сути, это глобальные переменные, привязанные к конкретному подключению пользователя.

Их обычно используют для передачи контекстных данных (например, текущий пользователь, филиал или проект) в запросы и механизмы ограничения доступа (RLS) на сервере. Поскольку параметры сеанса являются метаданными, им задают тип (строки, числа, справочники, фиксированные структуры и т.п.) на этапе разработки. В случае отсутствия подходящего типа можно сериализовать значение в строку и хранить её в параметре.

При создании параметра в конфигураторе следует определить его имя, тип и права на Установку/Получение, аналогично другим объектам метаданных. Общий объем сериализованного значения не должен превышать 4 ГБ.

Параметры сеанса часто применяют для ускорения работы при ограничениях доступа на уровне записей. Например, заведём параметр ТекущийПользователь и установим его в коде:

ПараметрыСеанса.ТекущийПользователь = <Значение>;

После этого в условии RLS можно обращаться к нему так:

ГДЕ Документ.Пользователь = &ТекущийПользователь

При таком использовании не требуется отдельного права на чтение параметра. Однако если в коде нужно получить значение параметра – например, Текущий = ПараметрыСеанса.ТекущийПользователь; – то пользователь должен иметь право «Получение».

Объявление и настройка параметров сеанса

Параметры сеанса задаются в конфигураторе через палитру свойств (аналогично реквизитам). Важно указать им название и тип (поддерживаются примитивы, перечисления, ссылки на справочники/документы, фиксированные массивы/структуры и др.). Если в списке нет нужного типа, можно хранить сложный объект в виде сериализованной строки. Также нужно назначить права на установку и чтение параметра.

Пример часто используемых параметров: ТекущийПользователь (тип СправочникСсылка.Пользователи), ТекущаяОрганизация (СправочникСсылка.Организации), флаги типа Булево и т.д.

После определения параметров их можно читать и устанавливать из встроенного языка. Например:

// Установка параметра
ПараметрыСеанса.ТекущийПользователь = Новый СправочникСсылка.Пользователи(<ID>);
ПараметрыСеанса.РежимРаботы = Истина;

// Чтение параметра
Пользователь = ПараметрыСеанса.ТекущийПользователь;

Как видно, обращение к параметру похоже на работу с глобальной переменной. Но помните: запись или чтение с клиента всегда идет через сервер, поэтому частые обращения без нужды могут замедлить систему. Также после установки нового значения можно использовать его сразу в запросах RLS и других операциях ограничения прав.

Инициализация параметров сеанса в модуле сеанса 1С

Правильный способ заполнить параметры сеанса – в модуле сеанса (общий модуль сеанса) в процедуре УстановкаПараметровСеанса. Эта процедура вызывается платформой при подключении клиента и в момент первого обращения к каждому параметру.

Важный приём – ленивая инициализация: не задавать сразу все значения при старте, а лишь по требованию. В обработчике можно проверять, какой параметр запрошен, и устанавливать его только тогда, когда он действительно нужен. Пример шаблона:

Процедура УстановкаПараметровСеанса(ИменаПараметровСеанса)
	Если ИменаПараметровСеанса <> Неопределено Тогда
		Для Каждого ИмяПараметра Из ИменаПараметровСеанса Цикл
			Если ИмяПараметра = "ТекущийПользователь" Тогда
				ПараметрыСеанса.ТекущийПользователь = <Значение>;
			ИначеЕсли ИмяПараметра = "ТекущаяОрганизация" Тогда
				ПараметрыСеанса.ТекущаяОрганизация = <Значение>;
			// и т.д.
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

Стандарт 1С рекомендует именно такой подход: «Устанавливать параметры "по требованию" в обработчике УстановкаПараметровСеанса». При первом чтении параметра платформа запустит эту процедуру и передаст массив из имен требуемых параметров. Если при старте были некоторые параметры, которые можно сразу заполнить, их присваивают, когда ИменаПараметровСеанса = Неопределено. Образец более сложной реализации приведён в официальных стандартах. Такой код гарантирует, что в сеансе будут установлены только нужные значения, без лишней нагрузки на сервер и сеть.

Пример: отключение контроля остатков с использованием параметров сеанса

В некоторых конфигурациях (например, УТ 11, КА 2, ERP) при обновлении или сжатии информационной базы используется специальный параметр сеанса ПараметрыОбработчикаОбновления. Установив его, можно изменить режим работы обработчиков.

К примеру, чтобы отключить проверку остатков во время операции «Свертка ИБ», используют такой код:

// Включение особого режима "Свертка ИБ" для обновления:
// при этом проверка остатков не будет выполняться.
ПараметрыСеанса.ПараметрыОбработчикаОбновления =
	Новый ФиксированнаяСтруктура(
		Новый Структура("РежимВыполнения", "СверткаИБ")
	);

В данном случае мы передаём фрагмент структуры настроек обработчика обновления с полем РежимВыполнения="СверткаИБ". Это говорит системе, что операция выполняется в режиме компрессии базы, и связанные проверки (например, контроль остатков) временно отключаются. Такой приём позволяет изменить поведение стандартных процедур без прямого изменения их кода.

Лайфхаки и полезные советы

Заключение

Параметры сеанса – мощный инструмент оптимизации и гибкой настройки поведения приложения. Правильно спроектированные, они позволяют ускорить запросы с учётом контекста пользователя (например, через RLS), передавать флаги состояния и режимы выполнения между компонентами.

Лучшей практикой считается хранить в них только действительно нужные данные, инициализировать их «по требованию» в модуле сеанса и не перегружать лишней информацией. Для клиентской логики используйте обычные глобальные переменные, а для тяжёлых серверных вычислений – кэширование в общих модулях (см. ограничения объёма). Следуя этим рекомендациям, вы получите быстрый и надёжный код без лишней нагрузки на сервер.

Если статья оказалась полезной, подпишитесь на рассылку MoscowSoft и читайте другие материалы нашего технического блога. Уверены, вы найдёте ещё много интересных приёмов по разработке на платформе 1С и стратегии развития продуктов!

MoscowSoft логотип

Подпишитесь на телеграм-канал MoscowSoft!
QR-код (ссылка приглашение) в канал MoscowSoft

https://t.me/MoscowSoft

Публикуем:
- инструкции и советы по разработке на 1С;
- рекомендации по интеграции 1С;
- бесплатно делимся своими обработками;
- публикуем секретные спецпредложения только для подписчиков.

Возврат к списку