@Fisher21

ORM Bitrix, как правильно составить запрос на получение значений множественного свойства типа «Привязка к элементам highloadblock»?

Вопрос к знатокам ORM Bitrix, есть два хайлоад инфоблока, Commission и Worker, у сущности Commission есть поле UF_MEMBERS - которое является привязкой к элементам сущности Worker и оно множественное, как правильно составить ORM запрос для GetList для получения всех значений множественного поля UF_MEMBERS, нижеприведенный код работает когда это поле не является множественным, в случае с множественным полем, созданные в runtime поля приходят пустыми.

Распечатка запроса ORM:

Array
(
    [select] => Array
        (
            [0] => *
            [REF_UF_MEMBERS] => Worker_UF_FULL_NAME.UF_FULL_NAME
        )

    [filter] => Array
        (
        )

    [group] => Array
        (
        )

    [order] => Array
        (
            [UF_NAME] => desc
        )

    [limit] => 20
    [offset] => 0
    [runtime] => Array
        (
            [Worker_UF_FULL_NAME] => Array
                (
                    [data_type] => \Worker
                    [reference] => Array
                        (
                            [=this.UF_MEMBERS] => ref.ID
                        )

                    [join_type] => left
                )

        )

)


Распечатка результата, поле REF_UF_MEMBERS пустое, хотя UF_MEMBERS содержит 3 значения:

Array
(
    [ID] => 1
    [UF_NAME] => Тест
    [UF_DATE] => Bitrix\Main\Type\Date Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2017-04-12 00:00:00
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [UF_MEMBERS] => Array
        (
            [0] => 45
            [1] => 46
            [2] => 47
        )

    [UF_COMPANY_ID] => 
    [REF_UF_MEMBERS] => 
)
  • Вопрос задан
  • 1233 просмотра
Пригласить эксперта
Ответы на вопрос 1
Проще это дело собрать на php. Собрать UF_MEMBERS в общий массив, вытащить информацию о них из Worker, подставить полученные данные в результирующую выборку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы