Разделы, команды и роли: настраиваем интерфейс подсистем в конфигураторе

· 10 мин

Содержание

Командный интерфейс подсистемы редактируют в конфигураторе: в дереве Общие → Подсистемы щёлкните правой кнопкой по нужной подсистеме и выберите Командный интерфейс. Откроется редактор, где видны все команды раздела, разложенные по группам панели навигации и панели действий. Там включают и выключают видимость команд, меняют порядок и переносят команды между группами — отдельно для всех пользователей и для каждой роли.

Порядок самих разделов задаётся уровнем выше — в командном интерфейсе корня конфигурации. Всё ниже относится к платформе 8.3 и управляемому приложению с интерфейсом «Такси», одинаково для любой конфигурации: своей разработки или типовой.

Как подсистемы формируют командный интерфейс

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

  • 📁 Подсистемы. Каждая подсистема верхнего уровня с флажком «Включать в командный интерфейс» становится разделом в панели разделов. Вложенные подсистемы — это группы внутри раздела.
  • 🧩 Состав подсистемы. Объекты, включённые в подсистему, приносят свои стандартные команды: справочник — «открыть список» в панель навигации и «создать» в панель действий, отчёт — команду в группу «Отчеты».
  • 🔐 Права и функциональные опции. Команда объекта, на который у роли нет прав, пользователю не показывается. Команда объекта, зависящего от выключенной функциональной опции, тоже скрывается.

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

Где какие настройки лежат

Что настраиваемГде это в конфигураторе
Порядок и видимость разделовКонтекстное меню корня конфигурации → Открыть командный интерфейс конфигурации
Состав раздела (какие объекты в нём)Свойство подсистемы «Состав» или вкладка «Подсистемы» в окне объекта
Видимость и порядок команд в разделеКонтекстное меню подсистемы → Командный интерфейс
Собственные группы командВетка Общие → Группы команд
Картинка и пояснение разделаПалитра свойств подсистемы: «Картинка», «Пояснение»

Как включить объект в раздел и убрать из него команду

Добавить объект в подсистему

Есть два равноценных пути.

  1. Откройте свойства подсистемы, найдите свойство «Состав» и нажмите кнопку открытия. В дереве объектов отметьте флажками нужные справочники, документы, отчёты, обработки, общие команды.
  2. Либо откройте окно редактирования самого объекта (двойной щелчок по справочнику или документу) и перейдите на вкладку «Подсистемы». Отметьте разделы, где объект должен появиться.

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

Убрать команду, не трогая состав

Иногда объект в подсистеме нужен (например, ради прав или отбора в отчётах), а его команду в разделе показывать не хочется.

  1. Откройте Командный интерфейс подсистемы.
  2. Слева выберите группу — например, «Панель действий.Создать».
  3. Справа найдите команду и снимите флажок в колонке «Видимость».

Команда исчезнет из раздела для всех, но объект останется в составе подсистемы.

Отключить стандартные команды объекта целиком

У справочников, документов и других прикладных объектов в палитре свойств есть флажок «Использовать стандартные команды». Если его снять, стандартные команды объекта не попадут в командный интерфейс ни одной подсистемы. Так поступают с вспомогательными справочниками, которые открываются только из форм других объектов.

Команды с параметром (у общей команды задан «Тип параметра команды») в панель навигации раздела не попадают. Их место — командная панель и панель навигации формы объекта соответствующего типа.

Видимость команд для разных интерфейсов и пользователей

Редактор командного интерфейса подсистемы — это таблица. Строки — команды выбранной группы. Колонки — общая «Видимость» и по одной колонке на каждую роль конфигурации.

Общая видимость

Флажок в колонке «Видимость» задаёт поведение по умолчанию для всех пользователей. Снятый флажок прячет команду, но не запрещает её: пользователь с правами может вернуть её через свои настройки (об этом ниже).

Видимость по ролям

Колонки ролей уточняют общую настройку. Значение в ячейке роли бывает трёх видов:

  • ✅ флажок установлен — команда видна пользователям с этой ролью;
  • ⬜ флажок снят — скрыта для этой роли;
  • ➖ неопределено (серый флажок) — действует общая «Видимость».

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

Видимость разделов

То же самое работает на уровне всей панели разделов. В командном интерфейсе конфигурации (контекстное меню корня → Открыть командный интерфейс конфигурации) есть список подсистем верхнего уровня с колонками «Видимость» и колонками ролей. Так кладовщику можно скрыть раздел «Зарплата и кадры», не трогая права.

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

Пользователь в режиме «Предприятие» тоже меняет интерфейс:

  • главное меню (кнопка с тремя полосками) → Вид → Настройка панели разделов — состав и порядок разделов;
  • в открытом разделе значок шестерёнки → Настройка навигации и Настройка действий — команды панели навигации и панели действий.

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

Роли: доступ и видимость — не одно и то же

Две похожие вещи часто путают.

Права ролиВидимость в редакторе интерфейса
Где задаётсяОкно роли, права «Просмотр», «Использование» и т. д.Колонки ролей в командном интерфейсе
Что делаетРазрешает или запрещает работу с объектомПоказывает или прячет команду по умолчанию
Можно ли обойтиНет: команда без прав не выводится нигдеДа: пользователь вернёт команду через настройку навигации
Для чего использоватьБезопасностьУдобство, разгрузка раздела

Отсюда практическое правило. Скрывать от сотрудника данные через видимость команд нельзя: он найдёт объект через «Все функции», поиск или ссылку. Закрывать доступ нужно правами роли.

Видимость по ролям хороша для другого: убрать лишнее у тех, кому объект доступен, но не нужен каждый день. Например, бухгалтеру по зарплате оставить в разделе «Склад» только отчёты, а документы поступления спрятать.

Какие права нужны, чтобы команда появилась

  • 📗 Справочник, документ, регистр: право «Просмотр» для команды открытия списка; «Добавление» — для команды создания.
  • 📊 Отчёт и обработка: право «Использование» — и для команды, и для просмотра формы.
  • ⚙️ Общая команда сама по себе прав не требует. Обычно её видимость регулируют через состав подсистемы, видимость по ролям или функциональную опцию.

Раздел, в котором у пользователя не осталось ни одной доступной команды, платформа не показывает в панели разделов вовсе.

Группы команд: своя структура внутри раздела

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

Создание группы команд

  1. В ветке Общие → Группы команд добавьте новый объект.
  2. Заполните имя, синоним (его увидит пользователь) и, если нужно, картинку.
  3. В свойстве «Категория» выберите, где будет жить группа: «Панель навигации» или «Панель действий». Категории «Командная панель формы» и «Панель навигации формы» нужны для форм, в разделе они не появятся.

После этого новая группа появится слева в редакторе командного интерфейса каждой подсистемы. Перетащите в неё команды мышью из других групп.

Вложенные подсистемы как группы

Второй способ — подчинённые подсистемы. Создайте внутри раздела «Склад» подсистемы «Приход», «Расход», «Инвентаризация» и разнесите объекты по ним. В панели навигации раздела появятся одноимённые группы.

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

Порядок команд и разделов

  • Внутри группы порядок меняется перетаскиванием или кнопками перемещения вверх-вниз на панели редактора.
  • Порядок разделов задаётся в командном интерфейсе конфигурации, в списке панели разделов.
  • Порядок вложенных подсистем внутри раздела определяется порядком в дереве конфигурации — двигайте их там же стрелками.

Картинку для раздела берите размером 32×32 точки, лучше из общих картинок конфигурации. Без картинки раздел отобразится со стандартным значком, и в панели с иконками его трудно отличить от соседних.

Управление интерфейсом из кода

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

Функциональные опции

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

Пример: константа «ИспользоватьСкладскойУчет» типа Булево, функциональная опция с тем же именем хранится в ней, и в её составе — документы склада. Пользователь снимает флажок в настройках — складские команды пропадают.

Если опция параметризована (например, зависит от организации), параметры для интерфейса задают так:

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	ПараметрыОпций = Новый Структура("Организация", Организация);
	УстановитьПараметрыФункциональныхОпцийИнтерфейса(ПараметрыОпций);
КонецПроцедуры

Обновление интерфейса после изменений

Когда код поменял значение константы, от которой зависят опции, интерфейс сам не перестроится. Вызовите на клиенте:

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	ОбновитьИнтерфейс();
КонецПроцедуры

Метод перерисовывает командный интерфейс и открытые формы. Вызывать его в цикле или на каждое изменение реквизита не стоит: перерисовка заметна пользователю.

Общая команда с обработчиком

Если нужна в разделе команда, которая открывает не список, а, скажем, форму с отбором или навигационную ссылку, создайте общую команду, включите её в подсистему и пропишите обработчик в модуле команды:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	ОткрытьФорму("Документ.ПоступлениеТоваров.ФормаСписка",
		Новый Структура("Отбор", Новый Структура("Проведен", Ложь)),
		ПараметрыВыполненияКоманды.Источник,
		ПараметрыВыполненияКоманды.Уникальность,
		ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры

Группа, в которую попадёт такая команда, задаётся её свойством «Группа», а дальше её видно и настраивается в редакторе командного интерфейса подсистемы так же, как стандартные.

Типовые конфигурации и расширения

В БП, ЗУП, УТ правка подсистем в основной конфигурации снимает её с поддержки или требует включить возможность изменения. Безопаснее работать через расширение: заимствуйте нужную подсистему и включите в неё свои объекты расширения — команды появятся в разделе без изменения основной конфигурации. После подключения расширения перезапустите сеанс пользователя.

Почему изменения не видны и как это исправить

После правки интерфейса в конфигураторе выполните Конфигурация → Обновить конфигурацию базы данных (F7) и перезапустите режим «Предприятие». Открытый сеанс новый интерфейс не подхватит.

Если и после этого раздел или команда ведут себя не так, как задумано, ищите причину по симптому.

Диагностика: выберите симптом

Очистка пользовательских настроек сбрасывает не только интерфейс, но и настройки отчётов и форм. Предупредите сотрудника заранее и делайте это вне рабочего времени.

Частые вопросы

Можно ли задать разный командный интерфейс для разных пользователей без новых ролей?
Средствами конфигуратора — нет: видимость по умолчанию задаётся только общей колонкой и колонками ролей. Индивидуально пользователь настраивает интерфейс сам или ему переносят настройки обработкой копирования настроек, если она есть в конфигурации.
Где задаётся, какой раздел открывается при запуске программы?
При запуске открывается начальная страница. Её состав настраивают в контекстном меню корня конфигурации через рабочую область начальной страницы, а пользователь может поменять её в главном меню через Вид.
Чем подсистема отличается от группы команд?
Подсистема — объект метаданных со своим составом, который используется ещё и для отбора объектов. Группа команд только раскладывает команды по блокам панели навигации или панели действий и состава не имеет.
Можно ли поменять текст команды в разделе, не переименовывая объект?
Да. У справочников и документов есть свойства «Представление списка» и «Представление объекта» — именно они показываются в командах. Синоним объекта при этом можно не трогать.
Нужно ли обновлять конфигурацию базы данных после правки командного интерфейса?
Да, без этого изменения останутся только в основной конфигурации. Монопольный доступ для такого обновления обычно не требуется, но пользователям нужно перезапустить сеансы.