1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-10 22:41:43 +02:00

CLI: Фикс сохранения ошибок в файл при заполненном out

This commit is contained in:
Anton Titovets
2025-01-05 16:21:16 +03:00
parent 12a07fb4d5
commit cc07d9b0f8
3 changed files with 43 additions and 18 deletions

View File

@@ -510,6 +510,7 @@
КонецЕсли;
ФайлРезультата = ПолучитьИмяВременногоФайла();
СтрокаЗапуска = Oint + " " + Библиотека + " " + Метод;
Для Каждого Опция Из Опции Цикл
@@ -526,6 +527,22 @@
ЗапуститьПриложение(СтрокаЗапуска + " --out """ + ФайлРезультата + """", , Истина);
Результат = ПрочестьРезультатCLI(ФайлРезультата);
ЗаписатьВызовCLI(Библиотека, Метод, Опции);
Попытка
УдалитьФайлы(ФайлРезультата);
Исключение
Сообщить("Не удалось удалить временный файл после теста!");
КонецПопытки;
Возврат Результат;
КонецФункции
Функция ПрочестьРезультатCLI(Знач ФайлРезультата)
Попытка
ЧтениеJSON = Новый ЧтениеJSON();
@@ -543,20 +560,12 @@
Результат = null;
КонецПопытки;
КонецПопытки;
ЗаписатьВызовCLI(Библиотека, Метод, Опции);
Попытка
УдалитьФайлы(ФайлРезультата);
Исключение
Сообщить("Не удалось удалить временный файл после теста!");
КонецПопытки;
Возврат Результат;
КонецПопытки;
Возврат Результат;
КонецФункции
#Область Проверки
Процедура Проверка_Пусто(Знач Результат) Экспорт

View File

@@ -73,7 +73,7 @@
Парсер.ДобавитьКоманду(Команда);
Иначе
Справка.ВывестиСообщениеИсключения("Команда");
Справка.ВывестиСообщениеИсключения("Команда", ФайлВывода);
КонецЕсли;
КонецПроцедуры
@@ -118,7 +118,7 @@
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
Если Не ЗначениеЗаполнено(ПараметрыМетода) Тогда
Справка.ВывестиСообщениеИсключения("Метод");
Справка.ВывестиСообщениеИсключения("Метод", ФайлВывода);
КонецЕсли;
Если Параметры.Количество() = ЧислоСтандартныхПараметров Или Параметры["--help"] Тогда
@@ -285,7 +285,7 @@
КонецЕсли;
Справка.ВывестиСообщениеИсключения(Информация);
Справка.ВывестиСообщениеИсключения(Информация, ФайлВывода);
КонецПроцедуры
@@ -380,7 +380,7 @@
Информация = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
КонецЕсли;
Справка.ВывестиСообщениеИсключения(Информация);
Справка.ВывестиСообщениеИсключения(Информация, ФайлВывода);
КонецПопытки;

View File

@@ -158,7 +158,9 @@
КонецПроцедуры
Процедура ВывестиСообщениеИсключения(Знач Причина) Экспорт
Процедура ВывестиСообщениеИсключения(Знач Причина, Знач ФайлВывода = "") Экспорт
ФайлВывода = Строка(ФайлВывода);
Если Причина = "Команда" Тогда
Текст = "Некорректная команда! Проверьте правильность ввода";
@@ -176,6 +178,20 @@
Текст = Символы.ПС + Текст + Символы.ПС;
Сообщить(Текст, СтатусСообщения.ОченьВажное);
Если ЗначениеЗаполнено(ФайлВывода) Тогда
ТекстДД = ПолучитьДвоичныеДанныеИзСтроки(Текст);
Попытка
ТекстДД.Записать(ФайлВывода);
Сообщить("Сообщение об ошибке сохранено в файл: " + ФайлВывода, СтатусСообщения.Внимание);
Исключение
Сообщить("Не удалось сохранить ошибку в файл вывода: " + ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;
КонецЕсли;
ЗавершитьРаботу(Код);
КонецПроцедуры