runtime запросить, например, \Bitrix\Crm\Timeline\Entity\TimelineTable с определенным условием отбора и соединить с основной выборкой.
Не соображу никак.
P.S. Важно. Это должно быть в одной выборке, т.к. необходимо сортировать по результатам данного объединения.
P.P.S. И еще одно. Возможно ли в таких конструкциях использовать выражения типа CASE WHEN для выборки поля?
насколько я помню там бинды через таблицу отдельную
вот как получить например некоторые элементы таймлайна для определённых сделок $hBinds = \Bitrix\Crm\Timeline\Entity\TimelineBindingTable::getList([ 'select' => ['OWNER_ID', 'ENTITY_ID', 'TYPE_ID' => 'TIMELINE.TYPE_ID'], 'filter' => [ 'ENTITY_ID' => $arIds, 'ENTITY_TYPE_ID' => \CCrmOwnerType::Deal, 'TIMELINE.TYPE_ID' => [ \Bitrix\Crm\Timeline\TimelineType::ACTIVITY, \Bitrix\Crm\Timeline\TimelineType::COMMENT ], ], 'runtime' => [ new \Bitrix\Main\ORM\Fields\Relations\Reference( 'TIMELINE', \Bitrix\Crm\Timeline\Entity\TimelineTable::class, \Bitrix\Main\ORM\Query\Join::on('this.OWNER_ID', 'ref.ID') ), ], ]);
Не понял. Мне нужно создать запрос на выборку с условием (фильтром), который через left join соединится с основным. Что-то типа: select a.*, b.* from a left join ( select c.* from c where(c.date < now()) limit 1 ) b on b.element_id = a.id
элементы таймлайна прикрепляются к сущностям через промежуточную таблицу, ибо там связь многие ко многим
Вопрос-то был в другом. Как в единый запрос объединить выборку элементов crm (сделок) и записей из timeline к ним.
надо пробовать, я с наскоку не скажу
В целом, битва с Б24 окончена. Результат получен, монитор и клавиатура выжили. "Хочешь похудеть - спроси меня как..." (с)
Обсуждают сегодня