Лишняя кнопка в командной панели 1С: как скрыть или удалить

· 9 мин

Содержание

Убрать кнопку из командной панели формы в 1С 8.3 можно пятью способами. Пользователь делает это сам: в форме выбирает Ещё → Изменить форму… и снимает флажок у лишней команды. Администратор лишает роль права на объект, и команда пропадает у всей группы. Разработчик правит форму в конфигураторе, в расширении или скрывает элемент кодом.

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

Сначала выясните, что за кнопка и откуда она взялась

Командная панель формы собирается из нескольких источников. Поэтому одна и та же на вид кнопка убирается по-разному.

  • ⚙️ Команда самой формы. Её создал разработчик: кнопка «Заполнить», «Печать», «Провести». Живёт в элементах формы.
  • 📦 Стандартная команда списка или документа. Например, «Создать», «Скопировать», «Найти», «Вывести список ». Платформа добавляет их автоматически.
  • 🔗 Команда подсистемы. Подключается в форму через подменю Печать, Создать на основании, Отчёты, Дополнительные обработки. Состав подменю определяют настройки конфигурации и права.
  • 🧩 Команда из расширения. Её добавили вы или поставщик расширения. Убрать её можно, только отключив или изменив расширение.

Определить источник просто. Откройте форму, нажмите Ещё → Изменить форму… и посмотрите, есть ли команда в списке настройки. Если есть, пользовательской настройки достаточно. Если команды в списке нет, она приходит из подсистемы или зависит от прав.

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

Способ 1. Скрыть кнопку через настройку формы (для пользователя)

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

  1. Откройте нужную форму: список, документ или справочник.
  2. В правом верхнем углу формы нажмите кнопку с тремя точками, Ещё, затем выберите Изменить форму….
  3. В окне настройки найдите раздел с командной панелью. Команды показаны деревом с флажками.
  4. Снимите флажок у лишней команды. Если группа свёрнута, раскройте её.
  5. Нажмите ОК. Форма перерисуется сразу.

Здесь же настраивается порядок кнопок: можно перетащить нужные в начало панели, а редкие убрать в Ещё. Для многих сценариев этого достаточно.

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

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

Способ 2. Управлять доступом через роли

Многие кнопки исчезают из панели сами, когда у пользователя нет права на действие. Например, команда создания новой записи не показывается, если у роли нет права Добавление на справочник. Команда проведения пропадает без права Проведение на документ. Это штатное поведение платформы, и оно лучше любых костылей: пользователь не видит то, что всё равно не смог бы выполнить.

Порядок действий для администратора:

  1. Откройте Администрирование → Настройки пользователей и прав → Группы доступа (в разных конфигурациях раздел может называться чуть иначе, но группы доступа есть во всех типовых).
  2. Найдите группу, в которую входит пользователь, и посмотрите её профиль.
  3. В профиле откройте роли и определите, какая роль даёт лишнее право.
  4. Создайте собственный профиль, взяв типовой за основу, и уберите лишнее. Сам типовой профиль не правьте: при обновлении ваши изменения могут потеряться.

Этот способ подходит, когда кнопка лишняя именно потому, что человек не должен выполнять действие: удалять, проводить, менять. Если же действие разрешено, а кнопка просто мешает, роли не помогут. Для интерфейсных пожеланий нужны способы 1, 3, 4 или 5.

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

Способ 3. Изменить форму в конфигураторе

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

Что делать:

  1. Запустите базу в режиме Конфигуратор.
  2. В дереве конфигурации найдите объект: справочник, документ, обработку. Раскройте ветку Формы и откройте нужную форму двойным щелчком.
  3. В редакторе формы перейдите на закладку Элементы. Там дерево: командные панели, кнопки, поля, группы.
  4. Выберите кнопку или командную панель. Теперь есть два варианта.

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

Удалить. Выделите кнопку в дереве и нажмите Del. Если кнопка привязана к команде формы, сама команда останется на закладке Команды. Если команда больше не нужна, удалите и её, но сначала убедитесь, что на неё нет ссылок в модуле формы.

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

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

Если форма принадлежит типовой конфигурации на поддержке, после правки при следующем обновлении придётся вручную объединять изменения. Это дорого и рискованно. Для долгой работы выбирайте расширение.

Способ 4. Расширение конфигурации

Расширения появились в платформе 8.3.6 и стали основным способом доработки типовых решений. Расширение не меняет основную конфигурацию, поэтому обновление типовой проходит без объединения.

Схема для скрытия кнопки:

  1. В конфигураторе откройте Конфигурация → Расширения конфигурации и создайте новое расширение (или откройте существующее).
  2. Добавьте в расширение нужный объект как заимствованный: щёлкните по нему правой кнопкой в основной конфигурации и выберите добавление в расширение.
  3. Заимствуйте нужную форму. В расширении откройте её редактор.
  4. Найдите кнопку на закладке Элементы и измените её свойство Видимость.
  5. Примените изменения: обновите конфигурацию базы данных (F7). Чтобы перенести расширение на другие базы, выгрузите его в файл .cfe.

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

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

Способ 5. Скрыть кнопку программно

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Если Не РольДоступна("ПолныеПрава") Тогда
		Элементы.КнопкаОбработка.Видимость = Ложь;
	КонецЕсли;

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

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

Те же шаги работают и для команд, которые добавлены программно. Если кнопка лежит внутри группы, обращаться к ней нужно по имени, группа тут не мешает.

Условие может быть любым: роль пользователя, значение константы, статус документа. Так, кнопку «Провести» можно скрывать у документов в определённом состоянии. Только держите условие простым: чем сложнее логика видимости, тем больше вероятность, что кнопка неожиданно пропадёт у того, кому нужна.

Для разграничения по ролям в обработчике предпочтительнее проверять право, а не роль: ПравоДоступа("Изменение", Метаданные.Документы.РасходнаяНакладная). Тогда код не сломается, когда роли переименуют или перегруппируют.

Сравнение способов

СпособКто делаетНа кого действуетРиск
Настройка формыПользовательТолько на негоМинимальный, откат в один клик
Роли и профилиАдминистраторНа группу пользователейМожно отнять нужное право
КонфигураторРазработчикНа всехСнятие с поддержки, объединение при обновлении
РасширениеРазработчикНа всехНужно следить за загрузкой и обновлением БД
КодРазработчикПо условиюСложная логика, труднее сопровождать

Типичные неудачи и как их исправить

Бывает, что кнопку скрыли, а она появилась снова. Или удалили, а форма не открывается. Вот частые причины.

  • 🔁 Кнопка вернулась после обновления. Правка была сделана в типовой форме на поддержке и затёрлась обновлением. Перенесите её в расширение.
  • 👤 У одного пользователя кнопка есть, у другого нет. Проверьте, не дело ли в пользовательской настройке формы: она у каждого своя. Сбросьте настройки в окне Изменить форму….
  • ❌ Форма не открывается после удаления кнопки. В модуле остался код, который обращается к удалённому элементу. Найдите имя кнопки в модуле формы и уберите обращение или верните элемент.
  • 👁 Кнопка скрыта, но по горячей клавише работает. Скрытие Видимостью убирает кнопку с экрана, но команда формы остаётся доступной через сочетание клавиш, если оно назначено. Если нужно закрыть действие полностью, ограничивайте право (способ 2) или блокируйте действие в коде обработчика.
  • 🗂 Кнопка пропала из подменю «Печать». Печатные команды управляются отдельными настройками состава, а не свойством кнопки.
Перед тем как убирать кнопку в рабочей базе
Выполнено: 0 / 5

Частые вопросы

Как вернуть кнопку, которую я убрал через «Изменить форму»?
Откройте Ещё → Изменить форму… и поставьте флажок у нужной команды обратно. Если форма сильно изменена, воспользуйтесь командой сброса настроек в том же окне.
Можно ли убрать кнопку у всех пользователей без программиста?
Без разработчика не получится, если кнопка принадлежит форме. Исключение — случай, когда она исчезает из-за прав: тогда администратор меняет профиль доступа. Настройка формы действует только на одного пользователя.
Скрытие кнопки защищает от выполнения действия?
Нет. Скрытая кнопка перестаёт быть видимой, но сама команда может остаться доступной другими путями. Для запрета используйте права ролей.
Как скрыть кнопку только в определённой форме, а не везде?
Правьте именно эту форму, а не общий модуль или общую подсистему. У справочника, документа и обработки у каждой формы свои элементы, и изменение в одной формы не затрагивает другие.
Почему в расширении не получается удалить кнопку?
Элементы, созданные в основной конфигурации, в расширении можно только скрыть. Полное удаление возможно лишь для элементов, добавленных самим расширением.
Надо ли после правки формы в расширении что-то перезапускать?
Нужно обновить конфигурацию базы данных. Делайте это, когда в базе нет пользователей.