Как получить список пользователей с определенной настройкой в 1С:Управление торговлей 10.3?

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

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

Где хранятся настройки пользователей в 1С:Управление торговлей 10.3?

Важно понимать, что в типовых конфигурациях обычного приложения настройки пользователей не хранятся напрямую в справочнике Пользователи. Для этих целей разработчики 1С предусмотрели специальный механизм — регистр сведений НастройкиПользователей. Именно этот объект является ключевым хранилищем, связывающим конкретного пользователя, вид настройки (из ПланаВидовХарактеристик) и установленное значение.

Разберем структуру регистра НастройкиПользователей:

Алгоритм получения пользователей с настройкой «Истина»

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

Разберем по шагам, как сформировать такой запрос:

  1. Выбираем данные из таблицы РегистрСведений.НастройкиПользователей.
  2. Устанавливаем фильтр по полю Настройка, чтобы выбрать только интересующий нас параметр.
  3. Устанавливаем фильтр по ресурсу Значение, проверяя его на ИСТИНА.
  4. При необходимости связываем полученный результат со справочником Пользователи для вывода имен или других реквизитов.

Посмотрим на пример кода, который решает эту задачу:


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

Запрос.УстановитьПараметр("Настройка", ПланыВидовХарактеристик.НастройкиПользователей.НужнаяНамНастройка);

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
    // Здесь мы работаем с найденным пользователем
    Сообщить("Пользователь с активной настройкой: " + Выборка.Пользователь);
КонецЦикла;

Важные нюансы реализации

При работе с этим регистром стоит учитывать несколько технических моментов, которые помогут избежать ошибок:

Использование регистра НастройкиПользователей — это стандартный подход в Управлении торговлей 10.3. Если вы не можете найти какую-либо настройку, первым делом проверьте содержание ПланаВидовХарактеристик, чтобы убедиться, что идентификатор настройки выбран верно. Надеемся, что эта инструкция помогла вам разобраться в структуре хранения данных и успешно решить задачу с фильтрацией пользователей!

← На главную