Разработка и Конфигурация · 10 мин
Как изменить состав командной панели в 1С
Как изменить состав командной панели в 1С: добавление и удаление кнопок, настройка через конфигуратор и режим «Изменить форму», группировка команд и типичные ошибки.
Командная панель в 1С — это полоса с кнопками вверху формы документа, справочника или списка: «Записать», «Провести», «Создать», «Подобрать» и другие. Когда стандартного набора кнопок не хватает или, наоборот, панель перегружена лишними командами, состав панели можно изменить. Способ зависит от того, кто вносит правки: обычный пользователь меняет видимость кнопок прямо в режиме 1С:Предприятие, а разработчик добавляет новые команды через конфигуратор.
Важно различать две ситуации. Первая — персональная настройка формы: пользователь убирает ненужные кнопки и меняет их порядок только для себя, конфигурация при этом не меняется. Вторая — доработка конфигурации: в командную панель добавляется новая кнопка с собственным обработчиком, и изменение видят все пользователи. Оба сценария разобраны ниже пошагово.
Что такое командная панель и из чего она состоит
Командная панель — элемент формы, который автоматически наполняется командами. Источники команд бывают разными: стандартные команды объекта (запись, проведение, пометка удаления), команды формы, созданные разработчиком, глобальные команды и команды, подтянутые из связанных объектов (например, «Создать на основании»).
Панель может быть привязана к конкретному элементу — например, к табличной части документа. Тогда в неё попадают команды этой табличной части: «Добавить», «Удалить», «Подобрать», перемещение строк. У одной формы может быть несколько командных панелей: общая вверху и локальные у таблиц.
Как изменить панель пользователю без конфигуратора
Если нужно просто убрать лишние кнопки или вытащить важную команду из меню «Ещё» на видное место, конфигуратор не потребуется. Откройте нужную форму в режиме 1С:Предприятие, затем перейдите в меню «Ещё» и выберите пункт «Изменить форму». Если такого пункта нет — у пользователя нет права «Изменение форм» либо форма жёстко задана разработчиком.
В открывшемся окне настройки найдите в дереве элементов ветку командной панели. Снимите флажки с кнопок, которые не нужны, или установите флажки для скрытых команд. Порядок кнопок меняется кнопками перемещения вверх и вниз. После нажатия «ОК» форма перестроится, а настройка сохранится в персональных настройках пользователя.
- 1Откройте форму документа или списка
- 2Меню «Ещё» → «Изменить форму»
- 3Найдите командную панель в дереве элементов
- 4Снимите или установите флажки видимости у кнопок
- 5Настройте порядок кнопок стрелками перемещения
- 6Нажмите «ОК» и проверьте результат на форме
Учтите ограничение: таким способом нельзя добавить кнопку с новой логикой — только управлять видимостью и расположением существующих команд. Также настройка действует для конкретного пользователя; чтобы вернуть вид формы к исходному, используйте в том же окне настройки команду «Установить стандартные настройки».
Как добавить кнопку через конфигуратор
Разработческий сценарий начинается в конфигураторе. Откройте конфигурацию, найдите нужный объект (документ, справочник, обработку), раскройте его формы и откройте основную форму. В редакторе формы перейдите на закладку «Команды» — здесь создаётся новая команда формы: задайте имя, заголовок (текст на кнопке), при необходимости картинку и подсказку.
После создания команды платформа предложит сформировать обработчик — процедуру на встроенном языке, которая выполнится при нажатии. Выберите тип обработчика: на клиенте, на сервере или клиент-серверный вызов. Далее перетащите команду мышью из списка команд в дерево элементов формы — прямо на узел командной панели. Кнопка появится в панели в том месте, куда вы её перетащили.
&НаКлиенте
Процедура ПечатьМакета(Команда)
ПечатьМакетаНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПечатьМакетаНаСервере()
// логика обработки нажатия кнопки
КонецПроцедурыЕсли форма динамическая или кнопка должна появляться по условию, команду можно добавить программно в обработчике «ПриСозданииНаСервере»: сначала создаётся команда через коллекцию Команды.Добавить(), затем кнопка через Элементы.Добавить() с указанием родителя — командной панели — и свойства ИмяКоманды.
Группировка кнопок и подменю
Когда кнопок много, панель превращается в длинную полосу, которая не помещается на экране. Решение — группы. В дереве элементов формы добавьте внутрь командной панели элемент «Группа кнопок» с видом «Подменю» и перетащите в него связанные команды. На форме появится выпадающее меню с заголовком группы.
Группа с видом «Группа кнопок» просто объединяет кнопки визуально, а вид «Подменю» сворачивает их в меню. Стандартная практика: основные действия (записать, провести) оставить на виду, редко используемые (печатные формы, служебные операции) убрать в подменю. Часть команд платформа сама складывает в «Ещё» — это поведение тоже настраивается свойством кнопки «ТолькоВоВсехДействиях».
Сравнение вариантов изменения панели
Подходит пользователю без прав разработчика. Меняет только видимость и порядок, только для себя. Нельзя добавить новую логику.
Полный контроль: новые команды, обработчики, группы, картинки. Изменения видят все пользователи. Требует прав и понимания структуры формы.
Гибко для динамических условий: кнопка появляется по роли или состоянию документа. Сложнее в отладке, кнопки не видны в редакторе формы.
Настройка командного интерфейса панелей разделов
Отдельный случай — командные панели разделов в интерфейсе «Такси»: панель разделов, панель функций текущего раздела, панель избранного. Их состав пользователь меняет через главное меню: «Вид → Настройка панелей» или перетаскиванием разделов мышью. Порядок разделов и их видимость сохраняются персонально.
Администратор или разработчик управляет составом команд разделов через конфигуратор: в свойствах подсистем задаётся, какие объекты входят в раздел, а в редакторе командного интерфейса подсистемы настраивается видимость и порядок команд «Создать», «Открыть список», отчётов и обработок. Там же включается автопорядок либо задаётся ручная расстановка.
Риски, ограничения и типичные ошибки
Главный риск при доработке типовой конфигурации — потеря изменений при обновлении. Если вы добавили кнопку в форму типового документа, при очередном обновлении конфигурации форма может быть замещена, и правки пропадут. Безопасные варианты: использовать механизм расширений конфигурации, который добавляет команды поверх типовой формы без её изменения, либо включать объект в поддержку с возможностью изменения и аккуратно сопоставлять формы при обновлении.
Вторая группа проблем — права доступа. Кнопка может отображаться, но при нажатии пользователь получит ошибку нарушения прав, если команда обращается к недоступным данным. Проверяйте работу новой кнопки под ролью реального пользователя, а не только под полными правами.
Как проверить результат
После изменения панели в конфигураторе обновите конфигурацию базы данных (F7) и запустите режим 1С:Предприятие. Откройте форму и убедитесь, что кнопка видна, расположена в нужном месте и выполняет задуманное действие. Проверьте поведение при разных состояниях объекта: новый документ, записанный, проведённый — видимость кнопки может зависеть от состояния.
Для персональной настройки через «Изменить форму» достаточно закрыть и заново открыть форму — настройка должна сохраниться. Если настройка «слетает», проверьте, не очищаются ли настройки форм регламентным заданием или групповой обработкой, и есть ли у пользователя право сохранения настроек.
Как проверить результат
Отображается в панели, нажатие выполняет действие
Кнопки нет или при нажатии ошибка
Кнопка работает под типовой ролью пользователя
Работает только под полными правами
После переоткрытия формы порядок кнопок сохранён
Настройка сбрасывается к стандартной
Доработка в расширении осталась на месте
Кнопка пропала — форма была замещена
Что важно запомнить
Пользователь меняет видимость и порядок кнопок через «Ещё → Изменить форму», разработчик добавляет новые команды в конфигураторе через закладку «Команды» и перенос в дерево элементов. Для типовых конфигураций используйте расширения, проверяйте работу кнопок под реальными правами и тестируйте на копии базы.
Частые вопросы
Почему в меню «Ещё» нет пункта «Изменить форму»?
Чаще всего у пользователя отсутствует право «Изменение форм» в роли, либо администратор запретил персональную настройку. Также пункт недоступен для некоторых служебных форм. Обратитесь к администратору, чтобы право добавили, либо попросите внести изменение через конфигуратор для всех пользователей.
Можно ли добавить кнопку сразу для всех пользователей без конфигуратора?
Нет. Настройка «Изменить форму» персональна. Чтобы изменение увидели все, нужен конфигуратор (доработка формы или расширение) либо механизм копирования настроек форм между пользователями через административные обработки, если он предусмотрен в вашей конфигурации.
Как убрать стандартную кнопку, например «Провести», из панели?
Пользователь может скрыть её через «Изменить форму», сняв флажок. В конфигураторе стандартные команды скрываются снятием флажка в редакторе командного интерфейса формы или изменением свойств кнопки. Полностью запретить действие кнопкой нельзя — для запрета проведения используйте права доступа или условия в коде.
Что делать, если добавленная команда не появилась на форме?
Проверьте, что команда перетащена именно в дерево элементов формы, а не только создана на закладке «Команды». Затем убедитесь, что конфигурация базы данных обновлена (F7) и форма открыта заново. Если кнопка добавляется программно — проверьте, что код находится в обработчике «ПриСозданииНаСервере» и не обрывается ошибкой раньше.
Чем расширение лучше прямой доработки формы?
Расширение накладывается поверх типовой конфигурации и не меняет её, поэтому обновления проходят проще: типовая форма замещается, а команда из расширения остаётся. Прямая доработка требует ручного сопоставления форм при каждом обновлении и чаще приводит к потере изменений.
Как вернуть командную панель к исходному виду?
Для персональной настройки: «Ещё → Изменить форму → Установить стандартные настройки». Если панель изменена в конфигураторе — откатите изменение формы в конфигурации или отключите расширение, добавлявшее кнопки, и обновите конфигурацию базы данных.