К статье
Практический материал

Администрирование · 9 мин

Как установить параметры сеанса 1С: полное руководство

Разбираем, как установить параметры сеанса 1С: через конфигуратор, в тонком клиенте и программно. Пошаговые инструкции, типичные ошибки и ответы на вопросы.

Параметры сеанса в 1С — это значения, которые платформа сохраняет для конкретного сеанса пользователя и которые доступны из любого места кода в течение этого сеанса. Они применяются для хранения текущего пользователя, настроек ограничения доступа к данным, периода работы, признака режима работы и других сведений, которые неудобно передавать через параметры каждого вызова.

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

Ниже разобраны оба сценария: пользовательские настройки сеанса в типовых конфигурациях и программная установка параметров сеанса через менеджер ПараметрыСеанса. Отдельно описаны проверка результата, ограничения и типичные ошибки.

Что такое параметры сеанса и когда их менять

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

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

Важно понимать отличие от констант: константа хранится в базе и общая для всех, параметр сеанса — индивидуален для каждого подключения. Если два пользователя работают одновременно, у каждого свой набор значений.

Как изменить параметры сеанса через интерфейс пользователя

В типовых конфигурациях часть параметров сеанса доступна пользователю без программирования. Обычно они находятся в разделах «Администрирование», «Настройки» или «Персональные настройки» — точный путь зависит от конфигурации.

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

Дата запрета изменения данных настраивается администратором в разделе «Администрирование → Поддержка и обслуживание → Регламентные операции» (в разных версиях название может отличаться). Эти настройки влияют на поведение сеанса, хотя технически хранятся в базе, а не в параметрах сеанса как объектах метаданных.

Как изменить персональные настройки сеанса
  1. 1
    Откройте меню с именем пользователя в правом верхнем углу окна
  2. 2
    Выберите пункт «Персональные настройки» или «Мои настройки»
  3. 3
    Измените нужные значения: организацию, склад, масштаб, вариант интерфейса
  4. 4
    Нажмите «Записать и закрыть» или «ОК»
  5. 5
    Проверьте, что настройки применились, создав новый документ

Установка параметров сеанса в конфигураторе

Чтобы добавить или изменить параметр сеанса как объект метаданных, откройте конфигуратор и в дереве конфигурации найдите ветку «Общие → Параметры сеанса». Через контекстное меню добавьте новый параметр, задайте имя и тип — это может быть примитивный тип, ссылка на справочник или составной тип.

После добавления параметра его нужно инициализировать. Для этого откройте модуль сеанса (корень дерева конфигурации → контекстное меню → «Модуль сеанса») и заполните обработчик УстановкаПараметровСеанса. Если обработчик не заполнить, параметр останется неустановленным, и обращение к нему вызовет исключение.

Обновите конфигурацию базы данных (F7), чтобы изменения вступили в силу. Если в базе работают пользователи, потребуется либо динамическое обновление, либо завершение их сеансов — выбирайте с учётом того, что динамическое обновление не всегда корректно применяет изменения структуры.

bsl
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
  ПараметрыСеанса.ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию(ИмяПользователя());
  ПараметрыСеанса.ДатаСеанса = ТекущаяДатаСеанса();
КонецПроцедуры

Программная установка и чтение значений

Присвоить значение параметру сеанса можно в любой точке серверного кода: ПараметрыСеанса.ИмяПараметра = Значение;. Чтение выполняется симметрично. Обращение к параметру, которому не присвоено значение, вызывает исключение «Параметр сеанса не установлен», поэтому инициализация в модуле сеанса обязательна.

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

Для отладки выведите значение через Сообщить(ПараметрыСеанса.ИмяПараметра) или поставьте точку останова в отладчике. Помните, что на клиенте (в тонком клиенте) прямое обращение к параметрам сеанса ограничено — обычно значения получают через серверные вызовы.

Проверка результата и контрольные точки

После установки параметров убедитесь, что сеанс стартует без ошибок и значения соответствуют ожиданиям. Самый быстрый способ — временно добавить вывод значений в журнал регистрации или в сообщения при входе тестового пользователя.

Если параметр используется в ограничении доступа (RLS), проверьте под тестовой учётной записью, что пользователь видит только разрешённые данные. Некорректное значение параметра в RLS может либо открыть лишний доступ, либо полностью скрыть данные.

Контрольные точки

Как проверить результат

Вход в базу
Норма

Сеанс запускается без сообщений об ошибках

Тревожный признак

Ошибка «Параметр сеанса не установлен» или исключение в модуле сеанса

Значение параметра
Норма

Отладчик или Сообщить() показывает ожидаемое значение

Тревожный признак

Пустое значение или значение другого типа

Доступ к данным при RLS
Норма

Пользователь видит только свои данные

Тревожный признак

Пустые списки или доступ к чужим записям

Типичные ошибки и ограничения

Самая частая ошибка — обращение к параметру сеанса до его установки. Платформа вызывает УстановкаПараметровСеанса лениво, при первом обращении, поэтому порядок кода в обработчике имеет значение: если при установке одного параметра читается другой, он должен быть инициализирован раньше.

Вторая ошибка — попытка хранить в параметре сеанса изменяемые данные, которые должны быть общими для всех пользователей. Параметр сеанса не подходит для этого: каждый сеанс получает свою копию значения, и изменение в одном сеансе не видно остальным. Для общих данных используйте константы или регистры сведений.

Третья ошибка — тяжёлые запросы в обработчике установки параметров без проверки списка требуемых параметров. Это замедляет вход каждого пользователя. Инициализируйте только те параметры, которые платформа запросила в массиве ТребуемыеПараметры.

Типичные ошибки
01
Не заполнен обработчик УстановкаПараметровСеанса — при обращении к параметру возникает исключение
02
Тяжёлые запросы при каждом входе — замедление старта сеанса для всех пользователей
03
Использование параметра сеанса для общих данных — рассинхронизация между пользователями
04
Изменение модуля сеанса на рабочей базе без копии — риск заблокировать вход всем

Часто задаваемые вопросы

Чем параметр сеанса отличается от константы?

Константа хранится в базе данных и едина для всех пользователей, а параметр сеанса существует только в памяти текущего сеанса и у каждого пользователя своё значение. Для глобальных настроек используйте константы, для персональных значений сеанса — параметры сеанса.

Можно ли изменить параметр сеанса без конфигуратора?

Если конфигурация предоставляет пользовательскую настройку (например, персональные настройки в БСП) — да, через интерфейс. Добавить новый объект метаданных «Параметр сеанса» без конфигуратора нельзя.

Что делать, если после изменения модуля сеанса никто не может войти в базу?

Запустите конфигуратор — он не выполняет код модуля сеанса при подключении, поэтому доступ к нему сохраняется. Исправьте ошибку в обработчике УстановкаПараметровСеанса или восстановите код из выгрузки и обновите конфигурацию базы данных.

Как узнать, какие параметры сеанса уже установлены?

Вызовите метод ПараметрыСеанса.УстановленныеПараметры() — он вернёт массив имён параметров, которым присвоено значение в текущем сеансе. Это удобно для отладки и условной инициализации.

Виден ли параметр сеанса другим пользователям?

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

Итог

Что важно запомнить

Параметры сеанса 1С задаются либо через пользовательские настройки интерфейса, либо программно — через объект ПараметрыСеанса и обработчик УстановкаПараметровСеанса в модуле сеанса. Всегда инициализируйте параметры при входе, тестируйте изменения модуля сеанса на копии базы и проверяйте результат через отладчик или вывод значений.