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

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

Как создать командную панель в 1С

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

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

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

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

Что такое командная панель и где она встречается

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

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

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

Подготовка: открываем форму в конфигураторе

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

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

Создаём командную панель на форме

В дереве элементов формы выделите корневой элемент «Форма» или группу, внутри которой должна располагаться панель. Нажмите кнопку «Добавить» в панели инструментов дерева элементов или вызовите контекстное меню правой кнопкой. В списке типов элементов выберите «Группа», а в свойствах группы установите вид «Командная панель».

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

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

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

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

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

Создание собственной команды

Для нестандартного действия откройте закладку «Команды» и нажмите «Добавить». Задайте имя команды (латиницей, без пробелов, например ЗаполнитьПоУмолчанию) и синоним — он будет отображаться на кнопке. В свойстве «Действие» нажмите кнопку с лупой: конфигуратор создаст в модуле формы шаблон обработчика, куда нужно вписать логику.

bsl
&НаКлиенте
Процедура ЗаполнитьПоУмолчанию(Команда)
	Объект.Склад = ПолучитьСкладПоУмолчанию();
	Объект.Комментарий = "Заполнено автоматически";
КонецПроцедуры

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

Группировка кнопок в подменю

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

Настройка внешнего вида и поведения

Полезные свойства командной панели и кнопок, которые стоит проверить после создания:

  • Автозаполнение — если включено, платформа сама добавляет в панель стандартные команды. Для полностью ручной панели свойство отключают.
  • Источник команд — указывает, команды какого объекта (формы, таблицы) доступны для панели.
  • Доступность — позволяет скрыть или заблокировать панель целиком.
  • Отображение кнопки — текст, картинка или комбинированный вид.
  • Кнопка по умолчанию — срабатывает по нажатию Enter.

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

Программное управление командной панелью

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

bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если Объект.Проведен Тогда
		Элементы.ЗаполнитьПоУмолчанию.Видимость = Ложь;
	КонецЕсли;
КонецПроцедуры

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

Способы настройки панели

Визуально в конфигураторе

Подходит для статичного набора кнопок; просто и наглядно, но состав панели фиксирован

Программно в модуле формы

Подходит, когда видимость и состав кнопок зависят от данных; гибче, но требует кода и тестирования

Через расширение конфигурации

Подходит для доработки типовых форм без снятия с поддержки; ограничения — не все изменения форм доступны в расширениях

Проверка результата и типичные ошибки

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

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

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

Кнопка видна на форме
Норма

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

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

Кнопки нет — проверьте свойство «Видимость» и положение в дереве элементов

Нажатие кнопки
Норма

Выполняется обработчик, данные меняются

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

Ничего не происходит — команда не привязана к кнопке или обработчик пуст

Права пользователя
Норма

Действие доступно под рабочей ролью

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

Ошибка доступа — у роли нет прав на вызываемые объекты

Типичные ошибки
01
Команда создана, но не перетащена в панель — кнопка не появляется на форме
02
Обработчик команды без директивы &НаКлиенте или &НаСервере — ошибка компиляции модуля
03
Доработка типовой формы напрямую, а не через расширение — изменения теряются при обновлении
04
Все кнопки помечены как важные — панель перегружена, акцент не работает
05
Изменения сохранены в конфигураторе, но не обновлена конфигурация БД — в режиме предприятия всё по-старому

Если кнопка есть, но не нажимается (неактивна), проверьте свойство «Доступность» кнопки и панели, а также контекст: например, команды записи недоступны, пока форма заблокирована другим пользователем или данные не изменены.

FAQ: частые вопросы о командной панели в 1С

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

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

Почему моя кнопка не отображается на форме?

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

Как добавить кнопку в командную панель табличной части?

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

Как изменить командную панель типовой конфигурации, не снимая её с поддержки?

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

Как назначить кнопке горячие клавиши?

В свойствах кнопки в редакторе формы есть поле «Сочетание клавиш». Выберите комбинацию из списка. Учитывайте, что сочетание не должно конфликтовать со стандартными комбинациями платформы, иначе одна из команд перестанет срабатывать.

Итог

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

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