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