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

В 1C-Bitrix для фильтрации разделов по свойствам товаров, находящихся в этих разделах, можно использовать следующий алгоритм:

1. Получите список всех разделов, которые нужно отфильтровать. Для этого можно воспользоваться методом CIBlockSection::GetList() и передать нужные параметры фильтрации, например, IBLOCK_ID для указания инфоблока, и SECTION_ID для указания родительского раздела.

2. Для каждого раздела из полученного списка, получите список товаров, находящихся в этом разделе. Для этого можно использовать метод CIBlockElement::GetList() и передать параметры фильтрации, например, IBLOCK_ID для указания инфоблока, SECTION_ID для указания раздела, и т.д.

3. Для каждого товара из полученного списка, проверьте значение нужного свойства. Для этого можно использовать метод CIBlockElement::GetProperty() и передать параметры, такие как IBLOCK_ID, ID товара и код свойства.

4. Если значение свойства соответствует заданным условиям, то добавьте соответствующий раздел в новый список разделов, удовлетворяющих условиям фильтрации.

5. По завершении цикла обработки товаров, у вас будет получен список разделов, отфильтрованных по свойству товара.

Пример кода, реализующего эту задачу, может выглядеть следующим образом:

$filteredSections = [];

$sectionList = CIBlockSection::GetList(
    [],
    ["IBLOCK_ID" => $iblockId, "SECTION_ID" => $parentSectionId]
);

while ($section = $sectionList->GetNext()) {
    $productList = CIBlockElement::GetList(
        [],
        ["IBLOCK_ID" => $iblockId, "SECTION_ID" => $section["ID"]]
    );

    while ($product = $productList->GetNext()) {
        $propertyValue = CIBlockElement::GetProperty(
            $iblockId,
            $product["ID"],
            [],
            ["CODE" => $propertyCode]
        );

        if ($propertyValue = $propertyFilterValue) {
            $filteredSections[] = $section;
            break;
        }
    }
}

Не забывайте заменить $iblockId, $parentSectionId, $propertyCode и $propertyFilterValue на соответствующие значения из вашей системы.

В итоге, в переменной $filteredSections будут содержаться только те разделы, у которых находятся товары с нужным свойством, удовлетворяющим условиям фильтрации.