1. Главная
  2. Блог
  3. 1С-Битрикс
  4. Как убрать цену из умного фильтра в 1С-Битрикс

Как убрать цену из умного фильтра в 1С-Битрикс

9 августа 2026
97

В каталоге товаров на 1С-Битрикс умный фильтр может автоматически выводить диапазон цен. Обычно он выглядит как два поля «от» и «до» или как ползунок, с помощью которого посетитель может ограничить стоимость товаров.

Однако фильтрация по цене нужна не всегда. Например:

  • цена товара рассчитывается индивидуально;
  • на сайте используется кнопка «Запросить стоимость»;
  • товары предоставляются в аренду;
  • стоимость хранится не в типе цены каталога, а в отдельном свойстве инфоблока;
  • цена зависит от комплектации, срока аренды или других условий;
  • в каталоге не требуется сортировка и фильтрация по стоимости.

Разберём, как убрать цену только из умного фильтра, сохранив её вывод в списке товаров и на детальной странице.

Почему цена появляется в умном фильтре

Фильтрация по цене подключается через параметр PRICE_CODE компонента:

bitrix:catalog.smart.filter

Обычно при вызове умного фильтра используется значение, переданное из настроек комплексного компонента каталога:

"PRICE_CODE" => $arParams["PRICE_CODE"],

Массив $arParams["PRICE_CODE"] содержит типы цен, используемые на сайте. Например:

array(
	"BASE",
)

Если передать этот массив в умный фильтр, компонент сформирует фильтрацию по цене.

Почему нельзя очищать PRICE_CODE во всём каталоге

Параметр PRICE_CODE используется не только умным фильтром. Он также передаётся в компоненты:

  • bitrix:catalog.section — список товаров;
  • bitrix:catalog.element — детальная карточка;
  • компоненты рекомендаций и похожих товаров;
  • компоненты подарков;
  • компоненты сравнения товаров.

Если полностью удалить тип цены из настроек каталога, цена может исчезнуть:

  • из карточек товаров;
  • из разделов каталога;
  • из торговых предложений;
  • из корзины и связанных компонентов.

Поэтому нужно отключить передачу типов цен только при вызове умного фильтра.

В каком файле искать вызов умного фильтра

Вызов компонента bitrix:catalog.smart.filter обычно находится в шаблоне комплексного компонента каталога.

В рассматриваемом случае файл называется:

section_vertical.php

Такое название часто используется в шаблонах, где фильтр выводится вертикально — например, в левой колонке каталога.

Однако в других проектах файл может называться иначе.

Возможные названия файлов

  • section.php;
  • section_vertical.php;
  • section_horizontal.php;
  • section_filter.php;
  • catalog_section.php;
  • smart_filter.php;
  • filter.php;
  • filter_vertical.php;
  • left_block.php;
  • sidebar.php;
  • sections.php;
  • section_blocks.php.

В некоторых шаблонах вызов фильтра вынесен во вложенную папку:

include/filter.php
include/smart_filter.php
include/section_filter.php
include/left_block.php

Поэтому ориентироваться лучше не только на имя файла, а на сам вызов компонента.

Где обычно располагается файл

Если используется кастомный шаблон сайта, возможный путь выглядит так:

/local/templates/имя_шаблона/components/bitrix/catalog/имя_шаблона_каталога/section.php

Для вертикального варианта:

/local/templates/имя_шаблона/components/bitrix/catalog/имя_шаблона_каталога/section_vertical.php

Если переопределение находится не в /local/, а в старой структуре проекта, путь может выглядеть так:

/bitrix/templates/имя_шаблона/components/bitrix/catalog/имя_шаблона_каталога/section_vertical.php

Редактировать файлы ядра в каталоге:

/bitrix/components/bitrix/

не рекомендуется. После обновления 1С-Битрикс изменения могут быть потеряны.

Как быстро найти вызов умного фильтра

В файлах шаблона нужно искать строку:

bitrix:catalog.smart.filter

Вызов обычно выглядит примерно так:

<?php
$APPLICATION->IncludeComponent(
	"bitrix:catalog.smart.filter",
	$templateName,
	array(
		"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
		"IBLOCK_ID" => $arParams["IBLOCK_ID"],
		"SECTION_ID" => $arCurSection["ID"],
		"FILTER_NAME" => $arParams["FILTER_NAME"],
		"PRICE_CODE" => $arParams["PRICE_CODE"],
		"CACHE_TYPE" => $arParams["CACHE_TYPE"],
		"CACHE_TIME" => $arParams["CACHE_TIME"],
	),
	$component
);
?>

Нас интересует эта строка:

"PRICE_CODE" => $arParams["PRICE_CODE"],

Как отключить фильтрацию по цене

Для отключения цены только в умном фильтре нужно заменить:

"PRICE_CODE" => $arParams["PRICE_CODE"],

на пустой массив:

"PRICE_CODE" => array(),

В современном синтаксисе PHP можно использовать сокращённую запись:

"PRICE_CODE" => [],

Оба варианта равнозначны.

Пример полного вызова компонента

<?php
$APPLICATION->IncludeComponent(
	"bitrix:catalog.smart.filter",
	"",
	array(
		"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
		"IBLOCK_ID" => $arParams["IBLOCK_ID"],
		"SECTION_ID" => $arCurSection["ID"],
		"FILTER_NAME" => $arParams["FILTER_NAME"],

		/*
		 * Не передаём типы цен в умный фильтр.
		 * Цена исчезнет из фильтра, но продолжит
		 * выводиться в карточках товаров.
		 */
		"PRICE_CODE" => array(),

		"CACHE_TYPE" => $arParams["CACHE_TYPE"],
		"CACHE_TIME" => $arParams["CACHE_TIME"],
		"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
		"SAVE_IN_SESSION" => "N",
		"INSTANT_RELOAD" => "N",
		"PAGER_PARAMS_NAME" => "arrPager",
	),
	$component,
	array(
		"HIDE_ICONS" => "Y",
	)
);
?>

Пример для файла section_vertical.php

В шаблонах с вертикальным фильтром код может выглядеть так:

<?php
if ($arParams["USE_FILTER"] === "Y") {
	$APPLICATION->IncludeComponent(
		"bitrix:catalog.smart.filter",
		"vertical",
		array(
			"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
			"IBLOCK_ID" => $arParams["IBLOCK_ID"],
			"SECTION_ID" => $arCurSection["ID"],
			"FILTER_NAME" => $arParams["FILTER_NAME"],

			// Раньше:
			// "PRICE_CODE" => $arParams["PRICE_CODE"],

			// Теперь:
			"PRICE_CODE" => array(),

			"CACHE_TYPE" => $arParams["CACHE_TYPE"],
			"CACHE_TIME" => $arParams["CACHE_TIME"],
			"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
			"SAVE_IN_SESSION" => "N",
			"INSTANT_RELOAD" => "Y",
		),
		$component
	);
}
?>

Если используется отдельный параметр FILTER_PRICE_CODE

В некоторых готовых решениях и кастомных шаблонах для фильтра используется отдельный параметр:

FILTER_PRICE_CODE

Тогда вызов может выглядеть так:

"PRICE_CODE" => $arParams["FILTER_PRICE_CODE"],

Его также можно заменить пустым массивом:

"PRICE_CODE" => array(),

При этом основной параметр:

$arParams["PRICE_CODE"]

трогать не нужно.

Если PRICE_CODE передаётся через промежуточную переменную

Иногда параметры сначала собираются в отдельный массив:

$filterParams = array(
	"IBLOCK_ID" => $arParams["IBLOCK_ID"],
	"SECTION_ID" => $arCurSection["ID"],
	"PRICE_CODE" => $arParams["PRICE_CODE"],
);

После этого массив передаётся компоненту:

$APPLICATION->IncludeComponent(
	"bitrix:catalog.smart.filter",
	"",
	$filterParams,
	$component
);

В таком случае изменить нужно строку внутри массива:

$filterParams["PRICE_CODE"] = array();

Либо сразу указать пустой массив:

$filterParams = array(
	"IBLOCK_ID" => $arParams["IBLOCK_ID"],
	"SECTION_ID" => $arCurSection["ID"],
	"PRICE_CODE" => array(),
);

Если умный фильтр подключается несколько раз

В некоторых шаблонах имеются отдельные вызовы для:

  • десктопной версии;
  • мобильной версии;
  • вертикального фильтра;
  • горизонтального фильтра;
  • всплывающего мобильного окна.

Например:

section_vertical.php
section_horizontal.php
mobile_filter.php

Если изменить только один вызов, цена может исчезнуть на компьютере, но остаться в мобильной версии.

Поэтому рекомендуется выполнить поиск по всему шаблону каталога:

bitrix:catalog.smart.filter

и проверить все найденные вызовы.

Почему не стоит просто скрывать цену через CSS

Иногда блок цены пытаются убрать стилями:

.bx-filter-parameters-box-price {
	display: none;
}

Такой подход нежелателен.

Причины:

  • HTML блока цены всё равно загружается;
  • параметры фильтра продолжают участвовать в работе компонента;
  • могут остаться скрытые поля;
  • классы зависят от конкретного шаблона;
  • после обновления или смены шаблона CSS может перестать работать;
  • в мобильной версии может использоваться другой класс.

Правильнее не передавать типы цен в компонент умного фильтра.

Что делать после изменения

После редактирования файла необходимо очистить кеш.

  1. Открыть административную часть сайта.
  2. Перейти в раздел очистки кеша.
  3. Очистить кеш компонентов.
  4. При необходимости очистить весь кеш сайта.
  5. Если используется композитный режим, очистить композитный кеш.
  6. Перезагрузить страницу каталога без кеша браузера.

Для принудительной перезагрузки страницы можно использовать сочетание клавиш:

Ctrl + F5

Что проверить после изменения

  • исчез ли диапазон цены из умного фильтра;
  • остались ли цены в списке товаров;
  • осталась ли цена на детальной странице;
  • работают ли остальные свойства фильтра;
  • не осталась ли цена в мобильной версии;
  • не подключается ли второй экземпляр умного фильтра;
  • работает ли фильтрация после применения других параметров.

Если цена не исчезла

Если после замены PRICE_CODE цена осталась, возможны следующие причины:

  • изменён не тот файл шаблона;
  • на странице используется другой вариант, например section_horizontal.php;
  • имеется отдельный вызов мобильного фильтра;
  • не очищен кеш компонента;
  • фильтр выводит не каталожную цену, а числовое свойство инфоблока;
  • блок цены прописан в шаблоне вручную;
  • готовое решение модифицирует параметры через result_modifier.php или другой подключаемый файл.

Для диагностики нужно проверить фактический вызов:

bitrix:catalog.smart.filter

и убедиться, что в нём действительно передаётся:

"PRICE_CODE" => array(),

Если фильтр создаётся по числовому свойству

Иногда стоимость хранится не в каталожной цене, а в свойстве инфоблока, например:

PRICE
PRICE_ARENDA
COST
RENT_PRICE

Если для такого свойства установлена галочка «Показывать в умном фильтре», оно будет выводиться независимо от параметра PRICE_CODE.

В этом случае нужно открыть настройки свойства инфоблока и отключить его участие в умном фильтре.

Путь обычно выглядит так:

Контент
→ Инфоблоки
→ Тип инфоблока
→ Нужный инфоблок
→ Свойства

В настройках свойства необходимо снять соответствующую галочку, связанную с показом в умном фильтре.

Таким образом, нужно различать:

  • каталожную цену, которая управляется параметром PRICE_CODE;
  • числовое свойство инфоблока, которое управляется настройками самого свойства.

Чтобы убрать стандартную цену из умного фильтра 1С-Битрикс и сохранить её в карточках товаров, нужно изменить только параметр вызова компонента bitrix:catalog.smart.filter.

Было:

"PRICE_CODE" => $arParams["PRICE_CODE"],

Стало:

"PRICE_CODE" => array(),

Вызов может находиться в файлах:

section.php
section_vertical.php
section_horizontal.php
filter.php
smart_filter.php
left_block.php
sidebar.php

Искать нужно по строке:

bitrix:catalog.smart.filter

При этом основной параметр $arParams["PRICE_CODE"] каталога изменять не следует, иначе цена может исчезнуть из списка и детальной карточки товаров.

ChatGPT Image 9 авг. 2026 г., 14_41_52.png

Важно сначала определить, откуда именно фильтр получает стоимость. Пустой PRICE_CODE отключает только каталожные типы цен, но не числовое свойство вроде PRICE_ARENDA, если для него включён показ в умном фильтре. Такая проверка источника данных помогает убрать только ненужный диапазон и не затронуть карточки товаров при доработке каталога на 1С-Битрикс.

Цена исчезла в одном варианте фильтра, но осталась в мобильном или горизонтальном? Проверим все вызовы bitrix:catalog.smart.filter и параметры шаблона при сопровождении интернет-магазина на 1С-Битрикс.

Понравилась статья?

Поддержать нас рублями:

Нужна помощь? Обращайтесь!

Комментарии
Name
Email
Phone
Ваше имя
Ваш email
Оставить комментарий
Нажмите для звонка
+7 (499) 341-00-19