You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-10 22:41:43 +02:00
Доработки по TCP серверу
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -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(Адрес, Данные);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -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");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@@ -2058,9 +2058,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
|
@@ -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(Адрес, Данные);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -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");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
Reference in New Issue
Block a user