diff --git a/.gitignore b/.gitignore index 100d358..5bda540 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ exec.log bdd-log.xml *.ospx coverage/ +oscript_modules/ diff --git "a/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\260.os" "b/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\260.os" index 8c29b52..ae65d8d 100644 --- "a/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\260.os" +++ "b/src/\320\232\320\276\320\274\320\260\320\275\320\264\320\260.os" @@ -314,7 +314,28 @@ Исключение Инфо = ИнформацияОбОшибке(); - ВызватьИсключение Инфо.ПодробноеОписаниеОшибки(); + + // TODO код проверки на регулярку (ниже) убрать после выпуска релиза OneScript 1.0.21 + РегуляркаОшибкиПеременныхСреды = Новый РегулярноеВыражение("\(System\.ArgumentException\):[^:]+:.*HOME[^:]+:.*home"); + Если РегуляркаОшибкиПеременныхСреды.Совпадает(Инфо.Описание) Тогда + Лог.Предупреждение("Возникла ошибка, связанная с переменными среды при старте нового процесса + |В связи с багом в движке OneScript до версии 1.0.21 + |%1 + | + |Выполняю старт процесса без указания переменных среды.", Инфо.Описание); + + Лог.Отладка("Полное описание ошибки: + |%1", Инфо.ПодробноеОписаниеОшибки()); + + Если КодировкаВывода = Неопределено Тогда + Процесс = СоздатьПроцесс(СтрокаЗапуска, РабочийКаталог, ПерехватыватьПотоки, ПерехватыватьПотоки); + Иначе + Процесс = СоздатьПроцесс(СтрокаЗапуска, РабочийКаталог, ПерехватыватьПотоки, ПерехватыватьПотоки, КодировкаВывода); + КонецЕсли; + Иначе + ВызватьИсключение Инфо.ПодробноеОписаниеОшибки(); + КонецЕсли; + КонецПопытки; Процесс.Запустить();