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

Дополнение словаря

This commit is contained in:
Anton Titovets
2024-12-14 23:21:48 +03:00
parent fe13186e2b
commit 9c0a8822ef
4 changed files with 5984 additions and 5857 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -93,16 +93,26 @@
// Параметры:
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
// МаксимальныйРазмер - Число - Максимальный размер данных (байт). 0 > без ограничений - size
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
//
// Возвращаемое значение:
// ДвоичныеДанные - Полученные данные
Функция ПрочитатьДвоичныеДанные(Знач Соединение, Знач МаксимальныйРазмер = 0, Знач Таймаут = 5000) Экспорт
Функция ПрочитатьДвоичныеДанные(Знач Соединение
, Знач МаксимальныйРазмер = 0
, Знач Маркер = ""
, Знач Таймаут = 5000) Экспорт
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
OPI_ПреобразованиеТипов.ПолучитьЧисло(МаксимальныйРазмер);
Данные = Соединение.Read(МаксимальныйРазмер, Таймаут);
Если ТипЗнч(Маркер) = Тип("Строка") Тогда
Маркер = ПолучитьДвоичныеДанныеИзСтроки(Маркер);
Иначе
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Маркер);
КонецЕсли;
Данные = Соединение.Read(МаксимальныйРазмер, Маркер, Таймаут);
Возврат Данные;
@@ -118,15 +128,19 @@
// Параметры:
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
// Кодировка - Строка - Кодировка преобразования данных в строку - enc
// Маркер - Строка, ДвоичныеДанные - Маркер конца сообщения. Пусто > без маркера - marker
// Таймаут - Число - Таймаут ожидания данных (мс). 0 > без ограничений - timeout
//
// Возвращаемое значение:
// Строка - Полученные данные в виде строки
Функция ПрочитатьСтроку(Знач Соединение, Знач Кодировка = "UTF-8", Знач Таймаут = 5000) Экспорт
Функция ПрочитатьСтроку(Знач Соединение
, Знач Кодировка = "UTF-8"
, Знач Маркер = ""
, Знач Таймаут = 5000) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
Данные = ПрочитатьДвоичныеДанные(Соединение, , Таймаут);
Данные = ПрочитатьДвоичныеДанные(Соединение, , Маркер, Таймаут);
Данные = ПолучитьСтрокуИзДвоичныхДанных(Данные, Кодировка);
Возврат Данные;

View File

@@ -2172,6 +2172,21 @@
#КонецОбласти
#Область TCP
Процедура TC_Клиент() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("TCP_Address", ПараметрыТеста);
TCP_ОткрытьСоединение(ПараметрыТеста);
TCP_ЗакрытьСоединение(ПараметрыТеста);
TCP_ПрочитатьДвоичныеДанные(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти
@@ -15650,6 +15665,75 @@
#КонецОбласти
#Область TCP
Процедура TCP_ОткрытьСоединение(ПараметрыФункции)
Адрес = ПараметрыФункции["TCP_Address"];
Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
Результат = Строка(Соединение); // SKIP
OPI_TCP.ЗакрытьСоединение(Соединение);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОткрытьСоединение", "TCP");
OPI_ПолучениеДанныхТестов.Проверка_Заполнено(Результат);
КонецПроцедуры
Процедура TCP_ЗакрытьСоединение(ПараметрыФункции)
Адрес = ПараметрыФункции["TCP_Address"];
Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
Результат = OPI_TCP.ЗакрытьСоединение(Соединение);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗакрытьСоединение", "TCP");
OPI_ПолучениеДанныхТестов.Проверка_Истина(Результат);
КонецПроцедуры
Процедура TCP_ПрочитатьДвоичныеДанные(ПараметрыФункции) Экспорт
Адрес = ПараметрыФункции["TCP_Address"];
Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
Сообщение = "Hello server!" + Символы.ПС;
Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
// Маркер конца сообщения для исключения ожидания конца таймаута
Маркер = Символы.ПС;
Результат = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , Маркер);
OPI_TCP.ЗакрытьСоединение(Соединение);
// END
Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПрочитатьДвоичныеДанные", "TCP");
OPI_ПолучениеДанныхТестов.Проверка_Строка(Результат, Сообщение);
Соединение = OPI_TCP.ОткрытьСоединение(Адрес);
OPI_TCP.ОтправитьДвоичныеДанные(Соединение, Данные);
Результат = OPI_TCP.ПрочитатьДвоичныеДанные(Соединение, , , 50000);
OPI_TCP.ЗакрытьСоединение(Соединение);
Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПрочитатьДвоичныеДанные (таймаут)", "TCP");
OPI_ПолучениеДанныхТестов.Проверка_Строка(Результат, Сообщение);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@@ -69,6 +69,7 @@
Разделы.Вставить("CDEK" , 5);
Разделы.Вставить("YandexMetrika" , 5);
Разделы.Вставить("S3" , 5);
Разделы.Вставить("TCP" , 5);
Возврат Разделы;
@@ -100,6 +101,7 @@
Разделы.Вставить("CDEK" , СтандартныеЗависимости);
Разделы.Вставить("YandexMetrika" , СтандартныеЗависимости);
Разделы.Вставить("S3" , СтандартныеЗависимости);
Разделы.Вставить("TCP" , СтандартныеЗависимости);
Возврат Разделы;
@@ -127,6 +129,7 @@
Сдэк = "CDEK";
Метрика = "YandexMetrika";
S3_ = "S3";
TCP = "TCP";
ТаблицаТестов = Новый ТаблицаЗначений;
ТаблицаТестов.Колонки.Добавить("Метод");
@@ -258,6 +261,7 @@
НовыйТест(ТаблицаТестов, "AWS_ОбщиеМетоды" , "Общие методы" , S3_);
НовыйТест(ТаблицаТестов, "AWS_РаботаСБакетами" , "Работа с бакетами" , S3_);
НовыйТест(ТаблицаТестов, "AWS_РаботаСОбъектами" , "Работа с объектами" , S3_);
НовыйТест(ТаблицаТестов, "TC_Клиент" , "TCP Клиент" , TCP);
Возврат ТаблицаТестов;
@@ -557,8 +561,14 @@
КонецПроцедуры
Процедура Проверка_Строка(Знач Результат) Экспорт
Процедура Проверка_Строка(Знач Результат, Знач ОбъектСравнения = "") Экспорт
ОжидаетЧто(Результат).ИмеетТип("Строка");
Если ЗначениеЗаполнено(ОбъектСравнения) Тогда
ОжидаетЧто(Результат).Равно(ОбъектСравнения);
КонецЕсли;
КонецПроцедуры
Процедура Проверка_ДвоичныеДанные(Знач Результат, Знач Размер = Неопределено) Экспорт
@@ -603,6 +613,18 @@
КонецПроцедуры
Процедура Проверка_Заполнено(Знач Результат) Экспорт
ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Истина);
КонецПроцедуры
Процедура Проверка_Истина(Знач Результат) Экспорт
ОжидаетЧто(Результат).Равно(Истина);
КонецПроцедуры
Процедура Проверка_ТелеграмИстина(Знач Результат) Экспорт
ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();