Пытаюсь получить элементы из двух инфоблоков с сортировкой по дате создания.
Свойства хранятся в отдельной таблице
тут
Как фильтровать в ORM bitrix пользовательские свойства? нашел примерное решение, она работает если делать выборку по одному ИБ, если из 2 делать, то не работает
$iblockId = 32;
$entityPropsSingle = \Bitrix\Main\Entity\Base::compileEntity(
sprintf('PROPS_SINGLE_%s', $iblockId),
[
'IBLOCK_ELEMENT_ID' => ['data_type' => 'integer'],
'PROPERTY_1087' => ['data_type' => 'integer'],
],
[
'table_name' => sprintf('b_iblock_element_prop_s%s', $iblockId),
]
);
$iblockId = 33;
$entityPropsSingle1 = \Bitrix\Main\Entity\Base::compileEntity(
sprintf('PROPS_SINGLE_%s', $iblockId),
[
'IBLOCK_ELEMENT_ID' => ['data_type' => 'integer'],
'PROPERTY_1096' => ['data_type' => 'integer'],
],
[
'table_name' => sprintf('b_iblock_element_prop_s%s', $iblockId),
]
);
$params = [
'order' => array('DATE_CREATE' => 'DESC'),
'select' => array('ID', 'NAME', 'IBLOCK_ID', 'DATE_CREATE'),
'filter' => array('IBLOCK_ID' => $this->arParams['IBLOCK_IDS'],
[
'LOGIC' => 'OR',
['PROPS_SINGLE_32.PROPERTY_1087' => 1011,
'PROPS_SINGLE_33.PROPERTY_1096' => 1015],
]),
'runtime' => array(
'PROPS_SINGLE_32' => [
'data_type' => $entityPropsSingle->getDataClass(),
'reference' => [
'=this.ID' => 'ref.IBLOCK_ELEMENT_ID'
],
'join_type' => 'inner'
],
'PROPS_SINGLE_33' => [
'data_type' => $entityPropsSingle1->getDataClass(),
'reference' => [
'=this.ID' => 'ref.IBLOCK_ELEMENT_ID'
],
'join_type' => 'inner'
],
),
'cache' => array(
'ttl' => 3600,
'cache_joins' => true
),
];
$params['limit'] = $limit;
$params['offset'] = $offset;
$itemsRequest = \Bitrix\Iblock\ElementTable::getList($params);
код такой, но, выборка пустая. Как делать правильно в ElementTable::getList фильтр по свойствам и из нескольких ИБ