1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-30 09:16:44 +02:00

CDEK: Штрихкоды

This commit is contained in:
Anton 2024-10-20 10:17:05 +03:00
parent ab8d4ff336
commit 71178e5eb3
10 changed files with 5560 additions and 5134 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1026,7 +1026,7 @@
, "<статус для сортировки. Аналогичен REAL_STATUS, но имеет дополнительно три мета-статуса>");
Если Пустая Тогда
OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураФильтра);
СтруктураФильтра = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураФильтра);
КонецЕсли;
//@skip-check constructor-function-return-section

View File

@ -374,6 +374,104 @@
КонецФункции
// Сформировать штрихкод
// Формирует штрихкод места в формате PDF для заказов
//
// Примечание:
// Доступные языки: RUS, ENG
// Метод в документации API: [Формирование ШК места к заказу](@api-docs.cdek.ru/36967295.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// МассивUUID - Строка, Массив Из Строка - Один или массив UUID заказов - uuids
// Копий - Число - Число копий - count
// Формат - Строка - Формат печати: A4, A5, A6, A7 - format
// Язык - Строка - Язык штрихкода: RUS, ENG - lang
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция СформироватьШтрихкод(Знач Токен
, Знач МассивUUID
, Знач Копий = 1
, Знач Формат = "A4"
, Знач Язык = "RUS"
, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивUUID);
URL = СформироватьURL("/print/barcodes", ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Параметры = Новый Структура;
МассивЗаказов = Новый Массив;
Для Каждого UUID Из МассивUUID Цикл
OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
МассивЗаказов.Добавить(Новый Структура("order_uuid", UUID));
КонецЦикла;
OPI_Инструменты.ДобавитьПоле("orders" , МассивЗаказов, "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("copy_count", Копий , "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("format" , Формат , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("lang" , Язык , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить штрихкод
// Получает штрихкод места к заказу
//
// Примечание:
// Штрихкод должен быть предварительно создан. См. СформироватьШтрихкод
// Ссылка на файл с ШК местом к заказам доступна в течение 1 часа
// Метод в документации API: [Получение ШК места к заказу](@api-docs.cdek.ru/36967298.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// UUID - Строка - UUID штрихкода, полученный при его формировании - uuid
// ПолучитьФайл - Булево - Истина > будут получены сразу данные PDF файла, Ложь > ответ сервера CDEK - getfile
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение, ДвоичныеДанные - сериализованный JSON ответа от CDEK или PDF файл
Функция ПолучитьШтрихкод(Знач Токен, Знач UUID, Знач ПолучитьФайл = Ложь, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
OPI_ПреобразованиеТипов.ПолучитьБулево(ПолучитьФайл);
URL = СформироватьURL("/print/barcodes/" + UUID, ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Если ПолучитьФайл Тогда
Содержимое = Ответ["entity"];
Если Не ЗначениеЗаполнено(Содержимое) Тогда
Возврат Ответ;
КонецЕсли;
URL = Содержимое["url"];
Если Не ЗначениеЗаполнено(URL) Тогда
Возврат Ответ;
КонецЕсли;
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
КонецЕсли;
Возврат Ответ;
КонецФункции
// Получить описание заказа
// Получает макет для создания заказа в функции СоздатьЗаказ
//

View File

@ -2010,10 +2010,12 @@
CDEK_ПолучитьЗаказ(ПараметрыТеста);
CDEK_ПолучитьЗаказПоНомеру(ПараметрыТеста);
CDEK_СформироватьКвитанцию(ПараметрыТеста);
CDEK_СформироватьШтрихкод(ПараметрыТеста);
OPI_Инструменты.Пауза(25);
CDEK_ПолучитьКвитанцию(ПараметрыТеста);
CDEK_ПолучитьШтрихкод(ПараметрыТеста);
CDEK_ИзменитьЗаказ(ПараметрыТеста);
CDEK_ОформитьКлиентскийВозврат(ПараметрыТеста);
CDEK_СоздатьОтказ(ПараметрыТеста);
@ -13999,6 +14001,49 @@
КонецПроцедуры
Процедура CDEK_СформироватьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Формат = "A5";
Копий = 1;
Результат = OPI_CDEK.СформироватьШтрихкод(Токен, UUID, Копий, Формат, , Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СформироватьШтрихкод", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
UUID = Результат["entity"]["uuid"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("CDEK_BarcodeUUID", UUID);
OPI_Инструменты.ДобавитьПоле("CDEK_BarcodeUUID", UUID, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_BarcodeUUID"];
Результат = OPI_CDEK.ПолучитьШтрихкод(Токен, UUID, , Истина); // Ответ сервера с ссылкой
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьШтрихкод", "CDEK"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_СдэкКвитанция(Результат); // SKIP
ИВФ = ПолучитьИмяВременногоФайла("pdf");
Результат = OPI_CDEK.ПолучитьШтрихкод(Токен, UUID, Истина, Истина); // PDF
Результат.Записать(ИВФ);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьШтрихкод (файл)");
OPI_ПолучениеДанныхТестов.Проверка_ДвоичныеДанные(Результат, 0);
УдалитьФайлы(ИВФ);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -2005,10 +2005,12 @@
CLI_CDEK_ПолучитьЗаказ(ПараметрыТеста);
CLI_CDEK_ПолучитьЗаказПоНомеру(ПараметрыТеста);
CLI_CDEK_СформироватьКвитанцию(ПараметрыТеста);
CLI_CDEK_СформироватьШтрихкод(ПараметрыТеста);
OPI_Инструменты.Пауза(25);
CLI_CDEK_ПолучитьКвитанцию(ПараметрыТеста);
CLI_CDEK_ПолучитьШтрихкод(ПараметрыТеста);
CLI_CDEK_ИзменитьЗаказ(ПараметрыТеста);
CLI_CDEK_ОформитьКлиентскийВозврат(ПараметрыТеста);
CLI_CDEK_СоздатьОтказ(ПараметрыТеста);
@ -15914,6 +15916,66 @@
УдалитьФайлы(ИВФ);
КонецПроцедуры
Процедура CLI_CDEK_СформироватьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Формат = "A5";
Копий = 1;
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("uuids" , UUID);
Опции.Вставить("count" , Копий);
Опции.Вставить("format" , Формат);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СформироватьШтрихкод", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СформироватьШтрихкод", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
UUID = Результат["entity"]["uuid"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("CDEK_BarcodeUUID", UUID);
OPI_Инструменты.ДобавитьПоле("CDEK_BarcodeUUID", UUID, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CLI_CDEK_ПолучитьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_BarcodeUUID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("uuid" , UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьШтрихкод", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьШтрихкод", "CDEK"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_СдэкКвитанция(Результат); // SKIP
ИВФ = ПолучитьИмяВременногоФайла("pdf");
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("uuid" , UUID);
Опции.Вставить("getfile", Истина);
Опции.Вставить("testapi", Истина);
Опции.Вставить("out" , ИВФ);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьШтрихкод", Опции);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьШтрихкод (файл)");
OPI_ПолучениеДанныхТестов.Проверка_ДвоичныеДанные(Результат, 50000);
УдалитьФайлы(ИВФ);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -461,8 +461,6 @@
КонецЦикла;
Коллекция_ = Коллекция;
ИначеЕсли ТипЗначения = Тип("Соответствие") Тогда
Коллекция_ = Новый Соответствие;
@ -475,6 +473,8 @@
КонецЦикла;
Коллекция = Коллекция_;
ИначеЕсли ТипЗначения = Тип("Массив") Тогда
Коллекция_ = Новый Массив;
@ -486,13 +486,15 @@
КонецЦикла;
Коллекция = Коллекция_;
Иначе
Коллекция_ = "";
Коллекция = "";
КонецЕсли;
Возврат Коллекция_;
Возврат Коллекция;
КонецФункции

View File

@ -374,6 +374,103 @@
КонецФункции
// Сформировать штрихкод
// Формирует штрихкод места в формате PDF для заказов
//
// Примечание:
// Метод в документации API: [Формирование ШК места к заказу](@api-docs.cdek.ru/36967295.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// МассивUUID - Строка, Массив Из Строка - Один или массив UUID заказов - uuids
// Копий - Число - Число копий - count
// Формат - Строка - Формат печати: A4, A5, A6, A7 - format
// Язык - Строка - Язык штрихкода: RUS, ENG - lang
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от CDEK
Функция СформироватьШтрихкод(Знач Токен
, Знач МассивUUID
, Знач Копий = 1
, Знач Формат = "A4"
, Знач Язык = "RUS"
, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивUUID);
URL = СформироватьURL("/print/barcodes", ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Параметры = Новый Структура;
МассивЗаказов = Новый Массив;
Для Каждого UUID Из МассивUUID Цикл
OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
МассивЗаказов.Добавить(Новый Структура("order_uuid", UUID));
КонецЦикла;
OPI_Инструменты.ДобавитьПоле("orders" , МассивЗаказов, "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("copy_count", Копий , "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("format" , Формат , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("lang" , Язык , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить штрихкод
// Получает штрихкод места к заказу
//
// Примечание:
// Штрихкод должен быть предварительно создан. См. СформироватьШтрихкод
// Ссылка на файл с ШК местом к заказам доступна в течение 1 часа
// Метод в документации API: [Получение ШК места к заказу](@api-docs.cdek.ru/36967298.html)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// UUID - Строка - UUID штрихкода, полученный при его формировании - uuid
// ПолучитьФайл - Булево - Истина > будут получены сразу данные PDF файла, Ложь > ответ сервера CDEK - getfile
// ТестовыйAPI - Булево - Флаг использования API для тестовых запросов - testapi
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение, ДвоичныеДанные - сериализованный JSON ответа от CDEK или PDF файл
Функция ПолучитьШтрихкод(Знач Токен, Знач UUID, Знач ПолучитьФайл = Ложь, Знач ТестовыйAPI = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(UUID);
OPI_ПреобразованиеТипов.ПолучитьБулево(ПолучитьФайл);
URL = СформироватьURL("/print/barcodes/" + UUID, ТестовыйAPI);
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Если ПолучитьФайл Тогда
Содержимое = Ответ["entity"];
Если Не ЗначениеЗаполнено(Содержимое) Тогда
Возврат Ответ;
КонецЕсли;
URL = Содержимое["url"];
Если Не ЗначениеЗаполнено(URL) Тогда
Возврат Ответ;
КонецЕсли;
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
КонецЕсли;
Возврат Ответ;
КонецФункции
// Получить описание заказа
// Получает макет для создания заказа в функции СоздатьЗаказ
//

View File

@ -2010,10 +2010,12 @@
CDEK_ПолучитьЗаказ(ПараметрыТеста);
CDEK_ПолучитьЗаказПоНомеру(ПараметрыТеста);
CDEK_СформироватьКвитанцию(ПараметрыТеста);
CDEK_СформироватьШтрихкод(ПараметрыТеста);
OPI_Инструменты.Пауза(25);
CDEK_ПолучитьКвитанцию(ПараметрыТеста);
CDEK_ПолучитьШтрихкод(ПараметрыТеста);
CDEK_ИзменитьЗаказ(ПараметрыТеста);
CDEK_ОформитьКлиентскийВозврат(ПараметрыТеста);
CDEK_СоздатьОтказ(ПараметрыТеста);
@ -13999,6 +14001,49 @@
КонецПроцедуры
Процедура CDEK_СформироватьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Формат = "A5";
Копий = 1;
Результат = OPI_CDEK.СформироватьШтрихкод(Токен, UUID, Копий, Формат, , Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СформироватьШтрихкод", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
UUID = Результат["entity"]["uuid"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("CDEK_BarcodeUUID", UUID);
OPI_Инструменты.ДобавитьПоле("CDEK_BarcodeUUID", UUID, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CDEK_ПолучитьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_BarcodeUUID"];
Результат = OPI_CDEK.ПолучитьШтрихкод(Токен, UUID, , Истина); // Ответ сервера с ссылкой
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьШтрихкод", "CDEK"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_СдэкКвитанция(Результат); // SKIP
ИВФ = ПолучитьИмяВременногоФайла("pdf");
Результат = OPI_CDEK.ПолучитьШтрихкод(Токен, UUID, Истина, Истина); // PDF
Результат.Записать(ИВФ);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьШтрихкод (файл)");
OPI_ПолучениеДанныхТестов.Проверка_ДвоичныеДанные(Результат, 0);
УдалитьФайлы(ИВФ);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -2005,10 +2005,12 @@
CLI_CDEK_ПолучитьЗаказ(ПараметрыТеста);
CLI_CDEK_ПолучитьЗаказПоНомеру(ПараметрыТеста);
CLI_CDEK_СформироватьКвитанцию(ПараметрыТеста);
CLI_CDEK_СформироватьШтрихкод(ПараметрыТеста);
OPI_Инструменты.Пауза(25);
CLI_CDEK_ПолучитьКвитанцию(ПараметрыТеста);
CLI_CDEK_ПолучитьШтрихкод(ПараметрыТеста);
CLI_CDEK_ИзменитьЗаказ(ПараметрыТеста);
CLI_CDEK_ОформитьКлиентскийВозврат(ПараметрыТеста);
CLI_CDEK_СоздатьОтказ(ПараметрыТеста);
@ -15914,6 +15916,66 @@
УдалитьФайлы(ИВФ);
КонецПроцедуры
Процедура CLI_CDEK_СформироватьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_OrderUUID"];
Формат = "A5";
Копий = 1;
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("uuids" , UUID);
Опции.Вставить("count" , Копий);
Опции.Вставить("format" , Формат);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "СформироватьШтрихкод", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СформироватьШтрихкод", "CDEK");
OPI_ПолучениеДанныхТестов.Проверка_СдэкЗаказ(Результат);
UUID = Результат["entity"]["uuid"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("CDEK_BarcodeUUID", UUID);
OPI_Инструменты.ДобавитьПоле("CDEK_BarcodeUUID", UUID, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CLI_CDEK_ПолучитьШтрихкод(ПараметрыФункции)
Токен = ПараметрыФункции["CDEK_Token"];
UUID = ПараметрыФункции["CDEK_BarcodeUUID"];
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("uuid" , UUID);
Опции.Вставить("testapi", Истина);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьШтрихкод", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьШтрихкод", "CDEK"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_СдэкКвитанция(Результат); // SKIP
ИВФ = ПолучитьИмяВременногоФайла("pdf");
Опции = Новый Структура;
Опции.Вставить("token" , Токен);
Опции.Вставить("uuid" , UUID);
Опции.Вставить("getfile", Истина);
Опции.Вставить("testapi", Истина);
Опции.Вставить("out" , ИВФ);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("cdek", "ПолучитьШтрихкод", Опции);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьШтрихкод (файл)");
OPI_ПолучениеДанныхТестов.Проверка_ДвоичныеДанные(Результат, 50000);
УдалитьФайлы(ИВФ);
КонецПроцедуры
#КонецОбласти
#КонецОбласти