Как вывести панель отборов динамического списка на управляемую форму в 1С 8.3?

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

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

Свойство таблицы динамического списка для вывода настроек

Рассмотрим основной механизм платформы, связывающий настройки динамического списка с элементами формы. У элемента формы типа Таблица, данными для которого служит динамический список (например, Список), предусмотрено специальное свойство — Группа пользовательских настроек.

В этом свойстве указывается элемент формы типа Группа формы, внутри которого платформа автоматически генерирует элементы управления для быстрого отбора, сортировки и других пользовательских настроек.

Почему группа формы не появляется в списке выбора свойства?

Часто разработчики сталкиваются с ситуацией: группа на форме создана (вручную или скопирована из другой формы), но при попытке выбрать её в свойстве таблицы Группа пользовательских настроек выпадающий список оказывается пустым. Проанализируем ключевые требования платформы к такой группе:

  1. Вид группы формы: Для выбора в качестве контейнера пользовательских настроек доступна только группа с видом Обычная группа (в коде это ВидГруппыФормы.ОбычнаяГруппа). Группы с видами Страницы, Страница, КоманднаяПанель или Всплывающая платформа выбрать не позволит.
  2. Отсутствие дочерних элементов: Выбираемая группа обязательно должна быть полностью пустой. Если вы скопировали группу, в которой уже находились элементы, или добавили в неё другие реквизиты/поля, платформа исключает её из списка доступных.
  3. Положение в иерархии: Группа должна располагаться на уровне формы или внутри других структурных групп-контейнеров, но ни в коем случае не внутри самой таблицы списка.

Настройка отображения конкретных отборов списка

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

  1. Перейдем в свойства динамического списка и откроем окно настройки схемы компоновки данных (кнопка Настройка списка).
  2. На вкладке Отбор добавим необходимое поле или выберем существующее.
  3. В свойствах конкретного элемента отбора установим флаг Включать в пользовательские настройки.
  4. Для свойства Режим редактирования обязательно выберем значение Быстрый доступ. Если оставить режим Обычный, отбор останется доступен только через диалог Еще — Настроить список.

Обратите внимание: если пользователь в режиме 1С:Предприятие ранее уже сохранял персональные настройки формы, новые настройки из конфигуратора могут не примениться поверх них автоматически. В этом случае необходимо сбросить настройки через меню Еще — Установить стандартные настройки.

Программное создание панели пользовательских настроек

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

Посмотрим на пример программного создания группы и вывода отборов при создании формы на сервере:


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

    // 1. Создаем обычную пустую группу на форме
    ГруппаНастроек = Элементы.Добавить("ГруппаПользовательскихНастроекСписка", Тип("ГруппаФормы"));
    ГруппаНастроек.Вид = ВидГруппыФормы.ОбычнаяГруппа;
    ГруппаНастроек.Отображение = ОтображениеОбычнойГруппы.Нет;

    // 2. Генерируем элементы управления быстрых отборов внутри созданной группы
    Элементы.Список.СоздатьЭлементыФормыПользовательскихНастроек(
        ГруппаНастроек, 
        РежимОтображенияНастроекКомпоновкиДанных.БыстрыйДоступ
    );

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

Параметр РежимОтображенияНастроекКомпоновкиДанных.БыстрыйДоступ указывает платформе сгенерировать только компактные поля быстрых отборов. Если требуется вывести все доступные вкладки настроек (включая сортировку, группировку и условное оформление), можно передать значение РежимОтображенияНастроекКомпоновкиДанных.Все.

← На главную