Умный фильтр в 1С-Битрикс позволяет посетителю отбирать товары по значениям свойств инфоблока — цене, бренду, цвету, характеристикам. Работает фильтр только с теми свойствами, для которых включена галочка «В умном фильтре».
Что такое умный фильтр и как он связан со свойствами
Умный (фасетный) фильтр — это компонент bitrix:catalog.smart.filter, который строит форму отбора товаров на основе свойств инфоблока и числовых полей (цена, наличие). В отличие от обычной выборки, фильтр показывает пользователю только те значения, которые реально встречаются среди активных элементов, и подсчитывает количество совпадений.
Ключевой принцип: фильтр опирается на свойства инфоблока. Чтобы свойство появилось в форме фильтра, его нужно явно пометить как участвующее в умном фильтре. Никакой автоматической выборки «всех свойств» не происходит — это защищает от перегрузки формы служебными полями.
- Для отбора подходят свойства типов
Список,Справочник,Число,Привязка к элементам, а также свойства с включённым флагом «умного» поведения. - Строковые свойства тоже можно включить, но интерфейс отбора по ним менее удобен (чекбоксы по каждому уникальному значению).
- Числовые свойства и цена отображаются в виде диапазона «от — до».
Как включить свойство в умный фильтр
Настройка выполняется в карточке инфоблока на вкладке «Свойства». Каждое свойство имеет отдельный флажок участия в фильтре.
- Откройте Контент → Инфоблоки → Типы инфоблоков и выберите нужный инфоблок.
- Перейдите на вкладку «Свойства».
- В строке нужного свойства установите флажок в колонке «Умный фильтр» (в старых редакциях — «Показывать в умном фильтре»).
- При необходимости задайте «Отображение в умном фильтре»: выпадающий список, флажки, «радио», размеры или диапазон — параметр доступен в детальной настройке свойства.
- Сохраните инфоблок.
Для полей «Цена» и «Наличие» участие в фильтре настраивается уже в параметрах самого компонента фильтра, а не в свойствах — эти сущности не являются свойствами инфоблока.
| Тип свойства | Вид в фильтре |
|---|---|
| Список / Справочник | Чекбоксы, «радио» или выпадающий список значений |
| Число | Диапазон «от — до» |
| Привязка к элементам | Список связанных элементов (например, бренды) |
| Строка | Чекбоксы по уникальным значениям |
Подключение компонента умного фильтра
Форму фильтра выводит компонент bitrix:catalog.smart.filter. Обычно он уже включён в комплексный компонент bitrix:catalog, но его можно разместить и отдельно — например, в левой колонке шаблона.
- В визуальном редакторе перетащите компонент «Каталог → Умный фильтр» в нужную область страницы.
- Укажите тип и код инфоблока, для которого строится фильтр.
- Задайте раздел (ID или код), если фильтр должен учитывать значения только внутри конкретной категории.
- Проверьте параметр «Устанавливать заголовки страницы» и режим ЧПУ, чтобы ссылки фильтра совпадали с настройками каталога.
Важно, чтобы код инфоблока и раздел в фильтре совпадали с параметрами компонента списка товаров catalog.section — иначе применённый фильтр не отразится на выборке товаров.
Индекс умного фильтра и производительность
Для быстрой работы фасетного фильтра Битрикс использует специальный индекс — таблицу заранее рассчитанных сочетаний свойств и количества товаров. Без индекса фильтр тоже работает, но заметно медленнее на больших каталогах.
- Откройте инфоблок и перейдите на вкладку «Свойства» либо в раздел настроек каталога.
- Найдите блок управления индексом фасетного (умного) фильтра.
- Нажмите «Обновить индекс» (или «Создать индекс») и дождитесь завершения.
Индекс пересчитывается автоматически при изменении элементов, но после массовых операций (импорт, групповое редактирование, изменение состава свойств фильтра) индекс стоит пересобрать вручную. Пока идёт переиндексация большого каталога, значения в фильтре могут отображаться неполно.
- Пересобирайте индекс после добавления или удаления свойства из фильтра.
- Пересобирайте индекс после импорта товаров и цен.
- При включённом кэшировании компонента после переиндексации сбросьте кэш каталога.
ЧПУ и человекопонятные ссылки фильтра
Умный фильтр умеет формировать ЧПУ-адреса вида /catalog/brand-samsung/color-black/. Для этого нужен согласованный код у свойств и включённая поддержка ЧПУ.
- Задайте свойствам понятный символьный код (латиницей) — он попадает в URL.
- В параметрах комплексного компонента каталога включите режим ЧПУ и укажите путь к разделу.
- Убедитесь, что на сайте активно правило обработки URL (модуль «Управление структурой» / файл
urlrewrite.php), совпадающее с шаблоном каталога.
Если символьный код у свойства не заполнен, в ссылке фильтра будет использоваться числовой ID — адреса станут менее читаемыми и хуже для SEO.
Частые ошибки при настройке фильтра
Большинство проблем сводится к рассогласованию настроек свойств, компонента и индекса.
- Свойство не появляется в фильтре. Не установлен флажок «Умный фильтр» в свойствах инфоблока, либо у активных товаров нет заполненных значений этого свойства.
- Фильтр показывается, но не отбирает товары. Код инфоблока или раздел в компоненте фильтра не совпадает с компонентом списка товаров.
- Значения в фильтре устарели или неполны. Не обновлён индекс фасетного фильтра после импорта или редактирования.
- Старые значения «висят» после изменения. Не сброшен кэш компонента каталога.
- Числовое свойство отображается чекбоксами, а не диапазоном. Свойство имеет тип «Строка» или «Список», а не «Число».
- Некрасивые ссылки фильтра. У свойств не заданы символьные коды либо не включён режим ЧПУ.
Итог
Умный фильтр в 1С-Битрикс строится поверх свойств инфоблока: сначала помечаем нужные свойства флажком «Умный фильтр» и задаём им символьные коды, затем подключаем компонент catalog.smart.filter с тем же инфоблоком и разделом, что и список товаров, и обновляем индекс фасетного фильтра.
Порядок проверки при запуске: правильные типы свойств → включённое участие в фильтре → согласованные параметры компонентов → пересобранный индекс → сброшенный кэш. Соблюдение этой последовательности избавляет от большинства ошибок отображения и отбора.