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

Доработки обработки запроса TCP

This commit is contained in:
Anton Titovets 2024-12-15 22:24:28 +03:00
parent ff3437a83b
commit 87ee38c8c7
6 changed files with 5894 additions and 5849 deletions
service/dictionaries
src/ru
OInt
core/Modules
tools/Modules/internal/Modules
OPI/src/CommonModules
OPI_TCP
OPI_Инструменты

File diff suppressed because it is too large Load Diff

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

@ -1084,6 +1084,22 @@
КонецФункции КонецФункции
Функция СклеитьДанные(Знач Данные, Знач Дополнение) Экспорт
Поток = Новый ПотокВПамяти();
Запись = Новый ЗаписьДанных(Поток);
Запись.Записать(Данные);
Запись.Записать(Дополнение);
Запись.Закрыть();
Результат = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Возврат Результат;
КонецФункции
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти

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

@ -1084,6 +1084,22 @@
КонецФункции КонецФункции
Функция СклеитьДанные(Знач Данные, Знач Дополнение) Экспорт
Поток = Новый ПотокВПамяти();
Запись = Новый ЗаписьДанных(Поток);
Запись.Записать(Данные);
Запись.Записать(Дополнение);
Запись.Закрыть();
Результат = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Возврат Результат;
КонецФункции
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти