я писал свой такой обработчик, но для этого использовал несколько инфоблоков
т.е. в основном у меня есть артикул
вспомогательный инфоблок это зависимое свойство: название элемента это 1 значение (у вас это может быть регион - у меня свое) и свойства артикул(необходимо будет для связки) и свойство соответсвия(тематика)
и получается в фильтре мы вибираем соответсвия отправляем запрос а потом по этому запросу находим элемент соответсвий из него дергаем артикул идем в детали по артикулу находим id и этот id отправляем в стандартный arrFilter
т.е. в основном у меня есть артикул
вспомогательный инфоблок это зависимое свойство: название элемента это 1 значение (у вас это может быть регион - у меня свое) и свойства артикул(необходимо будет для связки) и свойство соответсвия(тематика)
и получается в фильтре мы вибираем соответсвия отправляем запрос а потом по этому запросу находим элемент соответсвий из него дергаем артикул идем в детали по артикулу находим id и этот id отправляем в стандартный arrFilter