@photosho

Можно ли найти элементы с фильтром по общему свойству поиском по всем инфоблокам?

Свойства инфоблоков хранятся в разных таблицах, есть свойство, дублирующееся в некоторых инфоблоках. Нужно найти все элементы во всех инфоблоках с определенным значением этого свойства:

CIBlockElement::getList(
  [],
  ['PROPERTY_PROPNAME' => $propValue]
);


Но такой код ищет элементы только в одном инфоблоке. Также, перечисление "IBLOCK_ID" в фильтре (массив) работать не хочет. В документации сказано, что такой функционал (с перечислением ID) не работает для инфоблоков 2.0.

Только вручную искать по всем инфоблокам?
  • Вопрос задан
  • 27 просмотров
Пригласить эксперта
Ответы на вопрос 1
@tgarl
я бы сделал так: посмотрел в таблицу b_iblock_property, отфильтровал бы по нужному по коду нужного свойства получив id инфоблоков в которых есть свойство с таким кодом, а дальше уже можно в гетлист фильтр OR
примерно так
array(
	"LOGIC"=>"OR",
	array ("IBLOCK_ID" => 1, 'PROPERTY_PROPNAME' => $propValue),
	array ("IBLOCK_ID" => 11, 'PROPERTY_PROPNAME' => $propValue),
       array ("IBLOCK_ID" => 99, 'PROPERTY_PROPNAME' => $propValue),
	)

Можно все программно, но не думаю что это действительно нужно, подозреваю что это у вас разовая акция, а значит такое решение вполне подойдет
Ответ написан
Ваш ответ на вопрос

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

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