1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-31 22:05:13 +02:00

Обработка управляющих последовательностей для CLI

This commit is contained in:
Anton Titovets 2024-12-16 09:24:07 +03:00
parent 82750c9485
commit 5daa94d43b
3 changed files with 33 additions and 13 deletions

View File

@ -198,26 +198,19 @@
// Отправляет одиночный запрос на указанный адрес и получает ответ, используя стандартные настройки // Отправляет одиночный запрос на указанный адрес и получает ответ, используя стандартные настройки
// //
// Параметры: // Параметры:
// Адрес - Строка - Адрес и порт для подключения - address // Адрес - Строка - Адрес и порт для подключения - address
// Данные - Строка, ДвоичныеДанные - Данные или текст для отправки - data // Данные - Строка, ДвоичныеДанные - Данные или текст для отправки - data
// ОтветСтрокой - Булево - Признак получения ответа как строки - string // ОтветСтрокой - Булево - Признак получения ответа как строки - string
// Перенос - Булево - Завершить сообщение символом переноса строки - nl
// //
// Возвращаемое значение: // Возвращаемое значение:
// ДвоичныеДанные, Строка - Ответ на запрос // ДвоичныеДанные, Строка - Ответ на запрос
Функция ОбработатьЗапрос(Знач Адрес, Знач Данные = "", Знач ОтветСтрокой = Истина, Знач Перенос = Истина) Экспорт Функция ОбработатьЗапрос(Знач Адрес, Знач Данные = "", Знач ОтветСтрокой = Истина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина); OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина);
OPI_ПреобразованиеТипов.ПолучитьБулево(ОтветСтрокой); OPI_ПреобразованиеТипов.ПолучитьБулево(ОтветСтрокой);
OPI_ПреобразованиеТипов.ПолучитьБулево(Перенос);
Соединение = ОткрытьСоединение(Адрес); Соединение = ОткрытьСоединение(Адрес);
Результат = ОтправитьДвоичныеДанные(Соединение, Данные);
Если Перенос Тогда
Данные = OPI_Инструменты.СклеитьДанные(Данные, ПолучитьДвоичныеДанныеИзСтроки(Символы.ПС));
КонецЕсли;
Результат = ОтправитьДвоичныеДанные(Соединение, Данные);
Если Результат Тогда Если Результат Тогда

View File

@ -973,6 +973,23 @@
КонецПроцедуры КонецПроцедуры
Процедура ЗаменитьУправляющиеПоследовательности(Текст) Экспорт
СоответствиеСимволов = Новый Соответствие;
СоответствиеСимволов.Вставить("\n", Символы.ПС);
СоответствиеСимволов.Вставить("\r", Символы.ВК);
СоответствиеСимволов.Вставить("\f", Символы.ПФ);
СоответствиеСимволов.Вставить("\v", Символы.ВТаб);
Для Каждого Символ Из СоответствиеСимволов Цикл
Текст = СтрЗаменить(Текст, Символ.Ключ, Символ.Значение);
Текст = СтрЗаменить(Текст, "\" + Символ.Значение, Символ.Ключ);
КонецЦикла;
КонецПроцедуры
Функция ЧислоВСтроку(Знач Число) Экспорт Функция ЧислоВСтроку(Знач Число) Экспорт
Возврат СтрЗаменить(Строка(Число), Символы.НПП, ""); Возврат СтрЗаменить(Строка(Число), Символы.НПП, "");
КонецФункции КонецФункции

View File

@ -187,7 +187,17 @@
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
ИмяПараметра = "Параметр" + СтрЗаменить(ИмяПараметра, "--", "_"); ИмяПараметра = "Параметр" + СтрЗаменить(ИмяПараметра, "--", "_");
ФайлПараметра = Новый Файл(ЗначениеПараметра);
ЗначениеПараметраСокр = СокрЛП(ЗначениеПараметра);
Если Не СтрНачинаетсяС(ЗначениеПараметраСокр, "{")
И Не СтрНачинаетсяС(ЗначениеПараметраСокр, "[")
И Не ФайлПараметра.Существует() Тогда
OPI_Инструменты.ЗаменитьУправляющиеПоследовательности(ЗначениеПараметра);
КонецЕсли;
ТекстВыполнения = ТекстВыполнения ТекстВыполнения = ТекстВыполнения
+ Символы.ПС + Символы.ПС