Вход | Регистрация
 

Маркировка товаров легкой промышленности

Маркировка товаров легкой промышленности
Я
   mzelensky
 
03.11.20 - 13:01
Доброго времени суток!

С 1 ноября 2020 на стороне системы "Честный Знак" было запрещено получение кодов маркировки в формате CSV (оставили только PDF и EPS).

В результате имеем проблему - нужно получить полные коды маркировки для загрузки в учетную систему (с последующей печатью из нее), но:

1) Программно получить полный код маркировки из PDF и EPS файлов не представляется возможным (по крайне меря я пока не нашел таких вариантов).
2) Получать коды маркировки средствами Апи честного знака не выйдет, т.к. конфа полностью самописная, готовые интеграции на нее не встанут, а писать полностью свой блок можно, но долго.

Кто-нибудь уже озадачивался подобным? Какие решения виднеются на горизонте?
   vovastar
 
1 - 03.11.20 - 13:02
(0) они че, офигели совсем?
   timurhv
 
2 - 03.11.20 - 13:14
(0) Напишите обработку, вы же забираете данные из СУЗ.
В обработке GUID документа-заказа, в параметрах запроса OMSID и токен устройства.
Получите ответ json со списком марок.
   timurhv
 
3 - 03.11.20 - 13:15
(2) потом вручную закроете заказ.
   mzelensky
 
4 - 03.11.20 - 13:16
(2) Пример подобного есть?

Готов рассмотреть на "платной" основе. Моя почта "zel_maks@mail.ru"
   timurhv
 
5 - 03.11.20 - 13:35
(4) Накидал пример

Исходный модуль:
ИнтерфейсСУЗ.ЗапроситьКодыМаркировкиИзБизнесЗаказа_V2

Вам необходимо:
ПараметрыСУЗ = Новый Структура();
ПараметрыСУЗ.Вставить("Идентификатор", СтруктураПодключения.ИдентификаторСУЗ);  // тут ваш OMSID из СУЗ

ПараметрыСУЗ.Вставить("ИспользоватьЗащищенноеСоединение", Истина);
ПараметрыСУЗ.Вставить("Порт", СтруктураАдресСУЗ.Порт);// 443

ПараметрыСУЗ.Вставить("ПредставлениеСервиса", "СУЗ");
ПараметрыСУЗ.Вставить("Сервер", СтруктураАдресСУЗ.Хост);// адрес СУЗ, кого-то переводили на suzgrid.crpt.ru

ПараметрыСУЗ.Вставить("Таймаут", 60);
ПараметрыСУЗ.Вставить("Токен", СтруктураПодключения.ТокенКСУЗ);// тут ваше токен устройства из СУЗ

ПараметрыСУЗ.Вставить("ФорматОбмена", "V2");

ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type",   "application/x-www-form-urlencoded;charset=UTF-8");
ЗаголовокHTTP.Вставить("Accept",         "application/json");
ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
ЗаголовокHTTP.Вставить("clientToken",    ПараметрыСУЗ.Токен);

ПараметрыURL = Новый Массив;
ПараметрыURL.Добавить(СтрШаблон("omsId=%1",    ПараметрыСУЗ.Идентификатор));
ПараметрыURL.Добавить(СтрШаблон("orderId=%1",  ИдентификаторБизнесЗаказа));// идентификатор бизнес-заказа

ПараметрыURL.Добавить(СтрШаблон("gtin=%1",     GTIN));// GTIN продукции

ПараметрыURL.Добавить(СтрШаблон("quantity=%1", Формат(КоличествоКодовМаркировки, "ЧГ=0;")));// сколько марок забираем


// предыдущий идентификатор блока. Необходимо сохранять куда-то значение из ответа JSON. Либо использовать дополнительный метод API.

// Из API:
// Идентификатор блока кодов, выданных в предыдущем запросе. Может быть равен 0 при первом запросе КМ из пула. Далее должен передаваться идентификатор предыдущего пакета. Значение по умолчанию: 0

Если ЗначениеЗаполнено(ИдентификаторБлокаКодов) Тогда
    ПараметрыURL.Добавить(СтрШаблон("lastBlockId=%1", ИдентификаторБлокаКодов));
КонецЕсли;

// тут вместо "extension" в вашем случае "lp" => api/v2/lp/codes?%1

URLЗапроса = СтрШаблон("api/v2/extension/codes?%1", СтрСоединить(ПараметрыURL, "&"));
РезультатЗапроса = ИнтеграцияИСМП.ПолучитьДанныеИзСервиса(URLЗапроса, Неопределено, ПараметрыСУЗ, ЗаголовокHTTP);// там мало зависимостей, можете скопировать
   mzelensky
 
6 - 03.11.20 - 13:43
(5) Это получается средствами АПИ. Выдержка из типовых.

А "ИдентификаторСУЗ", "Токен" откуда получаете? + это все при условии установки и настройки УКЭП
   timurhv
 
7 - 03.11.20 - 13:52
(6) Да API.
ИнтеграцияИСМП.ПолучитьДанныеИзСервиса - скопируйте функцию, адаптация может там минимальная будет, ничего сложного нет.

> А "ИдентификаторСУЗ", "Токен" откуда получаете? + это все при условии установки и настройки УКЭП
В веб-интерфейсе кабинета СУЗ в профиле участника (справа наверху), токен на устройство надо создать. OMSID уже должен быть.
   timurhv
 
8 - 03.11.20 - 13:56
(6) только у вас текстиль или обувь? lp - я для текстиля написал, для обуви будет shoes
   mzelensky
 
9 - 03.11.20 - 14:04
(8) У нас и обувь и текстиль.
   mzelensky
 
10 - 03.11.20 - 14:06
(8) В ответ придут полные коды маркировки (с хвостом) ?
   timurhv
 
11 - 03.11.20 - 14:17
(10) Да
4.5.6. Метод «Получить КМ из заказа»
https://xn--80ajghhoc2aj1c8b.xn--p1ai/upload/iblock/07f/ru_API_OMS-CLOUD.pdf
   NorthWind
 
12 - 05.11.20 - 10:43
(1) а че, нет?

Список тем форума
Рекламное место пустует  Рекламное место пустует
Закон Брукера: Даже маленькая практика стоит большой теории.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.