Скрыть лишнюю кнопку в командной панели формы 1С
Содержание
Убрать команду из командной панели можно четырьмя путями: скрыть кнопку в режиме «Изменить форму» (только для себя), снять пользователю право на действие, поправить форму в конфигураторе или скрыть элемент кодом. Какой выбрать, зависит от того, кому кнопка мешает: одному человеку, группе или всем.
Самый быстрый и безопасный способ — настройка формы прямо в окне программы. Он ничего не ломает в конфигурации и откатывается одной кнопкой. Остальные способы нужны администратору и разработчику, и там уже важно понимать, что вы меняете.
С чего начать: что такое командная панель и откуда берутся команды
Командная панель — это ряд кнопок над списком или в верхней части формы документа: «Создать», «Копировать», «Печать», «Ещё» и так далее. Часть кнопок вынесена на саму панель, остальные спрятаны в меню «Ещё».
Команда попадает на форму тремя путями:
- 🧱 разработчик конфигурации добавил её в форму вручную;
- ⚙️ платформа сформировала стандартную команду для списка или документа (создать, изменить, удалить, найти);
- 🧩 подсистема «Дополнительные отчёты и обработки», БСП или расширение подключили свою кнопку.
От источника зависит способ удаления. Стандартную команду нельзя «удалить» из формы типовой конфигурации, но можно скрыть. Свою добавленную кнопку можно убрать полностью. А кнопку, которую показывает право доступа, лучше убирать правами, а не интерфейсом.
Перед правками определите, что именно вы убираете:
| Что мешает | Лучший способ | Кого затрагивает |
|---|---|---|
| Кнопка не нужна лично вам | «Изменить форму» в режиме пользователя | Только вас |
| Группе людей нельзя нажимать | Права роли или видимость по ролям | Выбранные роли |
| Кнопка не нужна никому | Конфигуратор или расширение | Всех пользователей |
| Видимость зависит от условия | Код в ПриСозданииНаСервере | Все, по условию |
Способ 1. Убрать команду через «Изменить форму» без конфигуратора
Этот способ работает в интерфейсе «Такси» на любой форме, где разработчик не запретил настройку. Конфигуратор и права администратора не нужны.
- Откройте нужный список или документ.
- Нажмите кнопку «Ещё» в командной панели и выберите
Изменить форму.... - В открывшемся окне настройки найдите ветку командной панели. Команды в ней стоят в виде дерева с флажками.
- Снимите флажок у лишней команды.
- Нажмите «ОК». Форма перестроится сразу.
Если команды нет в дереве, форма либо не поддерживает настройку, либо команда подключена иначе (например, через подсистему дополнительных обработок).
В этом же окне можно не только скрывать кнопки, но и переносить их: например, вынести «Печать» на панель или спрятать в «Ещё» редкую команду. Для ежедневной работы это удобнее, чем полное удаление.
Настройка хранится в профиле пользователя. Другие сотрудники её не увидят. Если вы работаете под несколькими пользователями, настраивать форму придётся под каждым отдельно.
Панель действий и навигации — отдельные места
Кнопки быстрого доступа в верхней части окна («звёздочка», «история», команды раздела) настраиваются иначе. В меню основного окна (кнопка со стрелкой слева вверху) выберите Вид и найдите пункты настройки панели действий и навигации. Там также выбираются доступные команды для разделов.
Не путайте: командная панель формы и панель действий — это разные объекты. Первая живёт внутри окна списка или документа, вторая принадлежит рабочему месту.
Способ 2. Скрыть команду в конфигураторе
Если команда лишняя для всех, администратор может изменить форму. Но сначала проверьте, на поддержке ли конфигурация.
Типовая конфигурация (БП, ЗУП, УТ) стоит на поддержке. Прямая правка формы снимет с неё поддержку или создаст расхождения при каждом обновлении. Для типовых решений используйте расширение конфигурации, а не правку основной.
Порядок для собственной конфигурации или расширения:
- Откройте конфигуратор под учётной записью с правами администратора.
- В дереве конфигурации найдите объект (справочник, документ), затем его форму. Откройте её двойным щелчком.
- На закладке «Элементы» разверните группу командной панели. Там лежат кнопки и подменю.
- Выделите кнопку и в палитре свойств снимите флажок
Видимость. Элемент останется в форме, но показываться не будет. - Сохраните конфигурацию и обновите конфигурацию базы данных (
F7, затем подтвердите изменение).
Скрывать лучше, чем удалять. Невидимый элемент можно вернуть одним флажком, а удалённый придётся создавать заново. К тому же другие части формы могут ссылаться на команду, и её удаление вызовет ошибку при открытии.
Стандартные команды списка
У списка есть встроенная командная панель. Чтобы убрать из неё «Создать» или «Копировать», в свойствах таблицы формы откройте настройку командной панели. Обычно достаточно отключить автозаполнение командной панели и вручную оставить нужные кнопки. Но у документа с типовой формой такая правка тоже попадает под ограничения поддержки.
Расширение конфигурации — как делать для типовой базы
Расширение появилось в платформе 8.3.6. В нём форму не перезаписывают, а «заимствуют»: добавляют в расширение объект с формой и меняют только нужные свойства.
- В конфигураторе откройте
Конфигурация → Расширения конфигурациии создайте расширение. - В расширение добавьте нужный объект (команда
Добавить в расширениепо правой кнопке). - Заимствуйте форму и в ней снимите видимость у лишней кнопки.
- Сохраните расширение и загрузите его в базу, затем примените изменения конфигурации базы данных.
Это отдельные шаги: само сохранение расширения ещё не меняет рабочую базу.
Способ 3. Убрать команду правами: роли и видимость
Иногда кнопка нужна бухгалтеру, а стажёру нажимать её нельзя. Тогда надёжнее убрать не кнопку, а возможность действия.
Платформа сама прячет команды, если у пользователя нет права. Например, без права Интерактивное добавление на справочнике исчезает «Создать», а без Интерактивное удаление пропадает пометка на удаление. Права настраиваются в роли у объекта.
Порядок действий администратора:
- Откройте в конфигураторе роль, назначенную пользователю.
- Найдите нужный объект и снимите флажок с интерактивного права (добавление, изменение, удаление).
- Сохраните роль. Новые права подхватятся при следующем запуске сеанса пользователя.
В решениях на БСП роли обычно уже разложены по профилям групп доступа. Редактировать типовую роль не стоит: создайте свой профиль в Администрирование → Настройки пользователей и прав → Группы доступа и подберите набор ролей. Точные названия пунктов могут отличаться в зависимости от конфигурации и релиза.
Для командного интерфейса подсистем в конфигураторе есть настройка видимости команды по ролям. С её помощью можно, например, показать раздел только отделу кадров.
Права защищают от действия, а скрытая кнопка — нет. Если человеку запрещено удалять документы, настраивайте право. Скрытие кнопки — лишь косметика: удалить можно другим путём, например через список или обработку.
Способ 4. Управлять видимостью кодом
Когда кнопка должна пропадать по условию (статус документа, организация, роль), используют программный способ. Он подходит разработчикам и поддерживается в расширениях.
Код пишут в обработчике формы ПриСозданииНаСервере, пока форма ещё не показана пользователю:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не РольДоступна("ПолныеПрава") Тогда
Элементы.ФормаКоманднаяПанельНедоступна.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
Имя элемента (ФормаКоманднаяПанельНедоступна в примере условное) смотрите на закладке «Элементы» в конфигураторе. Чаще всего оно строится из слова «Форма» и названия команды, но у вас может быть другое.
Если кнопку нужно не прятать, а «заморозить», используйте Доступность:
Элементы.ИмяКнопки.Доступность = Ложь;
Кнопка останется на виду, но нажать её нельзя. Так видно, что функция существует, но сейчас недоступна.
Разница между свойствами:
| Свойство | Результат | Когда применять |
|---|---|---|
Видимость | Кнопка исчезает с формы | Команда не нужна вообще |
Доступность | Кнопка серая, нажать нельзя | Функция временно закрыта |
Для пользовательского переключения у кнопки есть свойство видимости, которое пользователь может менять сам в режиме «Изменить форму». Если разработчик его отключил, в списке настройки такой кнопки не будет — это ответ на вопрос «почему команды нет в дереве».
В расширении тот же код помещают в обработчик с директивой для перехвата процедуры формы. Тип перехвата выбирайте по задаче: после выполнения штатной процедуры или вместо неё.
Если кнопка не пропала: типичные ошибки
Скрытие команды не всегда срабатывает с первого раза. Вот что встречается чаще всего.
- 🔄 Форма осталась прежней после правки. Конфигурация сохранена, но не применена к базе. Нажмите
F7или обновите конфигурацию базы данных. - 👤 Кнопка вернулась после обновления. Вы правили форму типовой конфигурации напрямую, и обновление перезаписало изменения. Перенесите правку в расширение.
- 🧩 Кнопка на форме от дополнительной обработки. Её подключает подсистема, а не сама форма. Отключается в карточке обработки, а не в форме.
- 🚫 Элемента нет в дереве «Изменить форму». Разработчик отключил пользовательскую настройку или команда стоит в другом контейнере. Тогда без конфигуратора не обойтись.
- ⛔ Нажатие всё равно возможно. Команда скрыта, но к ней есть путь через контекстное меню, горячую клавишу или другую форму. Нужное запрещайте правами.
Если ошибка возникает при открытии формы после удаления элемента, значит, на него ссылается код или другой элемент. Верните удалённое из резервной копии конфигурации или из хранилища, а при отсутствии копии — создайте элемент заново и оставьте его невидимым.
Как вернуть скрытую команду обратно
Скрыть легко, вернуть бывает сложнее, если забыли, что именно меняли. Порядок зависит от способа.
Если скрывали через «Изменить форму». Откройте Ещё → Изменить форму... и в окне настройки найдите кнопку установки стандартных настроек. Она вернёт форму к виду, который задал разработчик. Либо вручную поставьте флажок у нужной команды.
Если правили в конфигураторе. Откройте форму, выделите элемент и снова поставьте Видимость. Для заимствованной формы в расширении можно убрать само свойство из расширения, и форма вернётся к исходной.
Если убрали правом. Верните флажок интерактивного права в роли и перезапустите сеанс пользователя.
Если скрывали кодом. Удалите или закомментируйте строку с Видимость = Ложь и проверьте, нет ли условия в другом обработчике.
Перед массовой правкой имеет смысл сделать выгрузку конфигурации или копию базы . Для личной настройки формы это не требуется, достаточно знать, где кнопка сброса.
Когда команду лучше не убирать
Бывает, что кнопка мешает только потому, что стоит не там. Перед скрытием взвесьте три случая.
- 📌 Редкая команда. Не прячьте её совсем, а уберите в «Ещё» через «Изменить форму». Она останется под рукой, но не будет занимать место.
- 🧾 Команда нужна раз в квартал. Например, массовая обработка перед закрытием периода. Скрытая кнопка в нужный день вызовет звонок администратору.
- 👥 Кнопка нужна коллегам. Личная настройка их не затронет, а вот правка в конфигураторе или расширении затронет всех. Согласуйте изменение заранее.
Ещё одна деталь: у команд подменю (например, «Печать» или «Создать на основании») скрыть можно как весь пункт, так и отдельный вариант внутри. Для отдельной печатной формы смотрите настройку самой формы или список доступных печатных форм, а не командную панель.