К статье
Практический материал

Разработка и Конфигурация · 10 мин

Что такое группа команд в 1С и как с ними работать

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

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

Механизм групп команд работает только в управляемых формах — в обычных формах устаревшего интерфейса структура командной панели устроена иначе. При этом платформа сама создаёт часть групп автоматически: например, стандартные подменю «Создать», «Печать», «Ещё» в типовых конфигурациях — это группы кнопок, сформированные системой или разработчиком.

Понимание устройства групп команд важно и разработчику, и продвинутому пользователю. Разработчик управляет составом и видом групп через конфигуратор или программно, а пользователь в ряде случаев может менять настройки командной панели через режим «Изменить форму». Ниже разберём виды групп, способы их создания и типичные ошибки.

Что представляет собой группа команд в управляемой форме

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

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

Виды групп кнопок и их отображение

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

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

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

Вид группыКак выглядитКогда применять
ПодменюПункт с выпадающим списком командМного однотипных действий: печать, создание на основании
Компактная группаКнопки вплотную друг к другу2–4 часто используемые команды, экономия места
Обычная группаРяд кнопок, выделенный как блокЛогически связанные действия, которые должны быть на виду

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

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

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

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

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

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

В некоторых задачах группу нужно создать динамически — например, когда набор команд зависит от вида документа или настроек пользователя. Это делается в модуле формы, обычно в обработчике «ПриСозданииНаСервере».

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

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

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

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

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

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

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

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

Контрольные точки

Как проверить результат

Группа отображается на форме
Норма

Подменю или ряд кнопок виден в командной панели

Тревожный признак

Группы нет — проверьте видимость, права и функциональные опции

Команды внутри группы работают
Норма

Каждая кнопка выполняет действие без ошибок

Тревожный признак

Кнопка неактивна или выдаёт ошибку — проверьте обработчик команды

Порядок команд
Норма

Кнопки идут в логичной последовательности

Тревожный признак

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

Типичные ошибки и ограничения

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

Типичные ошибки
01
Кнопка добавлена в форму, но не в группу — в дереве элементов она лежит вне нужного родителя и отображается отдельно.
02
Группа не видна из-за функциональной опции: если у всех команд внутри группы снята доступность по опции, платформа скрывает и саму группу.
03
Попытка программно изменить стандартную группу типовой формы — изменения теряются при обновлении; нужно использовать расширение.
04
В подменю помещено слишком много команд — пользователю трудно найти действие; выносите частые команды на верхний уровень.
05
Не указан обработчик команды при программном создании — кнопка появляется, но нажатие вызывает ошибку.

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

Частые команды лучше выносить из подменю прямо в командную панель: каждый лишний уровень вложенности увеличивает время выполнения операции. Подменю оставляйте для редких и однотипных действий.
ПЗ
Практическое замечание

Часто задаваемые вопросы

Чем группа команд отличается от командной панели?

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

Почему созданная группа не видна в режиме предприятия?

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

Можно ли изменить группу команд без доработки конфигурации?

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

Как добавить команду в подменю «Печать» типовой конфигурации?

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

Сохранятся ли программно созданные группы после закрытия формы?

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

Работают ли группы команд в обычных формах?

Механизм групп кнопок с видами «Подменю» и «Компактное отображение» относится к управляемым формам. В обычных формах используется собственная модель командных панелей и меню, и переносить описанные приёмы туда напрямую нельзя.

Итог

Что важно запомнить

Группа команд в 1С — это элемент управляемой формы «ГруппаКнопок», объединяющий команды в подменю, компактный или обычный блок. Создаётся в редакторе формы или программно, настраивается через свойства вида и отображения. Типовые группы лучше менять через расширения, а пользователю доступна только настройка видимости и порядка кнопок.