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

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

Как добавить командную панель в обычную форму 1С

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

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

Материал ориентирован на платформу 1С:Предприятие 8.x, где обычные формы всё ещё встречаются в старых конфигурациях и на поддержке. Примеры приведены для типового сценария: форма списка справочника или документа, куда нужно добавить собственную панель с кнопками «Печать», «Экспорт» или служебными действиями.

Где применяется командная панель и какие виды бывают

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

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

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

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

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

Добавляем элемент «Командная панель» на форму

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

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

Для управления положением панели используйте привязки: откройте свойства элемента, перейдите на закладку привязок и задайте привязку к верхней границе формы и к левому/правому краю. Без корректных привязок панель может «уехать» или перекрыть другие элементы при изменении размера окна пользователем.

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

Настраиваем кнопки и команды

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

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

Процедура ПанельДействийЭкспорт(Кнопка)

// Открываем обработку выгрузки данных

Обработка = Обработки.ВыгрузкаДанных.ПолучитьФорму("ФормаВыгрузки");

Обработка.Открыть();

КонецПроцедуры

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

Автозаполнение стандартными командами

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

Программное управление панелью из модуля формы

Иногда панель нужно менять динамически: скрывать кнопки по правам пользователя, менять доступность в зависимости от состояния объекта. Для этого в модуле формы обращайтесь к элементу через коллекцию «ЭлементыФормы». Например, отключить кнопку удаления для пользователей без полных прав можно в обработчике «ПриОткрытии»:

Процедура ПриОткрытии()

Если Не РольДоступна("ПолныеПрава") Тогда

КнопкаУдалить = ЭлементыФормы.КоманднаяПанельСписка.Кнопки.Найти("Удалить");

Если КнопкаУдалить <> Неопределено Тогда

КнопкаУдалить.Доступность = Ложь;

КонецЕсли;

КонецЕсли;

КонецПроцедуры

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

Проверка результата в режиме предприятия

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

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

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

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

Видимость панели
Норма

Панель отображается в заданной области формы

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

Панель скрыта или перекрыта другими элементами

Работа кнопок
Норма

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

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

При нажатии возникает ошибка «Процедура не обнаружена»

Привязки
Норма

При растягивании окна панель остаётся у границы формы

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

Панель смещается и наезжает на табличное поле

Автозаполнение
Норма

Стандартные кнопки добавлены и активны при наличии данных

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

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

Типичные ошибки и их устранение

Самая частая проблема — ошибка «Процедура или функция с указанным именем не определена» при нажатии кнопки. Причина: обработчик удалён из модуля, переименован или объявлен с неправильной сигнатурой. Лечение: откройте свойства кнопки, очистите поле «Действие» и создайте обработчик заново через кнопку выбора — конфигуратор сформирует корректный шаблон.

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

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

Альтернативы командной панели в обычной форме

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

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

Сравнение вариантов

Командная панель

Подходит для набора действий над формой или табличным полем; занимает постоянное место на форме

Отдельная кнопка

Подходит для одного-двух действий; при росте числа кнопок захламляет форму

Контекстное меню табличного поля

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

Подменю внутри панели

Подходит для группировки редких действий; требует лишнего щелчка для доступа к кнопке

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

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

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

Почему кнопка «Добавить» в панели неактивна, хотя список заполнен?

Чаще всего у табличного поля, заданного как источник действий, снято свойство «Изменять» (или «ТолькоПросмотр» у самой формы). Проверьте также права пользователя на добавление элементов объекта — при недостатке прав платформа блокирует стандартные команды автоматически.

Как добавить кнопку со своей картинкой?

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

Чем командная панель обычной формы отличается от командной панели управляемой формы?

В управляемой форме панель заполняется командами — отдельными объектами формы, а обработчики объявляются с директивами «&НаКлиенте» и «&НаСервере». В обычной форме нет объектов команд: кнопка напрямую ссылается на процедуру модуля формы с параметром «Кнопка», а весь код выполняется на клиенте в толстом или тонком клиенте с соответствующими ограничениями.

Как скрыть стандартные кнопки автозаполнения, оставив свои?

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

Форма не открывается после доработки — что проверить в первую очередь?

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

Итог

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

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