1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-29 21:57:16 +02:00

Реструктуризация CLI

This commit is contained in:
Anton Titovets 2025-02-02 11:02:15 +03:00
parent 45d08a1dca
commit d8957b8b01
5 changed files with 82 additions and 70 deletions

View File

@ -24,8 +24,9 @@
КаталогДополненийОпций = КаталогДополнений;
ЗаписатьНачалоФайла();
ЗаписатьПроцедуруСозданияОбъекта(Язык);
ЗаписатьФункциюОпределенияВерсии();
ЗаписатьФункциюОпределенияКоманд(Язык);
ЗаписатьФункциюОпределенияКоманд();
ЗаписатьВспомогательныеФункции();
МодульСоставаОПИ.Записать(ФайлСоставаОПИ);
@ -55,6 +56,8 @@
МодульСоставаОПИ.ДобавитьСтроку("#Использовать ""./internal""");
МодульСоставаОПИ.ДобавитьСтроку("");
МодульСоставаОПИ.ДобавитьСтроку("Перем СоответствиеКоманд;");
МодульСоставаОПИ.ДобавитьСтроку("");
КонецПроцедуры
@ -68,22 +71,30 @@
КонецПроцедуры
Процедура ЗаписатьФункциюОпределенияКоманд(ТекущийЯзык)
Процедура ЗаписатьПроцедуруСозданияОбъекта(ТекущийЯзык)
МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьСоответствиеКомандМодулей() Экспорт");
МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКомандМодулей = Новый Соответствие();");
МодульСоставаОПИ.ДобавитьСтроку("Процедура ПриСозданииОбъекта()");
МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКоманд = Новый Соответствие();");
ОпределитьСоответствиеМодулейКоманд(ТекущийЯзык);
Для Каждого КомандаМодуля Из СоответствиеМодулейКоманд Цикл
МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКомандМодулей.Вставить("""
МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКоманд.Вставить("""
+ КомандаМодуля.Значение
+ """, """
+ КомандаМодуля.Ключ
+ """);");
КонецЦикла;
МодульСоставаОПИ.ДобавитьСтроку("Возврат СоответствиеКомандМодулей;");
МодульСоставаОПИ.ДобавитьСтроку("КонецПроцедуры");
МодульСоставаОПИ.ДобавитьСтроку("");
КонецПроцедуры
Процедура ЗаписатьФункциюОпределенияКоманд()
МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьСоответствиеКомандМодулей() Экспорт");
МодульСоставаОПИ.ДобавитьСтроку("Возврат СоответствиеКоманд;");
МодульСоставаОПИ.ДобавитьСтроку("КонецФункции");
МодульСоставаОПИ.ДобавитьСтроку("");

View File

@ -110,6 +110,9 @@
Процедура ВыполнитьОбработкуGet(Контекст, Обработчик)
Запрос = Контекст.Запрос;
Параметры = Запрос.Параметры;
Контекст.Ответ.ЗаписатьКакJson(Обработчик);
КонецПроцедуры

View File

@ -4,7 +4,6 @@
#Использовать "../../tools"
#Использовать "../../help"
#Использовать "../../data"
#Использовать "internal"
Перем Версия; // Версия программы
Перем Отладка; // Флаг вывода отладочной информации
@ -127,7 +126,7 @@
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода);
КонецЕсли;
ТекстВыполнения = ОбработкаКоманд.СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
ТекстВыполнения = ОбъектОПИ.СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
Если Отладка Или Тестирование Тогда
Сообщить(ТекстВыполнения, СтатусСообщения.Внимание);

View File

@ -1,60 +0,0 @@
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода, Знач Модуль, Знач Метод) Экспорт
ТекстВыполнения = "";
СтрокаВызова = Модуль + "." + Метод + "(";
Счетчик = 0;
Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
ИмяПараметра = НеобходимыйПараметр.Параметр;
ЗначениеПараметра = ПереданныеПараметры.Получить(ИмяПараметра);
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
ИмяПараметра = "Параметр" + СтрЗаменить(ИмяПараметра, "--", "_");
ТекстВыполнения = ТекстВыполнения
+ Символы.ПС
+ ИмяПараметра
+ " = """
+ СтрЗаменить(ЗначениеПараметра, """", """""")
+ """;";
Если ТребуетсяОбработкаУправляющихПоследовательностей(ИмяПараметра, ЗначениеПараметра) Тогда
ТекстВыполнения = ТекстВыполнения + "
|OPI_Инструменты.ЗаменитьУправляющиеПоследовательности(" + ИмяПараметра + ");
|";
КонецЕсли;
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
Счетчик = Счетчик + 1;
Иначе
СтрокаВызова = СтрокаВызова + " , ";
КонецЕсли;
КонецЦикла;
ЛишниеСимволы = 2;
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
СтрокаВызова = СтрокаВызова + ");";
СтрокаВызова = "Ответ = " + СтрокаВызова;
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
Возврат ТекстВыполнения;
КонецФункции
Функция ТребуетсяОбработкаУправляющихПоследовательностей(Знач ИмяПараметра, Знач ЗначениеПараметра)
ЗначениеПараметраСокр = СокрЛП(ЗначениеПараметра);
ФайлПараметра = Новый Файл(ЗначениеПараметраСокр);
Возврат Не СтрНачинаетсяС(ЗначениеПараметраСокр, "{")
И Не СтрНачинаетсяС(ЗначениеПараметраСокр, "[")
И Не ФайлПараметра.Существует()
И Не ИмяПараметра = "Параметр_out";
КонецФункции

View File

@ -36,8 +36,6 @@
Возврат СоответствиеКомандМодулей;
КонецФункции
Функция ПолучитьСостав(Знач Команда) Экспорт
ТекущийСостав = Новый(Команда);
Возврат ТекущийСостав.ПолучитьСостав();
@ -64,3 +62,64 @@
Возврат ОбщаяТаблица;
КонецФункции
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода, Знач Модуль, Знач Метод) Экспорт
ТекстВыполнения = "";
СтрокаВызова = Модуль + "." + Метод + "(";
Счетчик = 0;
Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
ИмяПараметра = НеобходимыйПараметр.Параметр;
ЗначениеПараметра = ПереданныеПараметры.Получить(ИмяПараметра);
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
ИмяПараметра = "Параметр" + СтрЗаменить(ИмяПараметра, "--", "_");
ТекстВыполнения = ТекстВыполнения
+ Символы.ПС
+ ИмяПараметра
+ " = """
+ СтрЗаменить(ЗначениеПараметра, """", """""")
+ """;";
Если ТребуетсяОбработкаУправляющихПоследовательностей(ИмяПараметра, ЗначениеПараметра) Тогда
ТекстВыполнения = ТекстВыполнения + "
|OPI_Инструменты.ЗаменитьУправляющиеПоследовательности(" + ИмяПараметра + ");
|";
КонецЕсли;
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
Счетчик = Счетчик + 1;
Иначе
СтрокаВызова = СтрокаВызова + " , ";
КонецЕсли;
КонецЦикла;
ЛишниеСимволы = 2;
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
СтрокаВызова = СтрокаВызова + ");";
СтрокаВызова = "Ответ = " + СтрокаВызова;
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
Возврат ТекстВыполнения;
КонецФункции
Функция ТребуетсяОбработкаУправляющихПоследовательностей(Знач ИмяПараметра, Знач ЗначениеПараметра)
ЗначениеПараметраСокр = СокрЛП(ЗначениеПараметра);
ФайлПараметра = Новый Файл(ЗначениеПараметраСокр);
Возврат Не СтрНачинаетсяС(ЗначениеПараметраСокр, "{")
И Не СтрНачинаетсяС(ЗначениеПараметраСокр, "[")
И Не ФайлПараметра.Существует()
И Не ИмяПараметра = "Параметр_out";
КонецФункции