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