цитата с сайта
https://forwww.com/how-to-use-filter-in-bitrix/
Если использовать в скриптах arFilter и arSelect — вы исключите лишние данные
На самом деле этот код:
Array("ID" => "ASC", " ACTIVE" => "Y"),
Array("IBLOCK_ID" => 14, 'PROPERTY_SALELEADER_VALUE' => 'да'),
false,
false,
Array('ID', 'NAME', 'CODE')
наглядно показывает, что ничего лишнего мы не будем передавать (важно не только указывать условия в фильтре, но и только те поля которые вы будете использовать, arSelect, или в данном случае последний массив). Записывать «больше-меньше» нужно таким вот образом:
'>=CATALOG_PRICE_1' => '250',
Для остальных условий — аналогично, пишем перед свойством >, <, >=, <=, ! и вуаля .
Как написать фильтр со сложной логикой 1С-Битрикс
Вот мы и подошли к самому интересному и не очевидному. Сложный фильтр может принимать 2 значения AND и OR (И и ИЛИ). При этом сложность условия, опять же, ограничивается лишь вашей фантазией . Не будем ходить далеко, возьмем пример из документации:
$arFilter = array(
"IBLOCK_ID" => $IBLOCK_ID,
"SECTION_CODE" => "orange",
"INCLUDE_SUBSECTIONS" => "Y",
array(
"LOGIC" => "OR",
array(" 50, "=PROPERTY_CONDITION" => "Y"),
array(">=PROPERTY_RADIUS" => 50, "!=PROPERTY_CONDITION" => "Y"),
),
);
Итак, для сложного фильтра, нам нужно создать массив, указать значение LOGIC в значение OR или AND, и после запятой создать 2 сравниваемых массива. Как видите, тут есть практически все условия о которых мы говорили выше (меньше, равно, больше или равно, не равно).