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

Проба proxy

This commit is contained in:
Anton Titovets
2025-01-28 19:32:19 +03:00
parent 5e242e06d9
commit 5448c16c48
4 changed files with 102 additions and 62 deletions

View File

@@ -3,6 +3,7 @@
#Использовать "../../tools"
#Использовать "../../help"
#Использовать "../../data"
#Использовать "internal"
Перем Версия; // Версия программы
Перем Отладка; // Флаг вывода отладочной информации
@@ -125,7 +126,7 @@
Справка.ВывестиСправкуПоПараметрам(ПараметрыМетода);
КонецЕсли;
ТекстВыполнения = СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
ТекстВыполнения = ОбработкаКоманд.СформироватьСтрокуВызоваМетода(Параметры, ПараметрыМетода, Модуль, Метод);
Если Отладка Или Тестирование Тогда
Сообщить(ТекстВыполнения, СтатусСообщения.Внимание);
@@ -174,55 +175,6 @@
КонецПроцедуры
Функция СформироватьСтрокуВызоваМетода(Знач ПереданныеПараметры, Знач ПараметрыМетода, Знач Модуль, Знач Метод)
ТекстВыполнения = "";
СтрокаВызова = Модуль + "." + Метод + "(";
Счетчик = 0;
Для Каждого НеобходимыйПараметр Из ПараметрыМетода Цикл
ИмяПараметра = НеобходимыйПараметр.Параметр;
ЗначениеПараметра = ПереданныеПараметры.Получить(ИмяПараметра);
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
ИмяПараметра = "Параметр" + СтрЗаменить(ИмяПараметра, "--", "_");
ТекстВыполнения = ТекстВыполнения
+ Символы.ПС
+ ИмяПараметра
+ " = """
+ СтрЗаменить(ЗначениеПараметра, """", """""")
+ """;";
Если ТребуетсяОбработкаУправляющихПоследовательностей(ИмяПараметра, ЗначениеПараметра) Тогда
ТекстВыполнения = ТекстВыполнения + "
|OPI_Инструменты.ЗаменитьУправляющиеПоследовательности(" + ИмяПараметра + ");
|";
КонецЕсли;
СтрокаВызова = СтрокаВызова + ИмяПараметра + ", ";
Счетчик = Счетчик + 1;
Иначе
СтрокаВызова = СтрокаВызова + " , ";
КонецЕсли;
КонецЦикла;
ЛишниеСимволы = 2;
СтрокаВызова = Лев(СтрокаВызова, СтрДлина(СтрокаВызова) - ЛишниеСимволы);
СтрокаВызова = СтрокаВызова + ");";
СтрокаВызова = "Ответ = " + СтрокаВызова;
ТекстВыполнения = ТекстВыполнения + Символы.ПС + СтрокаВызова;
Возврат ТекстВыполнения;
КонецФункции
Процедура УстановитьРежимОтладки(Знач Параметры)
Если Параметры["--debug"] Тогда
@@ -354,18 +306,6 @@
КонецФункции
Функция ТребуетсяОбработкаУправляющихПоследовательностей(Знач ИмяПараметра, Знач ЗначениеПараметра)
ФайлПараметра = Новый Файл(ЗначениеПараметра);
ЗначениеПараметраСокр = СокрЛП(ЗначениеПараметра);
Возврат Не СтрНачинаетсяС(ЗначениеПараметраСокр, "{")
И Не СтрНачинаетсяС(ЗначениеПараметраСокр, "[")
И Не ФайлПараметра.Существует()
И Не ИмяПараметра = "Параметр_out";
КонецФункции
#КонецОбласти
#КонецОбласти

View File

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

View File

@@ -0,0 +1,3 @@
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
КонецПроцедуры

View File

@@ -0,0 +1,37 @@
// CLI: proxy
#Использовать "internal"
#Использовать "oint"
#Область СлужебныйПрограммныйИнтерфейс
// Разложить JSON на параметры
// Показывает значения, которые можно получить из переданного JSON и возвращает
//
// Параметры:
// JSON - Строка - JSON данные - json
// МаксимальныйУровеньВложенности - Число - Ограничение на ур. вложенности разбора. На всю глубину по умолчанию - nesting
// ИмяПараметра - Строка - Имя поля для получения. Выводит весь список, если не указано - name
// Кодировка - Строка - Кодировка, в которой записаны JSON данные - enc
//
// Возвращаемое значение:
// Строка - пустая строка
Функция Запустить(Знач Порт, Знач Проект, Знач Пароль) Экспорт
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Проект);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
ВебСервер = Новый ВебСервер(Порт);
Обработчик = Новый ОбработчикЗапросов();
ВебСервер.ДобавитьОбработчикЗапросов(Обработчик, "ОсновнаяОбработка");
ВебСервер.Запустить();
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти