Как отобразить настройку групп пользователей в разделе администрирования 1С

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

При работе с конфигурациями, построенными на базе Библиотеки стандартных подсистем (БСП), такими как «Бухгалтерия для Беларуси 2.1», «Бухгалтерия предприятия 3.0» и другими, администраторы часто сталкиваются с ситуацией, когда в разделе «Настройки пользователей и прав» отсутствует чекбокс «Группы пользователей». При этом в конфигураторе на форме настроек этот элемент присутствует, но в режиме «1С:Предприятие» он остается невидимым. Рассмотрим подробно, почему так происходит и как сделать эту настройку доступной.

Выясняем причину скрытия настроек

Проанализируем логику работы формы НастройкиПользователейИПрав, которая входит в состав обработки ПанельАдминистрированияБСП. Видимость элементов управления на этой форме определяется программно в процедуре ПриСозданииНаСервере. Основным фактором, влияющим на отображение групп пользователей и настроек прав доступа, является флаг УпрощенныйИнтерфейс.

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


Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
    МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный");
    УпрощенныйИнтерфейс = МодульУправлениеДоступомСлужебный.УпрощенныйИнтерфейсНастройкиПравДоступа;
    
    Элементы.ОткрытьГруппыДоступа.Видимость = Не УпрощенныйИнтерфейс;
    Элементы.ИспользоватьГруппыПользователей.Видимость = Не УпрощенныйИнтерфейс;
КонецЕсли;

Как мы видим, если значение переменной УпрощенныйИнтерфейс равно Истина, элементы для работы с группами и профилями доступа скрываются принудительно, игнорируя значения функциональных опций. Выясним, как это изменить.

Решение 1: Изменение интерфейса через переопределяемый модуль (рекомендуемый способ)

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

  1. Создадим новое Расширение или используем существующее.
  2. Добавим в расширение процедуру ПриОпределенииИнтерфейсаНастройкиДоступа из общего модуля УправлениеДоступомПереопределяемый.
  3. Установим параметру УпрощенныйИнтерфейс значение Ложь.

Пример кода в расширении:


&Вместо("ПриОпределенииИнтерфейсаНастройкиДоступа")
Процедура Расш1_ПриОпределенииИнтерфейсаНастройкиДоступа(УпрощенныйИнтерфейс)
    // Устанавливаем Ложь, чтобы отобразить полный интерфейс настроек прав
    УпрощенныйИнтерфейс = Ложь; 
КонецПроцедуры

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

Решение 2: Принудительная установка видимости элемента формы

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

  1. Найдем обработку ПанельАдминистрированияБСП и ее форму НастройкиПользователейИПрав.
  2. Добавим форму в расширение.
  3. Создадим обработчик события ПриСозданииНаСервере с аннотацией &После.

Вставим следующий код:


&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Принудительно включаем видимость чекбокса групп пользователей
    Элементы.ИспользоватьГруппыПользователей.Видимость = Истина;
    Элементы.ИспользоватьГруппыПользователей.Доступность = Истина;
КонецПроцедуры

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

Решение 3: Быстрое включение через «Функции для технического специалиста»

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

  1. Зайдем в главное меню программы и выберем пункт «Функции для технического специалиста» (в старых версиях — «Все функции»).
  2. В списке констант найдем Использовать группы пользователей.
  3. Установим значение в Истина и запишем изменения.

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

Особенности региональных конфигураций и кэширования

Разберем ситуацию, упомянутую в обсуждении: в некоторых редакциях (например, «Бухгалтерия для Беларуси») проверка на упрощенный интерфейс может быть жестко привязана к функциональной опции БазоваяВерсия. Если вы используете ПРОФ-версию, но код все равно скрывает элементы, проверьте значение этой опции.

Также стоит учитывать кэширование настроек. БСП активно кэширует параметры интерфейса. Если вы внесли изменения в расширение, но результат не виден сразу:

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

← На главную