Курсы обучения
+7 (351) 777-80-70
2022.03.05

Как исправить ошибку "Значение 'Код' неверно" при использовании апострофов в коде регионов?

Иногда возникает необходимость использования апострофов в кодах регионов. При сохранении региона с апострофом (например, Ivano-Frankivs'k или Ternopil') выдаётся ошибка проверки синтаксиса (на скриншоте), и изменение полей региона не происходит.



При этом регион может присутствовать в геобазе именно с апострофом, поэтому, если его убрать, то автоопределение для этого региона перестаёт работать.
Таким образом, необходимо сделать возможным использование в коде региона апострофа.
Для этого в файле /bitrix/modules/intec.regionality/classes/models/Region.php нужно в методе rules() найти строку:

'codeMatch' => [['code'], 'match', 'pattern' => '/^[A-Za-z0-9_` -]*$/'],

и заменить её на строку:

'codeMatch' => [['code'], 'match', 'pattern' => '/^[A-Za-z0-9_`\' -]*$/'],

В ней в регулярное выражение добавлен символ апостофа — \' (через экранирующий символ).

Наши решения