Имя: Пароль:
1C
 
Маркировка товаров легкой промышленности
0 mzelensky
 
03.11.20
13:01
Доброго времени суток!

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

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

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

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

Готов рассмотреть на "платной" основе. Моя почта "[email protected]"
5 timurhv
 
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); // там мало зависимостей, можете скопировать
6 mzelensky
 
03.11.20
13:43
(5) Это получается средствами АПИ. Выдержка из типовых.

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

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