Как добавлять и программно получать значения настроек пользователя в УТ 10.3?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Архитектура настроек пользователей

В типовой конфигурации УТ 10.3 настройки пользователей хранятся в РегистрСведений.НастройкиПользователей. Этот регистр имеет структуру, ориентированную на конкретного пользователя и тип настройки. Ключевыми элементами системы являются:

  1. План видов характеристик НастройкиПользователей — здесь описывается перечень всех доступных настроек (например, основной склад, основное подразделение и т.д.).
  2. Регистр сведений НастройкиПользователей — здесь хранятся непосредственно значения, установленные для каждого пользователя в разрезе объектов из ПланВидовХарактеристик.

Важно понимать, что удаление элемента из ПланВидовХарактеристик не приводит к автоматической очистке данных в регистре. Если вы добавили новую настройку, поработали с ней, а затем удалили из плана видов характеристик, «хвосты» в виде записей регистра останутся. Чтобы их убрать, необходимо перейти в список записей регистра сведений для конкретного пользователя и удалить ненужные строки вручную.

Как программно получить значение настройки

Для получения значения настройки в 1С существует два основных подхода: использование типовых механизмов (общих модулей) и прямой запрос к базе данных.

Способ 1: Использование типового общего модуля

В большинстве типовых решений 1С, включая УТ 10.3, работа с настройками инкапсулирована в общем модуле УправлениеПользователями. Это предпочтительный метод, так как он учитывает возможные кэшированные данные и иерархию настроек.

Разберем пример кода для получения значения:


// Получаем текущего пользователя
ТекПользователь = УправлениеПользователями.ТекущийПользователь();

// Получаем значение настройки «ОсновнойСклад»
ЗначениеСклада = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ОсновнойСклад");

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

Способ 2: Использование прямого запроса к регистру

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


ВЫБРАТЬ
    НастройкиПользователей.Значение
ИЗ
    РегистрСведений.НастройкиПользователей КАК НастройкиПользователей
ГДЕ
    НастройкиПользователей.Пользователь = &Пользователь
    И НастройкиПользователей.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.ОсновнойСклад

При использовании этого метода убедитесь, что параметр &Пользователь содержит корректную ссылку на элемент справочника Пользователи. Обращение через ПланыВидовХарактеристик.НастройкиПользователей позволяет четко идентифицировать, какую именно настройку вы запрашиваете.

Рекомендации по администрированию настроек

При добавлении собственных настроек помните о следующих моментах:

Проанализировав эти способы, вы сможете гибко управлять настройками пользователей, обеспечивая комфортную работу персонала и эффективную настройку бизнес-процессов в УТ 10.3.

← На главную