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

Доработки по TCP серверу

This commit is contained in:
Anton Titovets
2024-12-20 16:22:15 +03:00
parent fee3d56347
commit 4550bc0cf6
6 changed files with 6184 additions and 5900 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -43,7 +43,7 @@
#Область ПрограммныйИнтерфейс
#Область TCPКлиент
#Область МетодыКлиента
// Открыть соединение !NOCLI
// Создает TCP соединение
@@ -228,4 +228,119 @@
#КонецОбласти
#Область МетодыСервера
// Запустить сервер !NOCLI
// Запускает TCP сервер на указанном порту
//
// Параметры:
// Порт - Число, Строка - Номер порта - port
//
// Возвращаемое значение:
// Строка, Произвольный - Объект сервера или сообщение об ошибке
Функция ЗапуститьСервер(Знач Порт) Экспорт
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
TCPСервер = OPI_Инструменты.ПолучитьКомпоненту("TCPServer");
TCPСервер.Port = Порт;
Сообщение = TCPСервер.Start();
Возврат ?(Сообщение = "Success", TCPСервер, Сообщение);
КонецФункции
// Остановить сервер !NOCLI
// Явно завершает процесс сервера
//
// Параметры:
// TCPСервер - Произвольный - Объект TCP сервера - server
//
// Возвращаемое значение:
// Строка - Сообщение о завершении
Функция ОстановитьСервер(Знач TCPСервер) Экспорт
Сообщение = TCPСервер.Stop();
Возврат Сообщение;
КонецФункции
// Ожидать подключения !NOCLI
// Ожидает подключение в течении указанного времени
//
// Примечание:
// Если список подключений не пуст, то ожидание конца таймаута не происходит
//
// Параметры:
// TCPСервер - Произвольный - Объект TCP сервера - server
// Таймаут - Строка, Число - Таймаут ожидания подключений - timeout
//
// Возвращаемое значение:
// Массив Из Строка - Массив адресов активных подключений
Функция ОжидатьПодключения(Знач TCPСервер, Знач Таймаут = 10) Экспорт
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
СписокПодключений = TCPСервер.Await(Таймаут);
Если ЗначениеЗаполнено(СписокПодключений) Тогда
МассивПодключений = OPI_Инструменты.JsonВСтруктуру(СписокПодключений);
Иначе
МассивПодключений = Новый Массив;
КонецЕсли;
Возврат МассивПодключений;
КонецФункции
// Получить данные !NOCLI
// Получает содержимое сообщения соединения из списка активных соединений
//
// Параметры:
// TCPСервер - Произвольный - Объект TCP сервера - server
// Адрес - Строка - Адрес активного соединения. См. ОжидатьПодключения - address
// Строкой - Булево - Признак преобразования полученных данных в строку - string
//
// Возвращаемое значение:
// Строка, ДвоичныеДанные - Данные сообщения в виде строки или двоичных данных
Функция ПолучитьДанные(Знач TCPСервер, Знач Адрес, Знач Строкой = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
OPI_ПреобразованиеТипов.ПолучитьБулево(Строкой);
Данные = TCPСервер.ReceiveMessage(Адрес);
Если Строкой Тогда
Данные = ПолучитьСтрокуИзДвоичныхДанных(Данные);
КонецЕсли;
Возврат Данные;
КонецФункции
// Отправить ответ
// Отправляет сообщение (ответ) выбранному соединению
//
// Параметры:
// TCPСервер - Произвольный - Объект TCP сервера - server
// Адрес - Строка - Адрес активного соединения. См. ОжидатьПодключения - address
// Данные - Строка, ДвоичныеДанные - Данные ответа - data
//
// Возвращаемое значение:
// Строка - Информация о результате отправки
Функция ОтправитьОтвет(Знач TCPСервер, Знач Адрес, Знач Данные) Экспорт
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина);
Результат = TCPСервер.SendResponse(Адрес, Данные);
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@@ -1872,11 +1872,6 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
Сообщить("Проверка товаров Ozon недоступна");
Возврат;
// BSLLS:UnreachableCode-off
Ozon_ПолучитьСтруктуруТовара(ПараметрыТеста);
Ozon_СоздатьОбновитьТовары(ПараметрыТеста);
Ozon_ПолучитьСтатусДобавленияТовара(ПараметрыТеста);
@@ -1904,8 +1899,6 @@
Ozon_ПолучитьСвязанныеSKU(ПараметрыТеста);
Ozon_УдалитьТоварыБезSKU(ПараметрыТеста);
// BSLLS:UnreachableCode-on
КонецПроцедуры
Процедура ОзонАПИ_Штрихкоды() Экспорт
@@ -13104,6 +13097,7 @@
МассивID = Новый Массив;
МассивID.Добавить("143210609");
МассивID.Добавить("1432106010");
Фильтр = Новый Структура;
Фильтр.Вставить("visibility" , "ALL");
@@ -13120,6 +13114,10 @@
IDТовара = Результат["result"]["items"][0]["product_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_ProductID", IDТовара);
ПараметрыФункции.Вставить("Ozon_ProductID", IDТовара);
IDТовара = Результат["result"]["items"][1]["product_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_ProductID2", IDТовара);
ПараметрыФункции.Вставить("Ozon_ProductID2", IDТовара);
КонецПроцедуры
@@ -13292,9 +13290,15 @@
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "АрхивироватьТовары", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонИстина(Результат);
IDТовара = ПараметрыФункции["Ozon_ProductID2"];
Результат = OPI_Ozon.АрхивироватьТовары(IDКлиента, КлючAPI, IDТовара);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "АрхивироватьТовары (2)", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонИстина(Результат);
КонецПроцедуры
Процедура Ozon_РазархивироватьТовары(ПараметрыФункции)
@@ -13331,8 +13335,14 @@
Результат = OPI_Ozon.УдалитьТоварыБезSKU(IDКлиента, КлючAPI, Артикул);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТоварыБезSKU", "Ozon");
Артикул = "1432106010";
Результат = OPI_Ozon.УдалитьТоварыБезSKU(IDКлиента, КлючAPI, Артикул);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТоварыБезSKU (2)", "Ozon");
КонецПроцедуры

View File

@@ -2058,9 +2058,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@@ -43,7 +43,7 @@
#Область ПрограммныйИнтерфейс
#Область TCPКлиент
#Область МетодыКлиента
// Открыть соединение !NOCLI
// Создает TCP соединение
@@ -228,4 +228,119 @@
#КонецОбласти
#Область МетодыСервера
// Запустить сервер !NOCLI
// Запускает TCP сервер на указанном порту
//
// Параметры:
// Порт - Число, Строка - Номер порта - port
//
// Возвращаемое значение:
// Строка, Произвольный - Объект сервера или сообщение об ошибке
Функция ЗапуститьСервер(Знач Порт) Экспорт
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
TCPСервер = OPI_Инструменты.ПолучитьКомпоненту("TCPServer");
TCPСервер.Port = Порт;
Сообщение = TCPСервер.Start();
Возврат ?(Сообщение = "Success", TCPСервер, Сообщение);
КонецФункции
// Остановить сервер !NOCLI
// Явно завершает процесс сервера
//
// Параметры:
// TCPСервер - Произвольный - Объект TCP сервера - server
//
// Возвращаемое значение:
// Строка - Сообщение о завершении
Функция ОстановитьСервер(Знач TCPСервер) Экспорт
Сообщение = TCPСервер.Stop();
Возврат Сообщение;
КонецФункции
// Ожидать подключения !NOCLI
// Ожидает подключение в течении указанного времени
//
// Примечание:
// Если список подключений не пуст, то ожидание конца таймаута не происходит
//
// Параметры:
// TCPСервер - Произвольный - Объект TCP сервера - server
// Таймаут - Строка, Число - Таймаут ожидания подключений - timeout
//
// Возвращаемое значение:
// Массив Из Строка - Массив адресов активных подключений
Функция ОжидатьПодключения(Знач TCPСервер, Знач Таймаут = 10) Экспорт
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
СписокПодключений = TCPСервер.Await(Таймаут);
Если ЗначениеЗаполнено(СписокПодключений) Тогда
МассивПодключений = OPI_Инструменты.JsonВСтруктуру(СписокПодключений);
Иначе
МассивПодключений = Новый Массив;
КонецЕсли;
Возврат МассивПодключений;
КонецФункции
// Получить данные !NOCLI
// Получает содержимое сообщения соединения из списка активных соединений
//
// Параметры:
// TCPСервер - Произвольный - Объект TCP сервера - server
// Адрес - Строка - Адрес активного соединения. См. ОжидатьПодключения - address
// Строкой - Булево - Признак преобразования полученных данных в строку - string
//
// Возвращаемое значение:
// Строка, ДвоичныеДанные - Данные сообщения в виде строки или двоичных данных
Функция ПолучитьДанные(Знач TCPСервер, Знач Адрес, Знач Строкой = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
OPI_ПреобразованиеТипов.ПолучитьБулево(Строкой);
Данные = TCPСервер.ReceiveMessage(Адрес);
Если Строкой Тогда
Данные = ПолучитьСтрокуИзДвоичныхДанных(Данные);
КонецЕсли;
Возврат Данные;
КонецФункции
// Отправить ответ
// Отправляет сообщение (ответ) выбранному соединению
//
// Параметры:
// TCPСервер - Произвольный - Объект TCP сервера - server
// Адрес - Строка - Адрес активного соединения. См. ОжидатьПодключения - address
// Данные - Строка, ДвоичныеДанные - Данные ответа - data
//
// Возвращаемое значение:
// Строка - Информация о результате отправки
Функция ОтправитьОтвет(Знач TCPСервер, Знач Адрес, Знач Данные) Экспорт
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные, Истина);
Результат = TCPСервер.SendResponse(Адрес, Данные);
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@@ -1872,11 +1872,6 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
Сообщить("Проверка товаров Ozon недоступна");
Возврат;
// BSLLS:UnreachableCode-off
Ozon_ПолучитьСтруктуруТовара(ПараметрыТеста);
Ozon_СоздатьОбновитьТовары(ПараметрыТеста);
Ozon_ПолучитьСтатусДобавленияТовара(ПараметрыТеста);
@@ -1904,8 +1899,6 @@
Ozon_ПолучитьСвязанныеSKU(ПараметрыТеста);
Ozon_УдалитьТоварыБезSKU(ПараметрыТеста);
// BSLLS:UnreachableCode-on
КонецПроцедуры
Процедура ОзонАПИ_Штрихкоды() Экспорт
@@ -13104,6 +13097,7 @@
МассивID = Новый Массив;
МассивID.Добавить("143210609");
МассивID.Добавить("1432106010");
Фильтр = Новый Структура;
Фильтр.Вставить("visibility" , "ALL");
@@ -13120,6 +13114,10 @@
IDТовара = Результат["result"]["items"][0]["product_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_ProductID", IDТовара);
ПараметрыФункции.Вставить("Ozon_ProductID", IDТовара);
IDТовара = Результат["result"]["items"][1]["product_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_ProductID2", IDТовара);
ПараметрыФункции.Вставить("Ozon_ProductID2", IDТовара);
КонецПроцедуры
@@ -13292,9 +13290,15 @@
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "АрхивироватьТовары", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонИстина(Результат);
IDТовара = ПараметрыФункции["Ozon_ProductID2"];
Результат = OPI_Ozon.АрхивироватьТовары(IDКлиента, КлючAPI, IDТовара);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "АрхивироватьТовары (2)", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонИстина(Результат);
КонецПроцедуры
Процедура Ozon_РазархивироватьТовары(ПараметрыФункции)
@@ -13331,8 +13335,14 @@
Результат = OPI_Ozon.УдалитьТоварыБезSKU(IDКлиента, КлючAPI, Артикул);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТоварыБезSKU", "Ozon");
Артикул = "1432106010";
Результат = OPI_Ozon.УдалитьТоварыБезSKU(IDКлиента, КлючAPI, Артикул);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТоварыБезSKU (2)", "Ozon");
КонецПроцедуры