Ответы пользователя по тегу 1С-Битрикс
  • Как вывести в фильтре значения множественного поля?

    @box0 Автор вопроса
    и швец, и жнец, и на дуде игрец
    Алексей Емельяно, благодарю за подсказку насчет фасетного поиска.

    Пошла самым простым путем: т.к. такой фильтр нужен только в одном разделе, то я скопировала компонент "search.filter" и в файле "result_modifier.php" добавила код для исключения из массива результата тех значений заданного свойства, которые не используются в элементах информационного блока.
    Код инфоблока = 4, код исходного свойства = 252. Также используется фильтр по активным записям (ACTIVE) и по датам активности (ACTIVE_DATE). Для выборки всех различных значений свойства с кодом 252 (PROPERTY_252) использовала группировку (третий параметр-массив функции GetList).

    $IDs = [];
    $rs = CIBlockElement::GetList(array(), array("IBLOCK_ID" => 4, "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "!PROPERTY_252" => false), array("PROPERTY_252"));
    while($ar = $rs->GetNext()) {
    $IDs[] = $ar['PROPERTY_252_VALUE'];
    }

    Затем сделала проверку, в которой с помощью регулярных выражений из массива $arResult['ITEMS']['PROPERTY_252']['INPUT'] удалила все значения, которых нет в полученном массиве $IDs.
    Profit!
    Ответ написан
    Комментировать