Как получить настройки пользователя (организация, склад) в 1С:Управление нашей фирмой

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

При разработке или адаптации конфигурации «1С:Управление нашей фирмой» (УНФ) редакции 1.6 часто возникает задача автоматического заполнения реквизитов в документах. Чтобы программа «понимала», какую организацию или склад подставить для конкретного сотрудника, она обращается к пользовательским настройкам. В этой статье мы подробно разберем, где хранятся эти данные, как их извлечь программно и как правильно использовать механизмы системы для автоматизации рутины.

Где физически хранятся настройки пользователя

Проанализируем структуру хранения данных в УНФ. В отличие от некоторых других конфигураций, где настройки могут быть разбросаны по разным объектам, в УНФ основным «хранилищем» персональных предпочтений является регистр сведений НастройкиПользователей. Давайте разберем его устройство:

  1. Измерение «Пользователь»: Ссылка на справочник Пользователи. Это позволяет разделять настройки для каждого сотрудника.
  2. Измерение «Настройка»: Ссылка на План видов характеристик «Настройки пользователей». Здесь перечислены все возможные типы настроек: от «Основного склада» до «Основной кассы».
  3. Ресурс «Значение»: Имеет составной тип данных. Это критически важный момент, так как ресурс должен уметь хранить и ссылки на справочники (Склады, Организации), и числовые значения, и логические флаги (Булево).

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

Программное получение настроек: правильный подход

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

Рассмотрим основной метод, который используется в УНФ. Для получения значения настройки предназначена функция в общем модуле УправлениеНебольшойФирмойСервер (или аналогичном, в зависимости от точной версии минорного обновления).

Разберем пример кода для получения основного склада текущего пользователя:


// Получаем основной склад для текущего пользователя
ОсновнойСклад = УправлениеНебольшойФирмойСервер.ПолучитьНастройкуПользователя("ОсновнойСклад");

Если ЗначениеЗаполнено(ОсновнойСклад) Тогда
    // Выполняем действия с полученным складом
    Сообщить("Ваш склад по умолчанию: " + ОсновнойСклад);
КонецЕсли;

В данном примере функция ПолучитьНастройкуПользователя принимает строковый идентификатор настройки. Если нам нужно получить данные не для текущего, а для какого-то конкретного пользователя, мы передаем его вторым параметром:


ПользовательОбъект = Справочники.Пользователи.НайтиПоНаименованию("Иванов Иван");
Организация = УправлениеНебольшойФирмойСервер.ПолучитьНастройкуПользователя("ОсновнаяОрганизация", ПользовательОбъект);

Механизм автоматического заполнения в документах

Посмотрим на ситуацию со стороны создания нового документа. Когда пользователь нажимает кнопку «Создать», поля «Организация» и «Склад» заполняются магическим образом. На самом деле, это результат работы встроенных процедур в модулях менеджеров объектов.

Как правило, при создании нового объекта вызывается процедура ЗаполнитьЗначенияПоУмолчанию(). Проанализируем, как это выглядит изнутри:

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

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

Различие между настройками пользователя и настройками программы

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

Настройки пользователя — это индивидуальные предпочтения. Например, «Основное подразделение» у бухгалтера и у менеджера по продажам будет разным. Изменение этой настройки одним человеком не влияет на работу других. Хранятся в регистре сведений.

Настройки программы — это глобальные параметры. Например, флаг «Использовать несколько складов» или «Вести учет в валюте». Если администратор отключит использование нескольких складов, это затронет абсолютно всех пользователей системы. Такие данные обычно хранятся в Константах или управляются через Функциональные опции.

Управление настройками через интерфейс «1С:УНФ»

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

  1. Перейдите в раздел «Компания» (в некоторых версиях — «Администрирование»).
  2. Найдите пункт «Настройки пользователей и прав».
  3. Выберите ссылку «Пользователи».
  4. Откройте карточку нужного сотрудника и найдите гиперссылку «Настройки пользователя» в верхней части формы или в меню «Еще».

Здесь вы увидите дерево всех доступных настроек. Это гораздо удобнее, чем работать напрямую с регистром, так как интерфейс сгруппирован по логическим блокам (Заполнение документов, Печать, Отчеты).

Использование настроек в системе компоновки данных (СКД)

Рассмотрим продвинутый сценарий: вы создаете отчет и хотите, чтобы при его открытии параметр «Организация» уже был заполнен «родной» организацией пользователя. Для этого в СКД можно использовать выражения.

Посмотрим на пример настройки параметра в схеме компоновки:

В поле «Выражение» для параметра Организация можно прописать вызов функции:

УправлениеНебольшойФирмойСервер.ПолучитьНастройкуПользователя("ОсновнаяОрганизация")

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

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

← На главную