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_`\' -]*$/'],
В ней в регулярное выражение добавлен символ апостофа —
\' (через экранирующий символ).
Наши решения