В компонентах bitrix:catalog.section и bitrix:news.list есть параметр FILTER_NAME
, который указывает имя глобальной переменной (массива), содержащей условия фильтрации элементов или новостей.

1. Общая концепция фильтра в 1С-Битрикс
В компонентах bitrix:catalog.section и bitrix:news.list есть параметр FILTER_NAME
. Он указывает имя переменной (массива) в глобальном пространстве, которую компонент будет использовать для фильтрации элементов или новостей. Обычно эта переменная задаётся в виде:
<?php
$GLOBALS[$FILTER_NAME] = [];
?>
Затем внутри массива указываются нужные условия фильтрации, соответствующие полям информационного блока, свойствам элементов, а также параметрам торгового каталога (например, цена).
2. Как это работает
-
В параметрах компонента задаём:
"FILTER_NAME" => "arrFilter",
где
arrFilter
— это имя переменной, в которой будет храниться массив с условиями фильтрации. -
В коде (который выводит компонент) определяем саму переменную:
<?php global $arrFilter; $arrFilter = []; // Здесь будет логика наших условий ?>
-
Внутри массива
$arrFilter
указываем параметры фильтрации. Варианты полей, по которым можно фильтровать, рассмотрим далее.
3. По каким полям можно фильтровать
3.1. Стандартные поля элементов инфоблока
Наиболее часто используемые стандартные поля:
- ID — идентификатор элемента.
- NAME — название элемента.
- ACTIVE — активность элемента (
"Y"
/"N"
). - SECTION_ID — идентификатор раздела.
- SECTION_CODE — символьный код раздела.
- IBLOCK_ID — идентификатор инфоблока.
- DATE_ACTIVE_FROM — дата начала активности.
- DATE_ACTIVE_TO — дата окончания активности.
- TIMESTAMP_X — время изменения.
- и т.д.
Пример фильтра по идентификатору элемента и активности:
<?php
global $arrFilter;
$arrFilter = [
"ID" => 123, // конкретный элемент
"ACTIVE" => "Y", // активные элементы
];
?>
Результат: компонент покажет только элемент с ID = 123, при условии, что он активен.
3.2. Свойства элементов (PROPERTY_)
Для фильтрации по свойствам инфоблока используются ключи вида PROPERTY_КОД_СВОЙСТВА
:
- PROPERTY_COLOR — фильтр по цвету.
- PROPERTY_SIZE — фильтр по размеру.
- PROPERTY_BRAND — фильтр по бренду.
Допустим, нам нужно отфильтровать элементы, у которых свойство COLOR
= "Красный"
и SIZE
= "42"
. Тогда фильтр будет выглядеть так:
<?php
global $arrFilter;
$arrFilter = [
"PROPERTY_COLOR" => "Красный",
"PROPERTY_SIZE" => "42",
];
?>
Результат: компонент покажет все элементы, соответствующие выбранному цвету и размеру.
Если требуется выбрать несколько значений свойства, можно передать массив:
$arrFilter = [
"PROPERTY_COLOR" => ["Красный", "Зелёный"]
];
Результат: в выборку попадут элементы, у которых цвет либо Красный, либо Зелёный.
Сложные условия
Можно задавать логику с операторами (больше, меньше, не равно и т.п.). Для этого используется дополнительный синтаксис ключей:
!=PROPERTY_COLOR
— свойство не равно значению.>=PROPERTY_SIZE
— свойство больше либо равно значению.- и т.д.
Например:
$arrFilter = [
">=PROPERTY_PRICE" => 1000, // свойство PRICE больше или равно 1000
"<=PROPERTY_PRICE" => 5000 // при этом меньше или равно 5000
];
Результат: компонент покажет товары, у которых свойство "PRICE"
попадает в диапазон от 1000 до 5000.
3.3. Параметры торгового каталога
Если у вас установлен модуль Торговый каталог и элементы инфоблока являются товарами с ценами, то можно фильтровать по ценам и остаткам на складах. Основные возможности:
-
Фильтр по ценам
Например, если у вас есть тип цены с ID = 1 (часто это базовая цена,
CATALOG_PRICE_1
), можно выбрать товары в определённом ценовом диапазоне:$arrFilter = [ ">=CATALOG_PRICE_1" => 1000, "<=CATALOG_PRICE_1" => 3000 ];
Результат: выводятся товары, у которых базовая цена от 1000 до 3000.
-
Фильтр по наличию (остаткам)
Для фильтра по остатку используется поле
CATALOG_QUANTITY
:$arrFilter = [ ">CATALOG_QUANTITY" => 0 ];
Результат: отображаются только товары с положительным остатком (больше 0).
-
Фильтр по типам цен
Если в магазине несколько типов цен, например, оптовая цена с ID = 2, то можно фильтровать по оптовой цене:
$arrFilter = [ ">=CATALOG_PRICE_2" => 200, "<=CATALOG_PRICE_2" => 1500 ];
4. Примеры использования
Ниже несколько типовых примеров, которые помогают понять комбинацию условий.
4.1. Фильтр по нескольким условиям
<?php
global $arrFilter;
$arrFilter = [
"ACTIVE" => "Y", // элементы должны быть активны
"SECTION_ID" => 10, // из раздела с ID=10
">=CATALOG_PRICE_1" => 1000, // базовая цена от 1000
"<=CATALOG_PRICE_1" => 5000, // до 5000
"PROPERTY_COLOR" => "Синий", // свойство цвет - синий
];
?>
Результат: в компонент попадут только синие товары из раздела 10, у которых базовая цена в диапазоне 1000–5000 рублей и статус активен.
4.2. Фильтрация по нескольким свойствам (сложные условия)
Предположим, нужно вывести все товары, у которых цена от 500 до 3000, либо указанное свойство SALE
равно Y
. Обычно при передаче в $arrFilter
все условия работают как И (логическое И). Если нужен сложный сценарий (с логикой ИЛИ), применяется расширенный функционал Bitrix — CBitrixComponent::applyFilter
или отдельные инструменты, где фильтр формируется вручную с использованием логических групп. Однако простой пример с И-логикой:
$arrFilter = [
"LOGIC" => "OR",
[
">=CATALOG_PRICE_1" => 500,
"<=CATALOG_PRICE_1" => 3000,
],
[
"PROPERTY_SALE" => "Y",
],
];
Обратите внимание, что при использовании "LOGIC" => "OR"
мы можем группировать условия таким образом, чтобы одно из них было выполнено. В результате попадут либо товары с ценой 500–3000, либо товары, у которых свойство SALE
= Y
.
5. Резюме
- Параметр FILTER_NAME в компонентах bitrix:catalog.section и bitrix:news.list указывает на глобальную переменную, в которой хранится массив условий.
- Фильтрация может производиться как по стандартным полям инфоблока (
ID
,NAME
,SECTION_ID
и т.д.), так и по свойствам (PROPERTY_*
). - Если установлен модуль Торговый каталог, доступны дополнительные возможности: фильтрация по ценам (
CATALOG_PRICE_*
), остаткам (CATALOG_QUANTITY
) и типам цен. - Фильтр может содержать сложные условия с логикой И/ИЛИ, используя группы условий (
LOGIC => "AND"
/"OR"
). - Результат фильтрации — это набор элементов, соответствующих заданным критериям.
Данный механизм даёт гибкие возможности управления выборкой элементов и используется практически во всех проектах на Битрикс, где есть каталоги, новости и любой другой контент, хранящийся в инфоблоках.