//Есть очень большой каталог, несколько тысяч
//нужно сделать выбор по двум словам (например, "Citroen" и "Berlingo"), которые могут содержаться в одном из пользовательских свойств элементов.
//Как сделать через маску?
//1-ый вариант маски:
$arFilter['PROPERTY_a_use'] = "%Citroen%Berlingo%";
//2-ой вариант маски:
$arFilter['?PROPERTY_a_use'] = "Citroen && Berlingo";
//Запрос
$getListFirst = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
//По производительности 2-ой вариант хуже, так как 1-ый вариант - это обычный LIKE запрос к БД, в то время как 2-ой вариант делает переработку фильтра запроса
//С другой стороны, если в 1-ом варианте поменять местами слова, то ничего не найдется, а во 2-ом - должно сработать.
$GLOBALS['arrFilter'] = array("PROPERTY_SALELEADER_VALUE" => "Да");
для фильтрации по имени элемента
$GLOBALS['arrFilter'] = array("NAME"=>"A%");
для фильтрации по свойств
$GLOBALS['arrFilter'] = array("PROPERTY_КОД_СВОЙСТВА" => "A%");
для фильтрации по свойству типа "список"
$GLOBALS['arrFilter'] = array("PROPERTY_КОД_СВОЙСТВА_VALUE"=>"А%");
выбрать все элементы у которых свойство "STOP_SHARE" активно
$GLOBALS['arrFilter'] = array("!STOP_SHARE" => false);
выбрать все элементы у которых свойство "PREVIEW_PICTURE" не пустое
$GLOBALS['arrFilter'] = array('ACTIVE' => 'Y', '!PREVIEW_PICTURE'=>false);
выбрать один элемент у которого самая актуальная дата на сегодняшний день
$GLOBALS['arrFilter'] = array('ACTIVE' => 'Y', 'PROPERTY_ISACTION' => '1', '<=PROPERTY_DATEFROM' => date('Y-m-d'));
выбрать все актуальные элементы у которых не просроченная дата(свойство) на сегодняшний день и задано определённое свойство
$GLOBALS['arrFilter'] = array("PROPERTY_КОД_СВОЙСТВА_VALUE" => false, 'ACTIVE' => 'Y', '<=PROPERTY_КОД_СВОЙСТВА_VALUE!' => date('Y-m-d'));