у меня встречаются разделы с одинаковыми кодами, это неминуемо в моем случае
Получилось, что при настройке компонентов и при клике на казалось бы нужный раздел, переходит в раздел с таким же симв.кодом, только меньший по IDшнику.
Не знаете, поможет ли в данном случае изменение передаваемой переменной с SECTION CODE на SECTION ID?
array (
'CONDITION' => '#^/catalog/([a-zA-Z_-]+)/-([a-zA-Z_]+)/([\\?\\#].*)?$#',
'RULE' => 'SECTION_CODE=$1&PROP=$2&VAL=$3',
'ID' => '',
'PATH' => '/catalog/byprops.php',
'SORT' => 10,
),
Если вы будете разбирать URL в скрипте и проверять ведет ли он к тому разделку код которого в последнем токене, то называть индивидуально каждый раздел не нужно.
Т.е. смотрите - вы делаете запрос c фильтром по коду последнего токена в CIBlockSection::GetList и получаете массив разделов - он там может быть вообще один, а может быть штук 5 (у вас же не уникальные коды) или даже не одного - если не одного - ок - вы тогда проверяете элементы с таким кодом, но если все же массив, то перебираете его и проверяете сотвествует ли SECTION_PAGE_URL (он должен быть в селекте) вашему текущему URL и выбираете тот раздел каталога, чей SECTION_PAGE_URL совпал с текущим, а если не совпал (т.е. такого раздела нет) - опять же переходите к поиску элемента с таким кодом.
Много по каким можно поводам придраться, например можно сказать что они перегружены параметрыми и от того плохоуправляемы, но меня доводит до белого каления денормализация роутинга - как раз то, о чем вы написали - URL нужно настраивать в разных местах, его можно настроить по разному и получить конфигурацию с некоректно работающими путями. В Битрикс роутинг и так очень грустное зрелище, а когда он денормализован с помощью комплексных компонентов вообще плакать хочется.
Хотя для показа в презентациях они безусловно хороши, да и если вам надо быстро слепить сайт, с простыми требованиями к нему - вполне годная вещь. Вобщем право на жизнь они имеют, но только на очень короткую и not in my back yard