Убираем лишнюю кнопку из командной панели формы 1С

· 9 мин

Содержание

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

Ниже — по порядку от самого безопасного к самому трудоёмкому. Речь о платформе 8.3 с интерфейсом «Такси» и управляемыми формами. Обычные формы старого образца устроены иначе, их здесь не разбираем.

Сначала решите: скрыть или запретить

Это две разные задачи, и путаница между ними — главный источник проблем.

  • 👁 Скрыть — убрать кнопку с экрана. Само действие остаётся доступным: через контекстное меню, другую форму, горячие клавиши , отчёт или программный вызов.
  • 🔒 Запретить — лишить пользователя права на действие. Кнопка пропадает или становится недоступной, а обойти запрет окольным путём не получится.

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

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

Способ 1. Убрать кнопку в настройках формы

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

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

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

Если команда нужна редко, не прячьте её совсем, а перенесите в Ещё. Так она не занимает место, но находится за один клик.

Что делать, если пункта Изменить форму… нет. Возможны две причины. Администратор запретил пользователям менять формы: это делается правом на сохранение пользовательских данных в роли. Или у формы нет настраиваемых элементов командной панели. В первом случае нужно обратиться к тому, кто отвечает за роли.

Способ 2. Права доступа и роли

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

Какие права влияют на кнопки

  • ➕ Право Добавление (Создание) — пропадает кнопка Создать.
  • ✏️ Право Изменение — не открыть форму на редактирование, кнопки записи недоступны.
  • 🗑 Право Пометка удаления — нельзя пометить на удаление.
  • ✅ Право Проведение — для документов: нельзя провести и отменить проведение.
  • 🖨 Права на отчёты и обработки — исчезают соответствующие команды печати и перехода.

Пользователю достаточно не иметь права, и команда, которая от него зависит, перестанет показываться или станет серой.

Видимость команды по ролям

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

Как внести изменение

  1. Откройте конфигуратор и найдите роль в ветке Общие → Роли.
  2. Раскройте нужный объект (справочник, документ) на вкладке прав.
  3. Снимите флажок права, от которого зависит кнопка.
  4. Сохраните конфигурацию и обновите конфигурацию базы данных (клавиша F7 в конфигураторе).
  5. Попросите пользователя перезапустить 1С и проверьте результат под его учётной записью.

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

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

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

Принцип такой: вы не правите форму, а «заимствуете» её в расширение и меняете там свойства элементов.

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

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

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

Что расширение не умеет

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

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

Код нужен, когда видимость зависит от условия: от роли, значения реквизита, статуса документа.

Свойство элемента формы называется Видимость. Его выставляют на сервере при создании формы:

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

    Элементы.ИмяКнопки.Видимость = Ложь;

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

ИмяКнопки — это имя элемента в дереве формы, а не заголовок на экране. Имя смотрят в конфигураторе, в свойствах кнопки.

Условная видимость

Пример: показываем кнопку только пользователям с определённой ролью.

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

    Элементы.ИмяКнопки.Видимость = РольДоступна("МояРоль");

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

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

Недоступность вместо скрытия

Иногда лучше оставить кнопку на месте, но сделать её серой. Для этого используют свойство Доступность:

Элементы.ИмяКнопки.Доступность = Ложь;

Пользователь видит, что команда существует, но сейчас недоступна. Так меньше вопросов вида «а куда пропала кнопка».

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

Особенности стандартных кнопок таблиц и списков

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

  • 📋 Стандартные команды таблицы нельзя убрать из дерева формы по одной, если включено автозаполнение панели. Отключите автозаполнение у командной панели таблицы, и тогда набор кнопок задаётся вручную.
  • 🔁 Кнопки с одинаковым действием могут стоять в нескольких местах: на панели формы и в контекстном меню таблицы. Скрыв одну, вы не уберёте другую.
  • 📑 Команды из меню Ещё управляются теми же свойствами, но искать их надо внутри группы.

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

Режим совместимости интерфейса: не для одной кнопки

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

Как найти имя кнопки и не промахнуться

Чтобы скрыть кнопку кодом или в расширении, нужно знать её имя в форме. Заголовок на экране его не показывает, и это частая причина ошибки «Поле объекта не обнаружено».

  1. Откройте форму в конфигураторе: объект конфигурации, ветка Формы, нужная форма.
  2. В дереве элементов найдите группу командной панели и раскройте её.
  3. Выделите кнопку и посмотрите свойство Имя в палитре свойств.
  4. Проверьте, чьё это действие: у кнопки есть свойство Команда. Одна и та же команда может стоять на форме дважды.

Если вы работаете только в пользовательском режиме, имя не нужно: способ с Изменить форму… оперирует заголовками кнопок.

Проверка результата и типичные промахи

Где обычно ошибаются

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

Как проверить

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

Проверка после скрытия кнопки
Выполнено: 0 / 5

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

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

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

Выбор способа за минуту

Кому и зачем нужно убрать кнопку?

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

Скрытая кнопка защищает от удаления или проведения?
Нет. Скрытие меняет только вид формы. Чтобы запретить действие, уберите право у роли.
Как вернуть кнопку, которую я убрал в настройках формы?
Снова откройте Ещё → Изменить форму… и поставьте флажок. Либо сбросьте настройки формы кнопкой возврата к стандартным.
Почему кнопка исчезла у одного пользователя, а у других на месте?
Скорее всего, у него другой набор ролей или своя настройка формы. Сравните его роли с ролями коллеги и проверьте, не менял ли он форму сам.
Расширение подключено, а кнопка видна. В чём дело?
Обычно не обновлена конфигурация базы данных или пользователь работает в старом сеансе. Перезапустите 1С и проверьте, что расширение включено в списке расширений базы.
Можно ли скрыть кнопку только в одной базе из нескольких?
Да. Расширение подключается к конкретной базе, поэтому в соседних базах кнопка останется.