Как программно и интерактивно управлять кнопками в подменю «Ещё» на форме 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке интерфейсов на платформе 1С:Предприятие 8.3 часто возникает ситуация, когда командная панель формы переполняется, и часть кнопок автоматически или принудительно переносится в подменю «Ещё». Для разработчика важно понимать, что кнопка «Ещё» не является самостоятельным объектом-контейнером, к которому можно обратиться напрямую по имени. Это виртуальный элемент, отображающий те команды, которые не поместились в основную область или имеют специфические настройки. Разберем подробно, как добраться до содержимого этого меню и как им управлять.

Управление видимостью элементов программным способом

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

Рассмотрим пример кода, который позволяет безопасно изменить видимость кнопки:


// Безопасный поиск элемента на форме
ИмяЭлемента = "КоманднаяПанельФормыУстановитьСтандартныйПериод";
ЦелевойЭлемент = ЭтаФорма.Элементы.Найти(ИмяЭлемента);

Если ЦелевойЭлемент <> Неопределено Тогда
    ЦелевойЭлемент.Видимость = Ложь; // Кнопка исчезнет из меню "Ещё"
КонецЕсли;

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

Настройка расположения кнопок через свойство «Положение в командной панели»

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

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

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


// Принудительное перемещение кнопки в дополнительное подменю
ЭлементКнопка = Элементы.ОбновитьДанные;
ЭлементКнопка.ПоложениеВКоманднойПанели = ПоложениеВКоманднойПанелиЭлементаКоманднойПанели.ВДополнительномПодменю;

Работа со стандартными командами формы

Многие пункты, которые пользователь видит в меню «Ещё» (такие как «Изменить форму», «Установить пометку удаления», «Справка»), создаются платформой автоматически. Если вам нужно убрать одну из таких команд, загляните в настройки самой формы в Конфигураторе. Разберем шаги по настройке состава команд:

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

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

Особенности пользовательской настройки «Изменить форму»

Не забывайте, что пользователь может самостоятельно управлять тем, что находится в «Ещё», через стандартную команду «Изменить форму». В этом диалоговом окне элементы можно перетаскивать между группами. Если вы, как разработчик, хотите запретить пользователю менять состав или положение определенных кнопок, обратите внимание на свойство ИзменяетСоставФормы. Установка этого свойства в значение Ложь ограничит возможности ручной настройки для данного элемента, сохраняя жестко заданную вами структуру интерфейса.

Доступ к командам без использования мыши

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

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

← На главную