|
|
|
|
|
|
|
пример LOGIC:
Задача: Вывести все элементы инфоблока, у которых совпадают пары производитель + артикул.
Вторая строка говорит о том, что дальше пойдет условие "ИЛИ" Далее в массиве перебираем все пары значений Производитель + Артикул. Обратите особое внимание, что каждый блок для "ИЛИ" - это массив, А т.к. внутри "ИЛИ" размещается еще и условие "И", то содержимое условия "И" - также вложенный массив. К стати, строку #5 можно опустить -. это значение по умолчанию. В результате получаем примерно такую структуру: .... ИЛИ{ {И{бренд,артикул}} {И{бренд,артикул}} }
"Не нравится - критикуй, критикуешь - предлагай, предлагаешь - делай, делаешь - отвечай."
Сергей Павлович Королёв |
|||||||
|
|
|
|
Отрицание в фильтре SECTION_ID не будет работать, если элементы привязаны к нескольким разделам.
Пример: Элемент привязан к разделам 1, 2, 3. Выбрать элементы с фильтром
Выбрать элементы с фильтром
|
|||||
|
|
|
|
Если у элемента установлена привязка к нескольким разделам, то функция возвращает только один из этих разделов. Для того, чтобы получить все разделы, к которым привязан элемент, нужно в цикле перебора элементов вызывать функцию
"Не нравится - критикуй, критикуешь - предлагай, предлагаешь - делай, делаешь - отвечай."
Сергей Павлович Королёв |
|
|
|
|
|
Для подсчета количества элементов, полученных в результате выборке GetList, существует специальная :
Комментарий от разработчика: некорректно работает для Oracle и MSSQL
"Не нравится - критикуй, критикуешь - предлагай, предлагаешь - делай, делаешь - отвечай."
Сергей Павлович Королёв |
|||
|
|
|
|
выборка по свойству типа "Дата/время" по точному совпадению:
"Не нравится - критикуй, критикуешь - предлагай, предлагаешь - делай, делаешь - отвечай."
Сергей Павлович Королёв |
|||||
|
|
|
|
Для ключа CATALOG_STORE_AMOUNT_<идентификатор_склада> значением является требуемое значение товара, например:
|
|||
|
|
|
|
Для фильтрации по свойству инфоблока типа "Дата/Время". Например, выбрать все активные элементы в с PROPERTY_DATE = '24.15.2015 12:10:00' , фильтр будет выглядеть следующим образом:
|
|||
|
|
|
|
Для выборки до 6 определенных элементов вместе с путями PREVIEW_PICTURE
skype: usr.bin.p
|
|||
|
|
|
|
Если Вы обратите внимание во время использования данного функционала, то заметите, что если в параметр arNavStartParams отправить массив, содержащий элемент iNumPage, равный значению больше, чем есть на самом деле страниц, то будет выведена 1-я страница. Так как этот баг живет уже очень много лет, то она уже стала фичей. Но если Вам данная фича не нужна, её можно исправить следующим костылём, который, я так понимаю, был добавлен в прошлом году:
Пример:
|
|||||
|
|
|
|
Нужно было добавить в фильтр поиск по одному из полей, думаю будет полезно.
|
|||
|
|
|
|
Не знаю было ли, частый кейс с nElementID - предыдущая и следующая новость в текущей новости:
Я инженер, который решает задачи, а не пишет на языке. Архитектура, разработка, DevOps — подбираю инструменты под цель, строю решения, которые работают в проде и масштабируются без боли. |
|||
|
|
|
|
Для фильтрации по свойству инфоблока типа "Дата/Время" я использую следующий способ:
Комментарий разработчика модуля: в случае MSSQL и Oracle не будет работать |
|||
|
|
|
|
|||
|
|
|
|
Если необходимо отфильтровать элементы по "Основному разделу", то можно воспользоваться "IBLOCK_SECTION_ID", т.к. "SECTION_ID" фильтрует по всем разделам, к которым привязан элемент.
|
|
|
|
|
|
Свойство типа "справочник" нужно фильтровать по значению UF_XML_ID элемента справочника
|
|||
|
|
|
Есть ещё один способ:
|
|||||
|
|
|
|
Для получения цены из каталога указывая в
в массиве полученном методом GetNext() необходимо использовать ключ
|
|||||
|
|
|
|
Пример фильтрации товаров по наличию на определенных складах:
|
|||
|
|
|
|
Получить cвойство тип (HTML/TEXT). Символьный код свойства HTML_CONTENT
|
|||
|
|
|
|
*CATALOG_TYPE - фильтрация по типу товара;
Может принимать значения простой: 1 товар с предложениями: 3 невалидный товар с предложениями: 6 комплект: 2 |
|
|
|
|
|
Найти по значению свойства, которое содержит нужный вам текст :
|
|||
|
|
|
CIBlockElement::GetList([], $arFilter, []); сразу вернется число записей [SIZE=13px][COLOR=#000000][/COLOR] [COLOR=#737373][/COLOR][/SIZE] |
|||
|
|
|
|
В arrFilter поле MODIFIED_BY может принимать массив с пользователями
|
||||
|
|
|
|||