Умный фильтр на 1С-Битрикс не находит товары: что проверить в свойствах, торговых предложениях и индексе
Товар есть в каталоге, но исчезает после выбора цвета, размера или цены? Порядок проверки свойств, SKU, фасетного индекса и связи фильтра со списком товаров.
Товар открывается по прямой ссылке, цена и фотография на месте. Но покупатель выбирает в каталоге цвет, размер или диапазон цены — и видит «Ничего не найдено». Для владельца магазина это выглядит как пропавший товар, хотя запись из базы никто не удалял.
Умный фильтр на 1С-Битрикс нужно проверять по цепочке: данные товара и его предложений, настройки свойств, фасетный индекс, условия отбора и вывод каталога. Ниже — порядок диагностики на одном контрольном товаре. Он помогает найти место расхождения и проверить исправление после следующего импорта.

1. Начните с одного товара и точного симптома
Выберите товар, который должен попадать в конкретную выборку. Сохраните его ID, раздел, адрес карточки и адрес страницы с выбранными параметрами. Если у товара есть варианты, запишите также ID нужного торгового предложения. Названия недостаточно: одинаково названные записи могут иметь разные свойства.
Откройте каталог в приватном окне без авторизации. Сначала полностью сбросьте фильтр, затем включайте условия по одному. Например: «кроссовки» → «красный» → «42» → «до 8 000 ₽». Зафиксируйте шаг, на котором карточка исчезает. Если её нет уже в исходном разделе, сначала проверяют принадлежность разделу, активность и условия показа списка.
| Симптом | Что проверить | Контрольная проверка |
|---|---|---|
| В фильтре нет характеристики | Настройку свойства, значения и привязку к разделу | Сравнить с работающим свойством в том же разделе |
| Нет одного цвета или бренда | Фактическое значение и запись справочника | Проверить значение у контрольного товара, а не только текст в карточке |
| Цвет и размер отдельно работают, вместе — нет | Сочетание свойств у одного предложения | Найти конкретный SKU с обоими значениями |
| Проблема возникает после загрузки каталога | Результат импорта и актуальность индекса | Сопоставить данные и выдачу до и после повторной загрузки |
| Счётчик обещает товары, список пуст | Условия фильтра и компонента списка | Сравнить раздел, ограничения, цены и итоговый массив отбора |
| После перезагрузки результат другой | AJAX, адрес страницы, сессию и кеш | Открыть скопированный URL в новом приватном окне |
Эта таблица задаёт направление проверки, а не готовый диагноз. Например, пустая выдача после импорта ещё не доказывает поломку индекса: загрузчик мог записать цвет в другое свойство или обнулить цену нужного предложения.
2. Проверьте свойства товара и торговых предложений
Текст «красный» в описании или возле фотографии не гарантирует, что фильтр получает такое значение. Шаблон может выводить характеристику из описания, собственного справочника или поля, которое вообще не участвует в отборе.
В настройках инфоблока найдите именно то свойство, по которому должен работать фильтр. Проверьте его ID, символьный код, тип и заполнение у контрольного товара. Затем проверьте включение в умный фильтр и настройки для текущего раздела, включая наследование. В официальном уроке 1С-Битрикс описаны участие свойств товаров и предложений в фильтре и настройка их отображения.
Особое внимание нужно данным после импорта. Две записи списка с названием «Красный» могут иметь разные ID. Значения «42», «42 RU» и «42 » с пробелом требуют проверки правил загрузки и нормализации. Для справочника важна корректная связь с нужной записью, для числового диапазона — числовое значение, а не строка с единицей измерения.
Если одинаковые характеристики расползлись по разным полям, сначала составьте соответствие «источник → свойство → значение». Массово объединять или удалять свойства до этой проверки опасно: на них могут опираться фильтр, карточки и обмен. Правила подготовки данных разобраны в статье об импорте товаров из Excel без дублей.
Цвет и размер должны сходиться в одном варианте
Рассмотрим условный пример, не связанный с реальным заказом. У модели кроссовок два предложения: красное размера 41 и синее размера 42. У модели в целом есть красный цвет и есть размер 42, но красного предложения размера 42 нет. Поэтому ожидание покупателя «покажите красные кроссовки 42-го размера» нужно проверять на уровне конкретного варианта.

У предложения, которое действительно подходит, проверьте связь с родительским товаром, активность, заполненные свойства, цену и доступность. Поведение отбора и выбора варианта зависит также от версии компонентов и доработок шаблона. Поэтому правильность нельзя подтвердить только появлением родительской карточки: откройте её и убедитесь, что подходящий вариант существует и его можно выбрать.
Перенос всех цветов и размеров в множественные свойства родительского товара требует отдельного решения. Такой подход может быть нужен для витрины, но сам по себе не сохраняет информацию о допустимых сочетаниях. Исправление должно соответствовать модели каталога, а не просто возвращать больше карточек.
3. Проверьте фасетный индекс после проверки данных
Фасетный индекс помогает умному фильтру быстро работать с характеристиками каталога. Это отдельный механизм: переиндексация модуля «Поиск» не заменяет работу с фасетным индексом, а очистка кеша не пересоздаёт его. Если проблема относится к поисковой строке, для неё есть отдельный порядок диагностики внутреннего поиска.
Откройте раздел «Контент → Инфоблоки → Фасетные индексы». В справке по фасетным индексам описаны состояния и действия для каталогов. Возможность создания индекса связана в том числе с наличием свойства, включённого в умный фильтр.
- Убедитесь, что проверяете каталог, который используется на проблемной странице.
- Посмотрите состояние индекса и сообщения о необходимости его пересоздать.
- Если менялся набор свойств в фильтре, завершите настройку и выполните необходимое пересоздание индекса.
- Дождитесь завершения операции и проверьте контрольный товар с теми же параметрами.
- Если сбой связан с импортом, повторите небольшой тест загрузки и проверьте результат ещё раз.
Для большого каталога заранее выбирают время и контролируют нагрузку. Перед изменением свойств и запуском массовых исправлений сохраняют резервную копию. Прямое удаление таблиц индекса не должно быть первым способом диагностики: сначала используют штатный интерфейс и выясняют причину расхождения.
Если переиндексация возвращает товары, а следующая загрузка снова ломает выборку, проверять нужно процесс обновления данных. Разработчик разбирает, какими API пользуется импорт, какие записи меняет и как завершает обновление индекса. Особенно внимательно проверяют собственные загрузчики с прямыми SQL-запросами и обходом штатных обработчиков. Постоянная ручная переиндексация скрывает повторяющуюся проблему.
4. Сопоставьте условия фильтра и списка товаров
Форма фильтра и карточки каталога могут выводиться разными компонентами. В штатной схеме catalog.smart.filter формирует условия, которые затем использует catalog.section. Поэтому ситуация «счётчик показывает 5, на странице 0» требует проверки их связи.
В документации компонента различаются входящий PREFILTER_NAME и выходящий FILTER_NAME. Первый задаёт предварительное ограничение выборки, второй передаёт результат фильтрации. Фильтр должен выполняться до компонента списка.
На доработанном сайте разработчику полезно сопоставить:
- инфоблок, текущий раздел и правила включения подразделов;
- имя выходящего массива фильтра и имя массива, которое читает список;
- момент формирования массива — не перезаписывается ли он перед выводом карточек;
- дополнительные ограничения по бренду, региону, складу или подборке;
- правила доступности, типы цен и пользовательскую группу;
- собственные исключения в шаблоне и
result_modifier.php.
Пример: страница показывает только товары одного бренда, а фильтр считает весь раздел. Счётчик и выдача будут описывать разные наборы данных. Исправление здесь — согласовать ограничения, а затем проверить несколько выбранных сочетаний. Удалять ограничение бренда только ради совпадения количества нельзя: оно может быть смыслом этой страницы.
Цена и наличие: сравнивайте одинаковые условия
Если товар исчезает только при выборе цены, запишите, какую цену видит посетитель и какая хранится у нужного предложения. Проверьте используемые типы цен, валюту и доступ к ним. Отдельно выясните, как шаблон получает отображаемую сумму: например, из выбранного варианта, минимальной цены модели или собственного расчёта скидки. Видимая надпись «от 5 000 ₽» ещё не описывает цену каждого SKU.
Нулевой остаток также нельзя оценивать в отрыве от количественного учёта и разрешения покупки при отсутствии. Проверку повторяют для обычного посетителя: административный режим не подтверждает, что покупатель получает ту же выдачу. Если исходные остатки уже неверны, сначала устраняют проблему передачи нулевых остатков из 1С.
Адрес, AJAX и кеш: результат должен переживать перезагрузку
Выберите параметры, скопируйте полученный адрес и откройте его в новом приватном окне. Выбранные значения и товары должны соответствовать ссылке. Если после обновления страницы фильтр сбрасывается или появляется 404, проверяют разбор ЧПУ и передачу SMART_FILTER_PATH.
Если по прямому адресу результат верный, а после клика — нет, сравнивают AJAX-запрос и ответ: выбранные параметры, адрес запроса, ошибки JavaScript и фактически заменённый блок. При двух экземплярах фильтра — например, в боковой колонке и мобильном окне — проверяют, что обработчик читает нужную форму.
Очистка кеша имеет смысл как контрольный шаг после исправления данных или настроек. Если она помогает лишь до следующего изменения, нужно искать причину устаревания результата. На тестовой копии можно сравнить поведение с кешированием и без него. Постоянное отключение кеша на рабочем каталоге не заменяет исправление.
5. Как проверить, что проблема устранена
Удобно заранее записать ожидаемый результат для небольшого набора товаров. Включите в него простой товар, товар с предложениями, недоступный вариант и сочетание, которого не существует. Это проверяет точность отбора, а не только факт появления карточек.

- Без фильтра. Контрольный товар находится в ожидаемом разделе.
- Одно свойство. Выбор характеристики сохраняет подходящие товары и исключает неподходящие.
- Сочетание. Для цвета и размера проверен конкретный SKU, включая заведомо отсутствующий вариант.
- Цена и доступность. Результат соответствует настройкам магазина для обычного посетителя.
- Ссылка и сброс. Прямой URL воспроизводит выборку, а сброс возвращает исходный список без лишних условий.
- Переходы. Сортировка и пагинация сохраняют выбранные ограничения.
- Мобильный экран. Открытие, применение и сброс фильтра работают в мобильном интерфейсе.
- Повторное обновление. Следующий контрольный импорт не возвращает ошибку.
Если свойства заполнены правильно, а расхождение остаётся в компонентах, индексировании или загрузчике, нужна техническая диагностика. Для оценки достаточно адреса раздела, ссылки с проблемным фильтром, ID контрольного товара и описания ожидаемой выдачи. Полезно указать, после какого импорта или обновления появился сбой.
Я могу проверить эту цепочку и выполнить настройку каталога и инфоблоков на 1С-Битрикс. Для локального сбоя можно начать с исправления конкретной ошибки, сохранив существующую структуру магазина.
Частые вопросы
Почему фильтр скрывает товар, хотя карточка открывается?
Прямое открытие подтверждает доступность страницы, но не соответствие условиям отбора. Проверьте раздел, фактические свойства, нужное предложение и ограничения списка. Затем переходите к индексу и связке компонентов.
Нужно ли пересоздавать фасетный индекс после каждого импорта?
Полную переиндексацию не стоит назначать универсальным обязательным шагом. Требование зависит от изменений и реализации загрузчика. Если после обычного обновления данных фильтр регулярно расходится с каталогом, проверьте механизм обновления индекса. После изменения набора участвующих свойств выполняйте необходимое пересоздание.
Почему красный цвет и размер 42 есть, а вместе ничего не найдено?
Они могут принадлежать разным предложениям одной модели. Найдите SKU, у которого одновременно заполнены оба значения. Если он существует, проверяйте его активность, связь с товаром, цену, доступность и дальнейшие условия отбора.
Поможет ли замена умного фильтра готовым модулем?
Сначала нужно установить причину. Если исходные характеристики неверны или нужного варианта нет, новый интерфейс не исправит данные. Замену имеет смысл оценивать, когда понятны требования, ограничения текущей реализации и критерии проверки результата.
Рабочий фильтр должен воспроизводимо находить нужные товары при одинаковых условиях. Сохраните контрольные примеры вместе с результатом исправления: так следующую загрузку каталога можно будет проверить без повторного расследования с нуля.
Нужно оценить задачу по сайту?
Опишите, что нужно изменить, приложите ссылку на страницу и удобный способ связи. Я посмотрю задачу и подскажу, с чего лучше начать.