HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...
Bug #986747
openПостоянная ошибка при работе с регулярным выражением. Код ошибки - 10311 (U_REGEX_STACK_OVERFLOW)
0%
Description
https://partners.v8.1c.ru/forum/t/2190637/m/2190637
https://bugboard.v8.1c.ru/error/000158037
Конфигурация ПО
8.3.23-25, отклонена
Проблема
Постоянная ошибка при работе с регулярным выражением. Код ошибки - 10311 (U_REGEX_STACK_OVERFLOW)
Воспроизведение
Открыть приложенную внешнюю обработку в управляемом клиентском приложении любой базы. Нажать Команда1. При этом на сервере выполнится код
Текст = РеквизитФормыВЗначение("Объект").ПолучитьМакет("текст").ПолучитьТекст();
Шабон = "(\d\d:\d\d)\.(\d+)-(\d+),([_ЁА-ЯA-Z\d\._#{}-]+),(\d+),((?:([\w\:]+)=(?:'\s*((?:''|[^'])*?)'|""\s*((?:""""|[^""])*)""|([^'""\n\r,]*))(?:,|\r|\n|$)+)*)";
Вхождения = СтрНайтиВсеПоРегулярномуВыражению("ф", Шабон, ИСТИНА, ЛОЖЬ);
Вхождения = СтрНайтиВсеПоРегулярномуВыражению(Текст, Шабон, ИСТИНА, ЛОЖЬ);
И появится системное окно ошибки
Ошибка при вызове метода контекста (СтрНайтиВсеПоРегулярномуВыражению)
{ВнешняяОбработка.ВнешняяОбработкаяяя1.Форма.Форма4.Форма(12)}:Вхождения = СтрНайтиВсеПоРегулярномуВыражению(Текст, Шабон, ИСТИНА, ЛОЖЬ);
{ВнешняяОбработка.ВнешняяОбработкаяяя1.Форма.Форма4.Форма(4)}:Тест();
по причине:
Ошибка при работе с регулярными выражениями. Код ошибки - 10311 (U_REGEX_STACK_OVERFLOW)
(\d\d:\d\d)\.(\d+)-(\d+),([_ЁА-ЯA-Z\d\._#{}-]+),(\d+),((?:([\w\:]+)=(?:'\s*((?:''|[^'])*?)'|"\s*((?:""|[^"])*)"|([^'"\n\r,]*))(?:,|\r|\n|$)+)*)
А ожидалось отсутствие ошибки. Или хотя бы внятное русско-язычное объяснение что не так с шаблоном.
Предположим, что шаблон слишком сложный для поиска в таком тексте. Тогда снова нажимаем Команда1. Появится системное окно ошибки уже на первом вызове СтрНайтиВсеПоРегулярномуВыражению, где текст наипростейший
Ошибка при вызове метода контекста (СтрНайтиВсеПоРегулярномуВыражению)
{ВнешняяОбработка.ВнешняяОбработкаяяя1.Форма.Форма4.Форма(11)}:Вхождения = СтрНайтиВсеПоРегулярномуВыражению("ф", Шабон, ИСТИНА, ЛОЖЬ);
{ВнешняяОбработка.ВнешняяОбработкаяяя1.Форма.Форма4.Форма(4)}:Тест();
по причине:
Ошибка при работе с регулярными выражениями. Код ошибки - 10311 (U_REGEX_STACK_OVERFLOW)
(\d\d:\d\d)\.(\d+)-(\d+),([_ЁА-ЯA-Z\d\._#{}-]+),(\d+),((?:([\w\:]+)=(?:'\s*((?:''|[^'])*?)'|"\s*((?:""|[^"])*)"|([^'"\n\r,]*))(?:,|\r|\n|$)+)*)
Все дальнейшие вызовы этого метода с таким шаблоном выдают ту же ошибку независимо от первого параметра.
Замечу что все опробованные мной отладчики и исполнители регулярных выражений (например regex101.com) проходят этот тест.
Files
Related issues
Updated by Сергей Старых 6 months ago
- Related to Bug #987524: Исправлена ошибка загрузки логов при выполнении на сервере на платформах 8.3.23-25+ added