При разработке управляемых форм списков документов или справочников часто возникает задача сделать работу пользователя более удобной — вывести часто используемые отборы непосредственно на саму форму, чтобы не требовалось каждый раз открывать модальное окно через меню Еще — Настроить список. Разберем по шагам, какие свойства элементов формы за это отвечают, почему созданная группа может не отображаться в списке выбора и как решить задачу как интерактивно, так и программно.
Рассмотрим основной механизм платформы, связывающий настройки динамического списка с элементами формы. У элемента формы типа Таблица, данными для которого служит динамический список (например, Список), предусмотрено специальное свойство — Группа пользовательских настроек.
В этом свойстве указывается элемент формы типа Группа формы, внутри которого платформа автоматически генерирует элементы управления для быстрого отбора, сортировки и других пользовательских настроек.
Часто разработчики сталкиваются с ситуацией: группа на форме создана (вручную или скопирована из другой формы), но при попытке выбрать её в свойстве таблицы Группа пользовательских настроек выпадающий список оказывается пустым. Проанализируем ключевые требования платформы к такой группе:
ВидГруппыФормы.ОбычнаяГруппа). Группы с видами Страницы, Страница, КоманднаяПанель или Всплывающая платформа выбрать не позволит.Выясним причину, по которой даже после успешного указания группы отборы могут не появиться на форме. Чтобы элемент отбора динамического списка отобразился в созданной панели, необходимо настроить его параметры компоновки данных:
Обычный, отбор останется доступен только через диалог Еще — Настроить список.Обратите внимание: если пользователь в режиме 1С:Предприятие ранее уже сохранял персональные настройки формы, новые настройки из конфигуратора могут не примениться поверх них автоматически. В этом случае необходимо сбросить настройки через меню Еще — Установить стандартные настройки.
Если форма создается динамически или требуется сформировать панель отборов в коде модуля формы, прямое присвоение группы через свойство таблицы не поддерживается. Вместо этого используется специальный метод расширения таблицы управляемой формы СоздатьЭлементыФормыПользовательскихНастроек.
Посмотрим на пример программного создания группы и вывода отборов при создании формы на сервере:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// 1. Создаем обычную пустую группу на форме
ГруппаНастроек = Элементы.Добавить("ГруппаПользовательскихНастроекСписка", Тип("ГруппаФормы"));
ГруппаНастроек.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ГруппаНастроек.Отображение = ОтображениеОбычнойГруппы.Нет;
// 2. Генерируем элементы управления быстрых отборов внутри созданной группы
Элементы.Список.СоздатьЭлементыФормыПользовательскихНастроек(
ГруппаНастроек,
РежимОтображенияНастроекКомпоновкиДанных.БыстрыйДоступ
);
КонецПроцедуры
Параметр РежимОтображенияНастроекКомпоновкиДанных.БыстрыйДоступ указывает платформе сгенерировать только компактные поля быстрых отборов. Если требуется вывести все доступные вкладки настроек (включая сортировку, группировку и условное оформление), можно передать значение РежимОтображенияНастроекКомпоновкиДанных.Все.