Решение проблемы с ошибкой 404 при использовании умного фильтра с ЧПУ в Битрикс

В ходе разработки возникла проблема с корректной работой умного фильтра в комплексном компоненте каталога при включенном режиме ЧПУ. Ниже описаны выполненные шаги и обнаруженная проблема.

Вывод компонента фильтра

В файле sections.php комплексного компонента catalog был добавлен вызов компонента умного фильтра со следующими параметрами:

<?$APPLICATION->IncludeComponent(
	"bitrix:catalog.smart.filter",
	"",
	array(
		"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
		"IBLOCK_ID" => $arParams["IBLOCK_ID"],
		"SECTION_ID" => 0,
		"FILTER_NAME" => $arParams["FILTER_NAME"],
		"PRICE_CODE" => $arParams["~PRICE_CODE"],
		"CACHE_TYPE" => $arParams["CACHE_TYPE"],
		"CACHE_TIME" => $arParams["CACHE_TIME"],
		"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
		"SAVE_IN_SESSION" => "N",
		"FILTER_VIEW_MODE" => $arParams["FILTER_VIEW_MODE"],
		"SECTION_TITLE" => "NAME",
		"SECTION_DESCRIPTION" => "DESCRIPTION",
		'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"],
		"TEMPLATE_THEME" => $arParams["TEMPLATE_THEME"],
		'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
		'CURRENCY_ID' => $arParams['CURRENCY_ID'],
		"SEF_MODE" => $arParams['SEF_MODE'],
		"SEF_RULE" => "/catalog/filter/#SMART_FILTER_PATH#/apply/",
		"SMART_FILTER_PATH" => $_REQUEST["SMART_FILTER_PATH"],
		"PAGER_PARAMS_NAME" => $arParams["PAGER_PARAMS_NAME"],
		"INSTANT_RELOAD" => $arParams["INSTANT_RELOAD"],
		"SHOW_ALL_WO_SECTION" => "Y"
	),
	$component,
	array('HIDE_ICONS' => 'Y')
);?>

Настройка правил обработки адресов

В правилах обработки адресов было добавлено соответствующее правило для поддержки ЧПУ фильтра:

18 => 
  array (
    'CONDITION' => '#^/catalog/filter/([a-z0-9_\-\/]+)/apply/#',
    'RULE' => 'SMART_FILTER_PATH=$1&',
    'ID' => '',
    'PATH' => '/catalog/index.php',
    'SORT' => 90,
  ),

Обнаруженная проблема

При попытке использовать сортировку товаров с включенным режимом ЧПУ возникает ошибка 404. Анализ проблемы показал следующее:

  • При отключении вывода страницы 404 система открывает section.php вместо корректной обработки фильтра
  • При отключении ЧПУ в настройках фильтра функциональность работает корректно
  • Проблема проявляется именно при взаимодействии ЧПУ фильтра с другими функциями каталога (сортировкой)

Это указывает на конфликт между правилами ЧПУ фильтра и общими правилами маршрутизации компонента каталога.