Какими полями заполняются ДоступныеПоляВыбора в КомпоновщикеНастроекКомпоновкиДанных при инициализации из СхемыКомпоновкиДанных
Данил, привет!
Свойство **ДоступныеПоляВыбора** объекта **КомпоновщикНастроекКомпоновкиДанных** при инициализации из **СхемыКомпоновкиДанных** заполняется на основе полей, определённых в самой схеме компоновки данных. Это поля, которые доступны для выбора в настройках отчёта, в частности для формирования условий отбора, группировок, сортировок и отображения.
Конкретно, в коллекцию **ДоступныеПоляВыбора** попадают объекты типа **ДоступноеПолеКомпоновкиДанных**, которые содержат следующие основные поля (свойства):
- **Имя** — имя поля, как оно задано в схеме компоновки данных (например, имя поля из набора данных или вычисляемого поля).
- **Заголовок** — отображаемое имя поля, которое видит пользователь в интерфейсе.
- **ТипЗначения** — тип данных поля (число, строка, дата и т.п.).
- **ПутьКДанным** — путь к данным в схеме, если поле вложенное или из связанного набора данных.
- **Роль** — роль поля (например, период, счет, дополнительный и т.п.), если она задана.
- **ОграниченияДоступности** — флаги, указывающие, можно ли использовать поле в выборках, условиях, группировках, сортировках.
- **Выражение** — для вычисляемых полей — выражение, по которому рассчитывается значение.
- **ВыражениеПредставления** — выражение для отображения значения поля.
- **ВыражениеУпорядочивания** — выражение для сортировки по этому полю.
- **Оформление** — параметры оформления поля в отчёте.
Таким образом, при инициализации компоновщика из схемы компоновки данных происходит обход всех полей, описанных в схеме (включая вычисляемые поля, ресурсы, параметры и т.п.), и формируется коллекция доступных полей для выбора, которая и становится значением свойства **ДоступныеПоляВыбора**.
Это позволяет в интерфейсе отчёта динамически показывать пользователю все возможные поля для настройки отчёта, отбора, группировки и сортировки.
Рекомендую посмотреть здесь:
https://infostart.ru/public/1458589/
https://helpf.pro/faq/view/747.html
Если нужно, могу помочь с примером кода инициализации и обхода этих полей.