Как скрыть раздел (подсистему) в управляемом интерфейсе 1С по умолчанию у Администратора и оставить у нужного пользователя

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

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

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

Выясним причину: почему администратор видит все разделы?

Для начала проанализируем ситуацию и поймем логику работы платформы 1С. По умолчанию любая новая подсистема, добавленная в конфигурацию, имеет свойство "Включать в командный интерфейс". Если у роли пользователя есть права на просмотр этой подсистемы и входящих в нее объектов, платформа автоматически выводит данный раздел на панель. У администратора системы установлена роль ПолныеПрава (или аналогичная ей суперроль в типовых конфигурациях, например, АдминистраторСистемы), которая по определению дает доступ абсолютно ко всем объектам метаданных конфигурации. Соответственно, администратор автоматически получает права на новую подсистему и видит её в своем меню.

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

Способ 1. Настройка видимости через командный интерфейс конфигурации

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

Шаг 1. Открытие редактора командного интерфейса

Откроем Конфигуратор и найдем самый верхний элемент в дереве метаданных (корень конфигурации с именем вашей базы). Кликнем по нему правой кнопкой мыши и в контекстном меню выберем пункт "Открыть командный интерфейс конфигурации". Также этот редактор можно запустить из палитры свойств конфигурации, кликнув по ссылке "Командный интерфейс" в категории "Интерфейсные".

Шаг 2. Анализ структуры редактора

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

Шаг 3. Настройка флажков видимости

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

  1. Серый флажок — означает автоматическое наследование. Видимость для данной роли будет определяться общим значением из первой колонки "Видимость".
  2. Белый флажок (установлен) — персональная принудительная настройка для роли. Раздел будет виден пользователям с этой ролью независимо от общей настройки видимости.
  3. Белый флажок (снят / пустое поле) — персональный запрет видимости для роли. Раздел будет скрыт по умолчанию для пользователей с этой ролью, даже если в общей колонке видимость включена.

Найдем строку нашей созданной подсистемы и выполним следующие действия:

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

Важные нюансы реализации, о которых необходимо знать

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

Аспекты аддитивности ролей в 1С

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

Проблема кэширования настроек интерфейса пользователями

Часто программисты сталкиваются с ситуацией: в Конфигураторе всё настроено верно, но администратор заходит в базу и по-прежнему видит злополучный раздел. Выясним причину этого поведения. Если пользователь (в данном случае администратор) уже запускал информационную базу до того, как вы изменили настройки командного интерфейса в Конфигураторе, платформа уже сохранила его индивидуальные настройки панели разделов в системном кэше. Для быстрого сброса кэша и восстановления стандартного интерфейса у конкретных пользователей можно использовать обработку для очистки и управления хранилищем настроек.

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

  1. В режиме "1С:Предприятие" под учетной записью администратора откроем меню "Сервис и настройки" -> "Настройки" -> "Настройка панели разделов". В открывшемся окне нажмем кнопку "Установить стандартные настройки". После этого интерфейс перестроится в соответствии с конфигурацией. Подобные действия в интерфейсе выполняются с помощью программного робота, имитирующего ручную работу пользователя.
  2. Используем стандартную обработку "Очистка настроек пользователей" (доступна в типовых конфигурациях в разделе "Администрирование" -> "Настройки пользователей и прав" -> "Очистка настроек"). Там можно выбрать конкретного пользователя (администратора) и удалить сохраненные настройки внешнего вида его интерфейса.

Способ 2. Использование функциональных опций для управления интерфейсом

Рассмотрим альтернативный, более гибкий метод управления интерфейсом. Что если в будущем вам потребуется скрывать или показывать данный раздел динамически, прямо в режиме "1С:Предприятие" (например, в зависимости от функциональных потребностей бизнеса или настроек программы), не прибегая к постоянному изменению ролей в Конфигураторе?

Для решения таких задач идеально подходит механизм Функциональных опций (ФО). Разберем по шагам, как его настроить:

Шаг 1. Создание константы хранения настройки

В Конфигураторе создадим новую константу с типом значения Булево. Назовем её, например, ИспользоватьРазделДляНовичков. Эта константа будет определять, включен ли наш раздел в системе в принципе.

Шаг 2. Создание объекта "Функциональная опция"

В ветке метаданных "Общие" найдем раздел "Функциональные опции" и добавим новую опцию с именем ИспользоватьРазделДляНовичков. В свойстве "Хранилище" выберем ранее созданную одноименную константу.

Шаг 3. Привязка подсистемы к функциональной опции

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

Шаг 4. Управление видимостью в режиме Предприятия

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

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

Резюме

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

← На главную