1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-13 20:05:19 +02:00

fix: Добавлено создание командного файла для запуска приложения;

Переименован запускаемый файл Приложение.os -> app.os из-за проблемы с кодировкой командного файла.
This commit is contained in:
Artem Kuznetsov
2024-07-19 10:37:39 +03:00
parent c5c85398fd
commit eff7406c6d
12 changed files with 369 additions and 365 deletions

View File

@@ -41,12 +41,12 @@ jobs:
- name: Собрать бинарник - name: Собрать бинарник
run: | run: |
cd ./src/ru/cli cd ./src/ru/cli
oscript -make core/Classes/Приложение.os oint oscript -make core/Classes/app.os oint
- name: Собрать exe - name: Собрать exe
run: | run: |
cd ./src/ru/cli cd ./src/ru/cli
oscript -make core/Classes/Приложение.os oint.exe oscript -make core/Classes/app.os oint.exe
- name: Записать артефакт - name: Записать артефакт
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4

View File

@@ -41,12 +41,12 @@ jobs:
- name: Собрать бинарник - name: Собрать бинарник
run: | run: |
cd ./src/en/cli cd ./src/en/cli
oscript -make core/Classes/Приложение.os oint oscript -make core/Classes/app.os oint
- name: Собрать exe - name: Собрать exe
run: | run: |
cd ./src/en/cli cd ./src/en/cli
oscript -make core/Classes/Приложение.os oint.exe oscript -make core/Classes/app.os oint.exe
- name: Записать артефакт - name: Записать артефакт
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4

View File

@@ -57,12 +57,12 @@ jobs:
- name: Собрать бинарник - name: Собрать бинарник
run: | run: |
cd ./src/ru/cli cd ./src/ru/cli
oscript -make core/Classes/Приложение.os oint oscript -make core/Classes/app.os oint
- name: Собрать exe - name: Собрать exe
run: | run: |
cd ./src/ru/cli cd ./src/ru/cli
oscript -make core/Classes/Приложение.os oint.exe oscript -make core/Classes/app.os oint.exe
- name: Записать артефакт - name: Записать артефакт
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@@ -266,6 +266,7 @@ jobs:
--doc "${{ env.json_Document }}" \ --doc "${{ env.json_Document }}" \
--keyboard "" \ --keyboard "" \
--parsemode "" \ --parsemode "" \
--filename "" \

View File

@@ -57,12 +57,12 @@ jobs:
- name: Собрать бинарник - name: Собрать бинарник
run: | run: |
cd ./src/en/cli cd ./src/en/cli
oscript -make core/Classes/Приложение.os oint oscript -make core/Classes/app.os oint
- name: Собрать exe - name: Собрать exe
run: | run: |
cd ./src/en/cli cd ./src/en/cli
oscript -make core/Classes/Приложение.os oint.exe oscript -make core/Classes/app.os oint.exe
- name: Записать артефакт - name: Записать артефакт
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@@ -266,6 +266,7 @@ jobs:
--doc "${{ env.json_Document }}" \ --doc "${{ env.json_Document }}" \
--keyboard "" \ --keyboard "" \
--parsemode "" \ --parsemode "" \
--filename "" \

View File

@@ -813,7 +813,7 @@
ТЗСловаря.Сортировать("Длина УБЫВ"); ТЗСловаря.Сортировать("Длина УБЫВ");
МассивМодулейДляПеревода = Новый Массив; МассивМодулейДляПеревода = Новый Массив;
МассивМодулейДляПеревода.Добавить("./src/" + ТекущийЯзык + "/cli/core/Classes/Приложение.os"); МассивМодулейДляПеревода.Добавить("./src/" + ТекущийЯзык + "/cli/core/Classes/app.os");
МассивМодулейДляПеревода.Добавить("./src/" + ТекущийЯзык + "/cli/help/Modules/Справка.os"); МассивМодулейДляПеревода.Добавить("./src/" + ТекущийЯзык + "/cli/help/Modules/Справка.os");
Для Каждого ПереводимыйМодуль Из МассивМодулейДляПеревода Цикл Для Каждого ПереводимыйМодуль Из МассивМодулейДляПеревода Цикл

View File

@@ -131,12 +131,12 @@
| - name: Собрать бинарник | - name: Собрать бинарник
| run: | | run: |
| cd ./src/ru/cli | cd ./src/ru/cli
| oscript -make core/Classes/Приложение.os oint | oscript -make core/Classes/app.os oint
| |
| - name: Собрать exe | - name: Собрать exe
| run: | | run: |
| cd ./src/ru/cli | cd ./src/ru/cli
| oscript -make core/Classes/Приложение.os oint.exe | oscript -make core/Classes/app.os oint.exe
| |
| - name: Записать артефакт | - name: Записать артефакт
| uses: actions/upload-artifact@v4 | uses: actions/upload-artifact@v4

View File

@@ -131,12 +131,12 @@
| - name: Собрать бинарник | - name: Собрать бинарник
| run: | | run: |
| cd ./src/en/cli | cd ./src/en/cli
| oscript -make core/Classes/Приложение.os oint | oscript -make core/Classes/app.os oint
| |
| - name: Собрать exe | - name: Собрать exe
| run: | | run: |
| cd ./src/en/cli | cd ./src/en/cli
| oscript -make core/Classes/Приложение.os oint.exe | oscript -make core/Classes/app.os oint.exe
| |
| - name: Записать артефакт | - name: Записать артефакт
| uses: actions/upload-artifact@v4 | uses: actions/upload-artifact@v4

View File

@@ -25,7 +25,7 @@
СтруктураРус.Вставить("База" , "OpenIntegrations"); СтруктураРус.Вставить("База" , "OpenIntegrations");
СтруктураРус.Вставить("ПутьКEDT", ПутьКРепозиторию + "\src\ru\OPI"); СтруктураРус.Вставить("ПутьКEDT", ПутьКРепозиторию + "\src\ru\OPI");
СтруктураРус.Вставить("ПутьOS" , ПутьКРепозиторию + "\src\ru\OInt"); СтруктураРус.Вставить("ПутьOS" , ПутьКРепозиторию + "\src\ru\OInt");
СтруктураРус.Вставить("ПутьCLI" , ПутьКРепозиторию + "\src\ru\cli\core\Classes\Приложение.os"); СтруктураРус.Вставить("ПутьCLI" , ПутьКРепозиторию + "\src\ru\cli\core\Classes\app.os");
СтруктураРус.Вставить("ПутьISS" , ПутьКРепозиторию + "\service\iss\ru.iss"); СтруктураРус.Вставить("ПутьISS" , ПутьКРепозиторию + "\service\iss\ru.iss");
СтруктураРус.Вставить("Префикс" , "ru"); СтруктураРус.Вставить("Префикс" , "ru");
@@ -33,7 +33,7 @@
СтруктураАнг.Вставить("База" , "OpenIntegrations_Eng"); СтруктураАнг.Вставить("База" , "OpenIntegrations_Eng");
СтруктураАнг.Вставить("ПутьКEDT", ПутьКРепозиторию + "\src\en\OPI"); СтруктураАнг.Вставить("ПутьКEDT", ПутьКРепозиторию + "\src\en\OPI");
СтруктураАнг.Вставить("ПутьOS" , ПутьКРепозиторию + "\src\en\OInt"); СтруктураАнг.Вставить("ПутьOS" , ПутьКРепозиторию + "\src\en\OInt");
СтруктураАнг.Вставить("ПутьCLI" , ПутьКРепозиторию + "\src\en\cli\core\Classes\Приложение.os"); СтруктураАнг.Вставить("ПутьCLI" , ПутьКРепозиторию + "\src\en\cli\core\Classes\app.os");
СтруктураАнг.Вставить("ПутьISS" , ПутьКРепозиторию + "\service\iss\en.iss"); СтруктураАнг.Вставить("ПутьISS" , ПутьКРепозиторию + "\service\iss\en.iss");
СтруктураАнг.Вставить("Префикс" , "en"); СтруктураАнг.Вставить("Префикс" , "en");

View File

@@ -1,350 +1,350 @@
#Использовать cmdline #Использовать cmdline
#Использовать oint #Использовать oint
#Использовать "../../tools" #Использовать "../../tools"
#Использовать "../../help" #Использовать "../../help"
#Использовать "../../data" #Использовать "../../data"
Перем Версия; // Версия программы Перем Версия; // Версия программы
Перем Отладка; // Флаг вывода отладочной информации Перем Отладка; // Флаг вывода отладочной информации
Перем Тестирование; // Флаг отключения отправки данных после обработки Перем Тестирование; // Флаг отключения отправки данных после обработки
Перем Парсер; // Объект парсера входящих данных Перем Парсер; // Объект парсера входящих данных
Перем ОбъектОПИ; // Объект работы с методами ОПИ Перем ОбъектОПИ; // Объект работы с методами ОПИ
Перем ФайлВывода; // Путь перенаправления вывода в файл Перем ФайлВывода; // Путь перенаправления вывода в файл
Перем ТаблицаПараметров; // Таблица параметров текущей библиотеки Перем ТаблицаПараметров; // Таблица параметров текущей библиотеки
Перем ТекущаяКоманда; // Имя текущей команды Перем ТекущаяКоманда; // Имя текущей команды
Перем Команды; // Список всех доступных команд Перем Команды; // Список всех доступных команд
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
#Область Основные #Область Основные
Процедура ОсновнойОбработчик() Процедура ОсновнойОбработчик()
Отладка = Ложь; Отладка = Ложь;
Тестирование = Ложь; Тестирование = Ложь;
Парсер = Новый ПарсерАргументовКоманднойСтроки(); Парсер = Новый ПарсерАргументовКоманднойСтроки();
ОбъектОПИ = Новый СоставБиблиотеки(); ОбъектОПИ = Новый СоставБиблиотеки();
Версия = ОбъектОПИ.ПолучитьВерсию(); Версия = ОбъектОПИ.ПолучитьВерсию();
Команды = ОбъектОПИ.ПолучитьСоответствиеКомандМодулей(); Команды = ОбъектОПИ.ПолучитьСоответствиеКомандМодулей();
ОпределитьТекущуюКоманду(); ОпределитьТекущуюКоманду();
СформироватьКоманду(); СформироватьКоманду();
Результат = Парсер.Разобрать(АргументыКоманднойСтроки); Результат = Парсер.Разобрать(АргументыКоманднойСтроки);
ВыполнитьОбработкуКоманды(Результат); ВыполнитьОбработкуКоманды(Результат);
КонецПроцедуры КонецПроцедуры
Процедура ОпределитьТекущуюКоманду() Процедура ОпределитьТекущуюКоманду()
Если АргументыКоманднойСтроки.Количество() > 0 Тогда Если АргументыКоманднойСтроки.Количество() > 0 Тогда
ТекущаяКоманда = АргументыКоманднойСтроки[0]; ТекущаяКоманда = АргументыКоманднойСтроки[0];
Иначе Иначе
ТекущаяКоманда = Неопределено; ТекущаяКоманда = Неопределено;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура СформироватьКоманду() Процедура СформироватьКоманду()
Если ТекущаяКоманда = Неопределено Тогда Если ТекущаяКоманда = Неопределено Тогда
Справка.ВывестиНачальнуюСтраницу(Команды, Версия); Справка.ВывестиНачальнуюСтраницу(Команды, Версия);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Команда = Парсер.ОписаниеКоманды(ТекущаяКоманда); Команда = Парсер.ОписаниеКоманды(ТекущаяКоманда);
ТаблицаПараметров = ОбъектОПИ.ПолучитьСостав(ТекущаяКоманда); ТаблицаПараметров = ОбъектОПИ.ПолучитьСостав(ТекущаяКоманда);
Если Не ТаблицаПараметров = Неопределено Тогда Если Не ТаблицаПараметров = Неопределено Тогда
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод"); Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "Метод");
ДобавитьПараметрыКоманды(Парсер, Команда); ДобавитьПараметрыКоманды(Парсер, Команда);
Парсер.ДобавитьПараметрФлагКоманды(Команда, "--help"); Парсер.ДобавитьПараметрФлагКоманды(Команда, "--help");
Парсер.ДобавитьПараметрФлагКоманды(Команда, "--debug"); Парсер.ДобавитьПараметрФлагКоманды(Команда, "--debug");
Парсер.ДобавитьПараметрФлагКоманды(Команда, "--test"); Парсер.ДобавитьПараметрФлагКоманды(Команда, "--test");
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "--out"); Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "--out");
Парсер.ДобавитьКоманду(Команда); Парсер.ДобавитьКоманду(Команда);
Иначе Иначе
Справка.ВывестиСообщениеИсключения("Команда"); Справка.ВывестиСообщениеИсключения("Команда");
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура ВыполнитьОбработкуКоманды(Знач Данные) Процедура ВыполнитьОбработкуКоманды(Знач Данные)
ТекущаяКоманда = Данные["Команда"]; ТекущаяКоманда = Данные["Команда"];
Параметры = Данные["ЗначенияПараметров"]; Параметры = Данные["ЗначенияПараметров"];
Вывод = ""; Вывод = "";
УстановитьРежимОтладки(Параметры); УстановитьРежимОтладки(Параметры);
УстановитьРежимТеста(Параметры); УстановитьРежимТеста(Параметры);
УстановитьФайлВывода(Параметры); УстановитьФайлВывода(Параметры);
ВывестиДопИнформацию(Параметры); ВывестиДопИнформацию(Параметры);
Попытка Попытка
Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Параметры); Вывод = ПолучитьРезультатОбработки(ТекущаяКоманда, Параметры);
Если ЗначениеЗаполнено(Вывод) Тогда Если ЗначениеЗаполнено(Вывод) Тогда
ОбработатьВыводJSON(Вывод); ОбработатьВыводJSON(Вывод);
СообщитьРезультат(Вывод, СтатусСообщения.Внимание); СообщитьРезультат(Вывод, СтатусСообщения.Внимание);
КонецЕсли; КонецЕсли;
Исключение Исключение
ОбработатьОшибочныйВывод(Вывод, ErrorInfo()); ОбработатьОшибочныйВывод(Вывод, ErrorInfo());
КонецПопытки; КонецПопытки;
КонецПроцедуры КонецПроцедуры
Функция ПолучитьРезультатОбработки(Знач Команда, Знач Параметры) Функция ПолучитьРезультатОбработки(Знач Команда, Знач Параметры)
Модуль = Команды[Команда]; Модуль = Команды[Команда];
Метод = Параметры["Метод"]; Метод = Параметры["Метод"];
Ответ = "The function returned an empty value."; Ответ = "The function returned an empty value.";
ЧислоСтандартныхПараметров = 4; ЧислоСтандартныхПараметров = 4;
Если Не ЗначениеЗаполнено(Метод) Или Метод = "--help" Тогда Если Не ЗначениеЗаполнено(Метод) Или Метод = "--help" Тогда
Справка.ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров); Справка.ВывестиСправкуПоМетодам(Команда, ТаблицаПараметров);
КонецЕсли; КонецЕсли;
ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод)); ОтборКоманды = Новый Структура("МетодПоиска", вРег(Метод));
ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды); ПараметрыМетода = ТаблицаПараметров.НайтиСтроки(ОтборКоманды);
Если Параметры.Количество() = ЧислоСтандартныхПараметров Или Параметры["--help"] Тогда Если Параметры.Количество() = ЧислоСтандартныхПараметров Или Параметры["--help"] Тогда
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода); Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода);
КонецЕсли; КонецЕсли;
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод); ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
Если Отладка Или Тестирование Тогда Если Отладка Или Тестирование Тогда
Сообщить(ТекстВыполнения, СтатусСообщения.Внимание); Сообщить(ТекстВыполнения, СтатусСообщения.Внимание);
КонецЕсли; КонецЕсли;
Если Не Тестирование Тогда Если Не Тестирование Тогда
Выполнить(ТекстВыполнения); Выполнить(ТекстВыполнения);
КонецЕсли; КонецЕсли;
Возврат Ответ; Возврат Ответ;
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
#Область Вспомогательные #Область Вспомогательные
Процедура ДобавитьПараметрыКоманды(Парсер, Команда); Процедура ДобавитьПараметрыКоманды(Парсер, Команда);
Параметр_ = "Параметр"; Параметр_ = "Параметр";
ТаблицаДляИспользования = ТаблицаПараметров.Скопировать(, Параметр_); ТаблицаДляИспользования = ТаблицаПараметров.Скопировать(, Параметр_);
ТаблицаДляИспользования.Свернуть(Параметр_); ТаблицаДляИспользования.Свернуть(Параметр_);
МассивПараметров = ТаблицаДляИспользования.ВыгрузитьКолонку(Параметр_); МассивПараметров = ТаблицаДляИспользования.ВыгрузитьКолонку(Параметр_);
Для Каждого Параметр Из МассивПараметров Цикл Для Каждого Параметр Из МассивПараметров Цикл
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, Параметр); Парсер.ДобавитьИменованныйПараметрКоманды(Команда, Параметр);
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Процедура ОбработатьВыводJSON(Вывод) Процедура ОбработатьВыводJSON(Вывод)
Если ТипЗнч(Вывод) = Тип("Структура") Если ТипЗнч(Вывод) = Тип("Структура")
Или ТипЗнч(Вывод) = Тип("Соответствие") Или ТипЗнч(Вывод) = Тип("Соответствие")
Или ТипЗнч(Вывод) = Тип("Массив") Тогда Или ТипЗнч(Вывод) = Тип("Массив") Тогда
Вывод = OPI_Tools.JSONString(Вывод); Вывод = OPI_Tools.JSONString(Вывод);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода, Знач Модуль, Знач Метод) Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода, Знач Модуль, Знач Метод)
ТекстВыполнения = ""; ТекстВыполнения = "";
СтрокаВызова = Модуль + "." + Метод + "("; СтрокаВызова = Модуль + "." + Метод + "(";
Счетчик = 0; Счетчик = 0;
Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
ИмяПараметра = НеобходимыйПараметр.Параметр; ИмяПараметра = НеобходимыйПараметр.Параметр;
ЗначениеПараметра = ПереданныеПараметры.Получить(ИмяПараметра); ЗначениеПараметра = ПереданныеПараметры.Получить(ИмяПараметра);
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
ИмяПараметра = "Параметр" + СтрЗаменить(ИмяПараметра, "--", "_"); ИмяПараметра = "Параметр" + СтрЗаменить(ИмяПараметра, "--", "_");
ТекстВыполнения = ТекстВыполнения ТекстВыполнения = ТекстВыполнения
+ Символы.ПС + Символы.ПС
+ ИмяПараметра + ИмяПараметра
+ " = """ + " = """
+ СтрЗаменить(ЗначениеПараметра, """", """""") + СтрЗаменить(ЗначениеПараметра, """", """""")
+ """;"; + """;";
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", "; СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
Счетчик = Счетчик + 1; Счетчик = Счетчик + 1;
Иначе Иначе
СтрокаВызова = СтрокаВызова + " , "; СтрокаВызова = СтрокаВызова + " , ";
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
ЛишниеСимволы = 2; ЛишниеСимволы = 2;
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы); СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
СтрокаВызова = СтрокаВызова + ");"; СтрокаВызова = СтрокаВызова + ");";
СтрокаВызова = "Ответ = " + СтрокаВызова; СтрокаВызова = "Ответ = " + СтрокаВызова;
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова; ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
Возврат ТекстВыполнения; Возврат ТекстВыполнения;
КонецФункции КонецФункции
Процедура УстановитьРежимОтладки(Знач Параметры) Процедура УстановитьРежимОтладки(Знач Параметры)
Если Параметры["--debug"] Тогда Если Параметры["--debug"] Тогда
Отладка = Истина; Отладка = Истина;
Иначе Иначе
Отладка = Ложь; Отладка = Ложь;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура УстановитьРежимТеста(Знач Параметры) Процедура УстановитьРежимТеста(Знач Параметры)
Если Параметры["--test"] Тогда Если Параметры["--test"] Тогда
Тестирование = Истина; Тестирование = Истина;
Иначе Иначе
Тестирование = Ложь; Тестирование = Ложь;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура УстановитьФайлВывода(Знач Параметры) Процедура УстановитьФайлВывода(Знач Параметры)
Вывод = Параметры["--out"]; Вывод = Параметры["--out"];
Если ЗначениеЗаполнено(Вывод) Тогда Если ЗначениеЗаполнено(Вывод) Тогда
ФайлВывода = Вывод; ФайлВывода = Вывод;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура ВывестиДопИнформацию(Параметры) Процедура ВывестиДопИнформацию(Параметры)
Если Отладка Или Тестирование Тогда Если Отладка Или Тестирование Тогда
Для каждого ВводныйПараметр Из Параметры Цикл Для каждого ВводныйПараметр Из Параметры Цикл
Сообщить(ВводныйПараметр.Ключ + " : " + ВводныйПараметр.Значение); Сообщить(ВводныйПараметр.Ключ + " : " + ВводныйПараметр.Значение);
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура ОбработатьОшибочныйВывод(Вывод, ErrorInfo) Процедура ОбработатьОшибочныйВывод(Вывод, ErrorInfo)
Информация = ""; Информация = "";
Если ЗначениеЗаполнено(Вывод) Тогда Если ЗначениеЗаполнено(Вывод) Тогда
Если Отладка Или Тестирование Тогда Если Отладка Или Тестирование Тогда
Информация = ПодробноеПредставлениеОшибки(ErrorInfo); Информация = ПодробноеПредставлениеОшибки(ErrorInfo);
КонецЕсли; КонецЕсли;
СообщитьРезультат(Вывод); СообщитьРезультат(Вывод);
Иначе Иначе
Если Отладка Или Тестирование Тогда Если Отладка Или Тестирование Тогда
Информация = ПодробноеПредставлениеОшибки(ErrorInfo); Информация = ПодробноеПредставлениеОшибки(ErrorInfo);
Иначе Иначе
Информация = BriefErrorDescription(ErrorInfo); Информация = BriefErrorDescription(ErrorInfo);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Справка.ВывестиСообщениеИсключения(Информация); Справка.ВывестиСообщениеИсключения(Информация);
КонецПроцедуры КонецПроцедуры
Процедура СообщитьРезультат(Знач Текст, Знач Статус = "") Процедура СообщитьРезультат(Знач Текст, Знач Статус = "")
Если Не ЗначениеЗаполнено(Статус) Тогда Если Не ЗначениеЗаполнено(Статус) Тогда
Статус = СтатусСообщения.БезСтатуса; Статус = СтатусСообщения.БезСтатуса;
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(ФайлВывода) Тогда Если ЗначениеЗаполнено(ФайлВывода) Тогда
Текст = ЗаписатьЗначениеВФайл(Текст, ФайлВывода); Текст = ЗаписатьЗначениеВФайл(Текст, ФайлВывода);
ИначеЕсли ТипЗнч(Текст) = Тип("ДвоичныеДанные") Тогда ИначеЕсли ТипЗнч(Текст) = Тип("ДвоичныеДанные") Тогда
Текст = "It seems that binary data was returned in the response! " Текст = "It seems that binary data was returned in the response! "
+ "Next time, use the --out option to specify the path for saving them"; + "Next time, use the --out option to specify the path for saving them";
Статус = СтатусСообщения.Информация; Статус = СтатусСообщения.Информация;
Иначе Иначе
Текст = Строка(Текст); Текст = Строка(Текст);
КонецЕсли; КонецЕсли;
Сообщить(Текст, Статус); Сообщить(Текст, Статус);
КонецПроцедуры КонецПроцедуры
Функция ЗаписатьЗначениеВФайл(Знач Значение, Знач Путь) Функция ЗаписатьЗначениеВФайл(Знач Значение, Знач Путь)
СтандартнаяЕдиница = 1024; СтандартнаяЕдиница = 1024;
ЕдиницаДанных = СтандартнаяЕдиница * СтандартнаяЕдиница; ЕдиницаДанных = СтандартнаяЕдиница * СтандартнаяЕдиница;
Значение = ?(ТипЗнч(Значение) = Тип("ДвоичныеДанные"), Значение, Строка(Значение)); Значение = ?(ТипЗнч(Значение) = Тип("ДвоичныеДанные"), Значение, Строка(Значение));
Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
Значение.Записать(Путь); Значение.Записать(Путь);
Иначе Иначе
ВозможныйФайл = Новый Файл(Значение); ВозможныйФайл = Новый Файл(Значение);
Если ВозможныйФайл.Существует() Тогда Если ВозможныйФайл.Существует() Тогда
Путь = Значение; Путь = Значение;
Иначе Иначе
ТекстовыйДокумент = Новый ТекстовыйДокумент(); ТекстовыйДокумент = Новый ТекстовыйДокумент();
ТекстовыйДокумент.УстановитьТекст(Значение); ТекстовыйДокумент.УстановитьТекст(Значение);
ТекстовыйДокумент.Записать(Путь); ТекстовыйДокумент.Записать(Путь);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
ЗаписанныйФайл = Новый Файл(Путь); ЗаписанныйФайл = Новый Файл(Путь);
Если ЗаписанныйФайл.Существует() Тогда Если ЗаписанныйФайл.Существует() Тогда
Возврат "File (Size " Возврат "File (Size "
+ Строка(Окр(ЗаписанныйФайл.Размер() / ЕдиницаДанных, 3)) + Строка(Окр(ЗаписанныйФайл.Размер() / ЕдиницаДанных, 3))
+ " MB) has been written to " + " MB) has been written to "
+ ЗаписанныйФайл.ПолноеИмя; + ЗаписанныйФайл.ПолноеИмя;
Иначе Иначе
ВызватьИсключение "The file was not written! Use the --debug flag for additional information"; ВызватьИсключение "The file was not written! Use the --debug flag for additional information";
КонецЕсли; КонецЕсли;
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
Попытка Попытка
ОсновнойОбработчик(); ОсновнойОбработчик();
Исключение Исключение
Если Отладка Тогда Если Отладка Тогда
Информация = ErrorDescription(); Информация = ErrorDescription();
Иначе Иначе
Информация = BriefErrorDescription(ErrorInfo()); Информация = BriefErrorDescription(ErrorInfo());
КонецЕсли; КонецЕсли;
Справка.ВывестиСообщениеИсключения(Информация); Справка.ВывестиСообщениеИсключения(Информация);
КонецПопытки; КонецПопытки;

View File

@@ -11,3 +11,4 @@
.ЗависитОт("oint") .ЗависитОт("oint")
.ЗависитОт("cmdline") .ЗависитОт("cmdline")
.ЗависитОт("coloratos") .ЗависитОт("coloratos")
.ИсполняемыйФайл("core/Classes/app.os", "oint");

View File

@@ -11,3 +11,4 @@
.ЗависитОт("oint") .ЗависитОт("oint")
.ЗависитОт("cmdline") .ЗависитОт("cmdline")
.ЗависитОт("coloratos") .ЗависитОт("coloratos")
.ИсполняемыйФайл("core/Classes/app.os", "oint")