Вводные данные — две ХЛ блочные сущности
(названия менять не буду — лень, оставлю как есть в проекте)
«Очереди» RECEIPTQUEUE (таблица receipt_queue) и календари RECEIPTCALENDAR (таблица receipt_calendar)
в очередях я создал поле UF_RECEIPT_CALENDAR типа «Связь с элементами ХЛ блока» множественное
ORM классы таблиц уже созданы с помощью генератора
Далее вооружившись документацией идём настраивать множественную связь
Первое и пожалуй самое главное — после создания множественной связи в БД для связи N:M автоматически создалась табличка receipt_queue_uf_receipt_calendar — Вам её нужно будет найти
структура полей у неё ID, VALUE
Второе и не менее важное — в ORM связи нужно сконфигурировать эти поля.
В итоге получились такие связи
'RECEIPT_QUEUE' => (new ManyToMany(
'RECEIPT_QUEUE',
ReceiptQueueTable::class
))->configureTableName('receipt_queue_uf_receipt_calendar')
->configureLocalPrimary('ID', 'VALUE')
->configureRemotePrimary('ID', 'ID')
'RECEIPT_CALENDAR' => (new ManyToMany(
'RECEIPT_CALENDAR',
ReceiptCalendarTable::class
))->configureTableName('receipt_queue_uf_receipt_calendar')
->configureLocalPrimary('ID', 'ID')
->configureRemotePrimary('ID', 'VALUE')
Далее всё «взлетело» — getlist-ом получаем нужные очереди, далее геттер возвращает коллекцию объектов календарей.
ИМХО всё это довольно не тривиально …
По крайней мере я после доки не смог правильно описать связь, саппорт помог — и то почти 2 недели общались по этому вопросу.