Как устроены группы команд в конфигурации 1С и от чего зависит, кто их видит

· 9 мин

Содержание

Группа команд в 1С 8.3 — это объект метаданных из ветки Общие → Группы команд, который задаёт, в какой панели и под каким заголовком появится команда. Своих прав у группы нет: кто увидит команды внутри неё, решают роли пользователя, видимость по ролям в командном интерфейсе и функциональные опции.

Типичная ситуация: разработчик добавил в конфигурацию обработку «Сверка остатков», бухгалтер в рабочей базе её не видит, а в Конфигураторе всё на месте. Часто дело не в правах: команда попала в группу с неподходящей категорией или не включена в подсистему. Механизм одинаков для всех конфигураций на платформе 8.3 с интерфейсом «Такси».

Что такое группа команд и где она живёт в дереве метаданных

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

Группы бывают двух видов:

  • 🧩 Стандартные — встроены в платформу, их нельзя удалить или переименовать. Например, «Создать» и «Отчеты» в панели действий.
  • 🛠 Пользовательские (свои) — разработчик создаёт их в ветке Общие → Группы команд и задаёт заголовок, картинку и место размещения.

Важное ограничение: группа не содержит список команд внутри себя. Связь обратная — у каждой команды есть свойство «Группа», в котором указывают, куда её поместить. Поэтому, открыв саму группу, вы не увидите, какие команды в неё входят. Найти их можно через поиск ссылок на объект в Конфигураторе (контекстное меню группы → поиск ссылок).

Категории размещения

Главное свойство группы — «Категория». Оно определяет, в какой области интерфейса группа может появиться.

КатегорияГде виднаКакие команды в неё кладут
Панель навигацииПанель навигации разделаКоманды без параметра: открыть список, журнал, отчёт
Панель действийПанель действий разделаКоманды без параметра: создать документ, открыть обработку
Командная панель формыВерхняя панель кнопок формы объекта или спискаКоманды с параметром: действие над текущим объектом
Панель навигации формыЛевая панель внутри формы объектаКоманды с параметром: переход к связанным данным

Правило простое. Команда без параметра живёт в разделах (панели навигации и действий). Команда с параметром работает с конкретным объектом, поэтому её место — в форме.

Стандартные группы команд и когда хватает их

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

  • 📂 Панель навигации : «Важное», «Обычное», «См. также».
  • ⚡ Панель действий: «Создать», «Отчеты», «Сервис».
  • 📝 Командная панель формы: «Важное», «Создать на основании».
  • 🔗 Панель навигации формы: «Важное», «Перейти», «См. также».

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

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

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

Создание группы команд в Конфигураторе

Порядок одинаков для любой конфигурации на платформе 8.3. Перед правкой типовой конфигурации снимите её с поддержки только в том объёме, который нужен, или вынесите доработку в расширение.

Шаг 1. Добавить объект

  1. Откройте Конфигуратор и дерево конфигурации (Конфигурация → Открыть конфигурацию).
  2. Раскройте ветку Общие, затем Группы команд.
  3. Нажмите «Добавить» в командной панели дерева или клавишу Insert.

Шаг 2. Заполнить свойства

В палитре свойств новой группы заполните поля:

СвойствоЧто указатьПример
ИмяИдентификатор латиницей или кириллицей без пробеловИнвентаризация
СинонимЗаголовок, который увидит пользователь«Инвентаризация»
КомментарийПояснение для разработчиков«Самописные обработки склада»
ОтображениеАвто, Картинка, Текст или Картинка и текстКартинка и текст
ПодсказкаТекст всплывающей подсказки«Пересчёт и сверка остатков»
КартинкаКартинка из библиотеки или общих картиноклюбая подходящая
КатегорияОдна из четырёх категорийПанель действий

Категорию выбирайте сразу и осознанно. Если позже поменять её, команды с неподходящим типом (с параметром или без) перестанут показываться в этой группе.

Шаг 3. Привязать команды

  1. Откройте общую команду (Общие → Общие команды) или команду объекта (вкладка «Команды» в окне объекта).
  2. В свойстве «Группа» выберите свою группу. Она появится в списке рядом со стандартными.
  3. Если команда без параметра, проверьте, что она включена хотя бы в одну подсистему (свойство «Состав» у подсистемы или флажок в окне команды). Без этого в разделах её не будет.

Шаг 4. Задать порядок и видимость

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

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

Как группы команд связаны с ролями и профилями групп доступа

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

Права на объект

Стандартные команды объектов (открыть список, создать) платформа скрывает сама, если у пользователя нет права на объект. Нет права «Просмотр» на справочник — нет и команды открытия его списка. Нет права «Добавление» — пропадает команда создания.

Для общей команды автоматики меньше. Если команда открывает обработку или отчёт, пользователю нужно право «Использование» на этот объект. Иначе он увидит команду, но получит отказ при нажатии, или команда будет скрыта — зависит от того, как она написана.

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

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

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

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

Профили групп доступа в БСП

В БП 3.0, ЗУП 3.1, УТ 11 права выдают не ролями напрямую, а через профили групп доступа: Администрирование → Настройки пользователей и прав → Профили групп доступа. Профиль — набор ролей. Поэтому цепочка такая:

  1. Профиль включает роли.
  2. Роли дают права на объекты и участвуют в настройке «Видимость по ролям».
  3. Платформа по этим правам собирает команды в группы.

Если вы добавили своей обработке новую роль, включите её в нужный профиль. Иначе команда в группе не появится, хотя в Конфигураторе всё настроено верно.

Почему команда не видна в группе: диагностика

Ниже — частые симптомы и что проверить в первую очередь.

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

Приёмы отладки

  • 👤 Запуск под пользователем. Из Конфигуратора можно запустить 1С:Предприятие с нужным именем пользователя и посмотреть интерфейс его глазами. Это быстрее, чем гадать по ролям.
  • 🔎 Режим «Все функции». Включается в параметрах программы (меню с шестерёнкой или «Сервис и настройки» → «Параметры» → флажок показа команды «Все функции»). Если объект там открывается, а команды в разделе нет — проблема в командном интерфейсе, а не в правах.
  • 🧪 Проверка прав в коде. Если команда открывает форму программно, добавьте проверку ПравоДоступа("Использование", Метаданные.Обработки.ИмяОбработки) до вызова формы и выведите понятное сообщение вместо системной ошибки.
  • 📋 Поиск ссылок на группу. Показывает все команды, привязанные к группе, — полезно, когда группу хотят удалить или переименовать.

Пример обработчика общей команды с проверкой права:

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

&НаСервере
Функция ЕстьПравоНаОбработку()
	Возврат ПравоДоступа("Использование", Метаданные.Обработки.СверкаОстатков);
КонецФункции

Если модуль общей команды выполняется только на клиенте, функцию проверки вынесите в общий модуль с флажком «Вызов сервера».

Группы команд в расширении конфигурации

Дорабатывать типовую конфигурацию через снятие с поддержки дорого: каждое обновление превращается в сравнение и объединение. Расширение снимает эту проблему.

В расширении можно создать свою общую команду и указать для неё стандартную группу. Если нужна собственная группа, добавьте её в расширение так же, через ветку Общие → Группы команд. После подключения расширения и перезапуска сеанса команды появятся у пользователей с нужными правами.

Роли для команд расширения тоже создают в расширении. В типовых конфигурациях на БСП такие роли затем включают в профиль групп доступа, иначе пользователи их не получат.

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

Как организовать группы команд: практичные правила

Хорошая группа экономит пользователю клики, плохая превращает раздел в свалку. Несколько правил из практики:

  1. Сначала стандартные группы. Свою создавайте, только когда команд одного смысла три и больше.
  2. Заголовок — бизнес-смысл. «Инвентаризация», «Закрытие месяца », а не «Доработки» или «Мои обработки».
  3. Одна группа — одна категория. Не пытайтесь использовать одну группу и для раздела, и для формы — заведите две.
  4. Не плодите группы на форме. Для командной панели формы чаще удобнее подменю на самой форме, чем новая общая группа.
  5. Картинка — для частых действий. Отображение «Картинка» без текста подходит, только если иконка однозначна.
  6. Видимость управляйте ролями, а не удалением. Скрыть команду через «Видимость по ролям» проще, чем поддерживать разные варианты конфигурации.
  7. Документируйте в комментарии, для кого группа и откуда команды. Через год это сэкономит разбор чужой доработки.
Проверка перед выкладкой новой группы команд
Выполнено: 0 / 5

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

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