Задать вопрос
SpectreZ
@SpectreZ

Как получить значения свойств с одинаковым символьным кодом из нескольких инфоблоков одновременно?

Есть несколько однотипных инфоблоков, во всех есть свойства с символьным кодом PRICE_M2, тип данных - число. Получаю элементы из этих инфоблоков следующим образом:

$filter = [
	'IBLOCK_TYPE' => $this->arParams['IBLOCK_TYPE'],
	'IBLOCK_ID' => $iblocksIds //массив идентификаторов инфоблоков
];


$resultRaw = CIBlockElement::getList(
	['sort' => 'asc'],
	$filter,
	false, false,
	[
		'ID', 'IBLOCK_ID', 'NAME',
		'DETAIL_PICTURE', 'DETAIL_PAGE_URL',
		'PROPERTY_PRICE_M2'
	]
);


Возвращается пустой массив. Когда удаляю "PROPERTY_PRICE_M2" из массива запрашиваемых значений, все нужные элементы возвращаются.

Когда пишу вместо "PROPERTY_PRICE_M2" "PROPERTY_416" (идентификатор свойства в одном из инфоблоков), то все нужные элементы тоже возвращаются, но это свойство заполнено только у элементов одного инфоблока, у остальных null.

Подскажите, в чем может быть проблема получения данных по символьному коду?
  • Вопрос задан
  • 423 просмотра
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kudis
Bitrix developer
В фильтре можно проверить наличие значения у элемента инфоблока, если Вам, конечно, нужны лишь элементы с заполненным свойством.
Получить по CODE предлагаю следующей конструкцией
while ($obElement = $resultRaw->GetNextElement()) {
    $arProperties = $obElement->GetProperties(false, ['CODE' => 'PRICE_M2']);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы