В 1C-Bitrix есть возможность найти элементы с фильтром по общему свойству, применяя поиск по всем инфоблокам. Для этого можно воспользоваться функцией CIBlockElement::GetList.
Для начала определим, какие инфоблоки нам нужно обработать. Для этого можно использовать метод CIBlock::GetList или CIBlock::GetByID, чтобы получить список или информацию об одном конкретном инфоблоке.
Затем используем метод CIBlock::GetProperties, чтобы получить список свойств, присущих каждому из найденных инфоблоков. Для этого метода передадим ID каждого инфоблока из списка, полученного на предыдущем шаге.
Далее, используем метод CIBlockElement::GetList, чтобы получить список элементов, отфильтрованный по требуемому свойству. Для этого создадим массив $arFilter, в котором укажем идентификаторы инфоблоков в ключе IBLOCK_ID и значение искомого свойства в ключе PROPERTY_КОД_СВОЙСТВА.
Также можно добавить дополнительные условия для фильтрации, например, активные элементы или элементы с определенной датой. Для этого в массиве $arFilter можно использовать соответствующие ключи.
Для получения результатов необходимо создать объект CIBlockElement и вызвать его метод GetList, передав ему массив $arFilter и необходимые параметры сортировки и выборки.
Пример кода:
$arBlocks = array(); // Массив для хранения информации об инфоблоках // Получаем список инфоблоков $res = CIBlock::GetList(array(), array()); while ($ar = $res->Fetch()) { $arBlocks[$ar["ID"]] = $ar; // Добавляем информацию о каждом инфоблоке в массив } foreach ($arBlocks as $arBlock) { $arProperties = array(); // Массив для хранения информации о свойствах инфоблока // Получаем список свойств инфоблока $res = CIBlock::GetProperties($arBlock["ID"], array()); while ($ar = $res->Fetch()) { $arProperties[$ar["CODE"]] = $ar; // Добавляем информацию о каждом свойстве в массив } // Фильтр по нужному свойству $arFilter = array( "IBLOCK_ID" => $arBlock["ID"], "PROPERTY_КОД_СВОЙСТВА" => "ЗНАЧЕНИЕ_СВОЙСТВА", ); // Получаем список элементов, отфильтрованных по свойству $res = CIBlockElement::GetList(array(), $arFilter, false, false, array()); while ($ar = $res->Fetch()) { // Делаем что-то с каждым найденным элементом } }
В примере выше мы получаем список всех инфоблоков и их свойств, затем ищем элементы с нужным свойством и обрабатываем результаты. Обратите внимание, что вам нужно заменить "КОД_СВОЙСТВА" и "ЗНАЧЕНИЕ_СВОЙСТВА" на соответствующие значения для вашего случая.
Надеюсь, это поможет вам решить вашу задачу поиска элементов с фильтром по общему свойству по всем инфоблокам в 1C-Bitrix.