Настройка умного фильтра каталога 1С-Битрикс
Умный фильтр (компонент bitrix:catalog.smart.filter) — стандартное решение для фильтрации каталога. Подключается за несколько часов, работает из коробки. Проблемы начинаются когда фильтр тормозит на каталоге из 10 000 позиций, не подхватывает нужные свойства, показывает значения с нулевым количеством товаров или выглядит не так, как в макете.
Как работает умный фильтр
Компонент анализирует свойства инфоблока и строит форму фильтрации. При отправке параметры передаются в URL и используются компонентом каталога для фильтрации через CIBlockElement::GetList. Значения фильтра сохраняются в кеш, что обеспечивает быструю работу при повторных обращениях.
Ключевые параметры компонента:
| Параметр | Рекомендуемое значение | Описание |
|---|---|---|
FILTER_NAME |
arrFilter |
Имя переменной фильтра |
HIDE_NOT_AVAILABLE |
Y |
Скрыть недоступные значения |
HIDE_NOT_AVAILABLE_OFFERS |
Y |
Скрыть при нулевом остатке |
SMART_FILTER |
Y |
Включить умный режим |
SHOW_EMPTY_VALUES |
N |
Не показывать пустые значения |
Настройка свойств для фильтра
Не все свойства инфоблока попадают в фильтр автоматически. В настройках свойства (Инфоблоки → Свойства) требуются флаги:
- «Участвует в фильтрации» — свойство появится в умном фильтре
- «Использовать в умном фильтре» — включает оптимизированный режим подсчёта
Для свойств типа «Список» рекомендуется включить «Сортировать значения» — иначе порядок значений непредсказуем.
Подключение к компоненту каталога
// Умный фильтр
$APPLICATION->IncludeComponent('bitrix:catalog.smart.filter', 'my_filter', [
'IBLOCK_ID' => 15,
'FILTER_NAME' => 'arrFilter',
'SMART_FILTER' => 'Y',
'HIDE_NOT_AVAILABLE' => 'Y',
'SHOW_EMPTY_VALUES' => 'N',
'URL_FORM' => '/catalog/',
]);
// Каталог использует тот же arrFilter
$APPLICATION->IncludeComponent('bitrix:catalog', 'my_catalog', [
'IBLOCK_ID' => 15,
'FILTER_NAME' => 'arrFilter',
]);
Кастомизация шаблона
Стандартный шаблон из /bitrix/components/bitrix/catalog.smart.filter/templates/ копируется в /local/templates/{site_template}/components/bitrix/catalog.smart.filter/my_filter/. Структура:
template.php — основной файл шаблона
filter.php — форма фильтра
result_modifier.php — постобработка перед выводом
style.css
script.js
В result_modifier.php можно изменить порядок, названия и группировку блоков фильтра до рендера.
Типичные проблемы
Свойство не появляется — проверить флаг «Участвует в фильтрации». Не все типы свойств поддерживаются умным фильтром (например, HTML/TEXT не поддерживается).
Показываются значения с 0 товаров — включить HIDE_NOT_AVAILABLE = Y и HIDE_NOT_AVAILABLE_OFFERS = Y.
Фильтр не сбрасывается — проверить URL после сброса. Сброс работает через очистку GET-параметров с перезагрузкой страницы, кнопка сброса должна вести на чистый URL каталога.
Медленная работа — требует отдельной оптимизации: индексы в БД, уменьшение количества значений свойств, агрессивный кеш.
Сроки выполнения
Базовая настройка стандартного умного фильтра с выбором свойств и кастомным шаблоном — 4–8 часов. Настройка с нестандартными свойствами, условной видимостью блоков и AJAX-обновлением — 1–2 рабочих дня.







