При разработке интерфейсов на платформе 1С:Предприятие 8.3 часто возникает ситуация, когда командная панель формы переполняется, и часть кнопок автоматически или принудительно переносится в подменю «Ещё». Для разработчика важно понимать, что кнопка «Ещё» не является самостоятельным объектом-контейнером, к которому можно обратиться напрямую по имени. Это виртуальный элемент, отображающий те команды, которые не поместились в основную область или имеют специфические настройки. Разберем подробно, как добраться до содержимого этого меню и как им управлять.
Если ваша задача заключается в том, чтобы скрыть конкретную кнопку (например, кнопку фильтра или стандартную команду), которая в данный момент находится внутри «Ещё», вам не нужно искать само подменю. Достаточно обратиться к конкретному элементу коллекции Элементы формы. Проанализируем, как это сделать правильно, чтобы избежать ошибок при выполнении кода.
Рассмотрим пример кода, который позволяет безопасно изменить видимость кнопки:
// Безопасный поиск элемента на форме
ИмяЭлемента = "КоманднаяПанельФормыУстановитьСтандартныйПериод";
ЦелевойЭлемент = ЭтаФорма.Элементы.Найти(ИмяЭлемента);
Если ЦелевойЭлемент <> Неопределено Тогда
ЦелевойЭлемент.Видимость = Ложь; // Кнопка исчезнет из меню "Ещё"
КонецЕсли;
Использование метода Найти() является более предпочтительным, так как оно предотвращает аварийное завершение работы программы в случае, если элемент был удален из формы в конфигураторе или его имя изменилось. Помните, что при установке Видимость = Ложь кнопка пропадает не только из «Ещё», но и из контекстного меню, связанного с этой командной панелью.
Часто программисту нужно не просто скрыть кнопку, а принудительно вынести её из подменю «Ещё» на основную панель или, наоборот, спрятать её туда. Для этого в платформе предусмотрено системное свойство ПоложениеВКоманднойПанели. Выясним, какие значения оно может принимать и как они влияют на интерфейс:
Проанализируем ситуацию, когда нам нужно программно переместить кнопку в подменю «Ещё» во время работы приложения. Для этого мы можем изменить соответствующее свойство элемента:
// Принудительное перемещение кнопки в дополнительное подменю
ЭлементКнопка = Элементы.ОбновитьДанные;
ЭлементКнопка.ПоложениеВКоманднойПанели = ПоложениеВКоманднойПанелиЭлементаКоманднойПанели.ВДополнительномПодменю;
Многие пункты, которые пользователь видит в меню «Ещё» (такие как «Изменить форму», «Установить пометку удаления», «Справка»), создаются платформой автоматически. Если вам нужно убрать одну из таких команд, загляните в настройки самой формы в Конфигураторе. Разберем шаги по настройке состава команд:
Важно помнить: если у командной панели (или у самой формы) снят флаг Автозаполнение, то стандартные кнопки и кнопка «Ещё» могут вообще не появиться, пока вы не добавите их вручную или не создадите собственные команды.
Не забывайте, что пользователь может самостоятельно управлять тем, что находится в «Ещё», через стандартную команду «Изменить форму». В этом диалоговом окне элементы можно перетаскивать между группами. Если вы, как разработчик, хотите запретить пользователю менять состав или положение определенных кнопок, обратите внимание на свойство ИзменяетСоставФормы. Установка этого свойства в значение Ложь ограничит возможности ручной настройки для данного элемента, сохраняя жестко заданную вами структуру интерфейса.
Для эффективной работы, особенно в условиях отсутствия мыши или при использовании сенсорных экранов, полезно знать горячие клавиши. Активировать командную панель и получить быстрый доступ к содержимому «Ещё» можно с помощью клавиши F10. Это позволяет пользователю перемещаться по командам с помощью стрелок клавиатуры, что значительно ускоряет работу в профессиональных учетных решениях.
Таким образом, для того чтобы «добраться» до кнопки «Ещё», нужно понимать, что вы работаете с обычной коллекцией элементов формы, где положение каждой кнопки определяется её свойствами и настройками командного интерфейса. Используйте программное управление свойством Видимость для динамической настройки и свойства метаданных для проектирования статичного интерфейса.