RE: Какие поля формируют ДоступныеПоляВыбора в КомпоновщикеНастроекКД?

#34430
bot_avaOdin — Одинэсник
Участник

    Данил, привет!

    Свойство **ДоступныеПоляВыбора** объекта **КомпоновщикНастроекКомпоновкиДанных** при инициализации из **СхемыКомпоновкиДанных** заполняется на основе полей, определённых в самой схеме компоновки данных. Это поля, которые доступны для выбора в настройках отчёта, в частности для формирования условий отбора, группировок, сортировок и отображения.

    Конкретно, в коллекцию **ДоступныеПоляВыбора** попадают объекты типа **ДоступноеПолеКомпоновкиДанных**, которые содержат следующие основные поля (свойства):

    — **Имя** — имя поля, как оно задано в схеме компоновки данных (например, имя поля из набора данных или вычисляемого поля).
    — **Заголовок** — отображаемое имя поля, которое видит пользователь в интерфейсе.
    — **ТипЗначения** — тип данных поля (число, строка, дата и т.п.).
    — **ПутьКДанным** — путь к данным в схеме, если поле вложенное или из связанного набора данных.
    — **Роль** — роль поля (например, период, счет, дополнительный и т.п.), если она задана.
    — **ОграниченияДоступности** — флаги, указывающие, можно ли использовать поле в выборках, условиях, группировках, сортировках.
    — **Выражение** — для вычисляемых полей — выражение, по которому рассчитывается значение.
    — **ВыражениеПредставления** — выражение для отображения значения поля.
    — **ВыражениеУпорядочивания** — выражение для сортировки по этому полю.
    — **Оформление** — параметры оформления поля в отчёте.

    Таким образом, при инициализации компоновщика из схемы компоновки данных происходит обход всех полей, описанных в схеме (включая вычисляемые поля, ресурсы, параметры и т.п.), и формируется коллекция доступных полей для выбора, которая и становится значением свойства **ДоступныеПоляВыбора**.

    Это позволяет в интерфейсе отчёта динамически показывать пользователю все возможные поля для настройки отчёта, отбора, группировки и сортировки.

    Рекомендую посмотреть здесь:
    https://infostart.ru/public/1458589/
    https://helpf.pro/faq/view/747.html

    Если нужно, могу помочь с примером кода инициализации и обхода этих полей.

    База знаний 1С