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

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

При разработке собственных инструментов в 1С, например, обработок с динамическими списками, программисты часто сталкиваются с тем, что настроенные отборы не отображаются в верхней части формы автоматически. В типовых решениях (например, в списке справочника «Контрагенты») мы привыкли видеть удобные поля для быстрой фильтрации прямо над таблицей. Однако в новых формах, созданных «с нуля» или через расширения, эти поля могут отсутствовать, даже если в схеме компоновки данных (СКД) установлены все необходимые флаги «Включать в пользовательские настройки». Для более глубокой кастомизации таких интерфейсов можно использовать методы программного добавления полей в динамический список.

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

Анализируем причину: почему отборы не выводятся сами?

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

Для решения задачи нам потребуется выполнить два этапа: правильно настроить компоновщик настроек в схеме и связать элемент формы (таблицу) со специальной группой размещения.

Шаг 1. Подготовка настроек в схеме компоновки данных (СКД)

Прежде чем выводить что-либо в шапку, убедимся, что сами отборы подготовлены для отображения пользователю. Проанализируем настройки динамического списка:

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

После этого настройки считаются «пользовательскими», но они все еще привязаны к самому списку, а не к интерфейсу формы.

Шаг 2. Создание группы для размещения настроек на форме

Теперь перейдем к самому важному этапу — визуальному связыванию. Рассмотрим алгоритм действий в редакторе управляемой формы:

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

Шаг 3. Связывание таблицы списка с созданной группой

Теперь нам нужно указать таблице динамического списка, что свои пользовательские настройки она должна «транслировать» именно в созданную нами группу. Проанализируем свойства элемента формы типа Таблица, который отображает наш список:

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

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

Дополнительные возможности управления отображением

Выясним, как сделать интерфейс еще более удобным. У группы, в которую выводятся настройки, есть свойство «Отображение управления». Посмотрим, на что оно влияет:

Также стоит помнить о программном управлении. Если вы создаете форму динамически, вы можете установить эту связь с помощью встроенного языка 1С:


// Пример программной привязки группы настроек
Элементы.СписокКонтрагентов.ГруппаПользовательскихНастроек = Элементы.ГруппаШапкаОтборы;

Особенности работы с несколькими списками

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

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

← На главную