• Как задать фильтр со сложной логикой по CcrmCompany в Bitrix?

    Daniss74
    @Daniss74
    Занимаюсь Битрикс24
    цитата с сайта
    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 сравниваемых массива. Как видите, тут есть практически все условия о которых мы говорили выше (меньше, равно, больше или равно, не равно).
    Ответ написан
    Комментировать