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

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

Как убрать команду из командной панели в 1С

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

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

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

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

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

Первый тип — стандартные команды объекта (запись, проведение, пометка удаления). Второй — команды формы, добавленные разработчиком в конфигураторе. Третий — команды, выводимые автоматически из подменю «Печать», «Заполнение», подключаемых команд БСП и команд подсистем. Стандартные и автоматические команды часто нельзя удалить напрямую — их приходится скрывать.

Команда есть в дереве элементов формыОбычная команда формы

Можно удалить элемент кнопки прямо в конфигураторе

Команда появляется только в режиме предприятияАвтоматическая команда (печать, БСП, подсистемы)

Ищите источник: подключаемые команды, группа формирования команд

Конфигурация на поддержке без измененийПрямое редактирование невозможно

Используйте расширение или программное скрытие

Удаление команды в конфигураторе через дерево элементов формы

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

Найдите кнопку, соответствующую ненужной команде. У вас два варианта: удалить элемент полностью (клавиша Delete или контекстное меню «Удалить») либо оставить элемент, но снять у него свойство «Видимость» в палитре свойств. Удаление подходит, если кнопка точно не понадобится; снятие видимости безопаснее — элемент можно вернуть без восстановления конфигурации.

Обратите внимание: если кнопка связана с командой формы, сама команда останется на вкладке «Команды» редактора формы. Это не ошибка — команда без кнопки просто не отображается. Удалять саму команду стоит только если она нигде больше не используется (не вызывается из кода, не привязана к другим кнопкам и клавишам).

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

Программное скрытие команды через модуль формы

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

Обращение к элементу выполняется через коллекцию Элементы формы по имени кнопки. Свойство Видимость принимает значения Истина или Ложь. Важно указывать точное имя элемента формы, а не имя команды — они могут отличаться. Имя элемента смотрите в дереве элементов конфигуратора или через «Все действия — Изменить форму» в режиме предприятия.

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

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

Скрытие команды через настройку формы в режиме предприятия

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

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

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

Удаление команды через расширение конфигурации

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

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

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

Как убрать команды печати и команды из подменю «Ещё»

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

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

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

Типичные ошибки
01
Удаление кнопки вместо скрытия — потом команду сложно вернуть без восстановления типовой формы
02
Скрытие кнопки вместо ограничения прав — команда остаётся доступна через горячие клавиши и программный вызов
03
Правка типовой формы напрямую в конфигурации на поддержке — потеря изменений при обновлении
04
Попытка удалить динамическую команду печати из дерева элементов — её там нет, нужно править модуль менеджера
05
Программное скрытие по неточному имени элемента — код молча не срабатывает или падает с ошибкой

Проверка результата и откат изменений

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

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

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

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

Состав командной панели в режиме предприятия
Норма

Ненужной кнопки нет, остальные команды на месте

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

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

Открытие формы
Норма

Форма открывается без ошибок

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

Ошибка «Поле объекта не обнаружено» — неверное имя элемента

Меню «Ещё»
Норма

Команда отсутствует и там

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

Команда доступна через «Ещё» — скрыта только кнопка

Работа после обновления конфигурации
Норма

Расширение применяется, изменения сохранены

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

Изменения пропали — правили типовую форму напрямую

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

Можно ли убрать стандартную кнопку «Записать» или «Провести»?

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

Команда скрыта, но пользователь всё равно может её выполнить. Почему?

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

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

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

Почему в дереве элементов формы нет нужной кнопки?

Значит, команда формируется динамически: это команды печати, ввода на основании, подключаемые команды БСП или команды подсистем. Ищите источник в модуле менеджера объекта (ДобавитьКомандыПечати), в настройках командного интерфейса объекта или в подсистеме дополнительных отчетов и обработок.

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

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

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

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

Итог

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

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