В процессе работы с маркированными товарами (особенно с обувью) нередко возникают ситуации, когда физическая этикетка на коробке повреждена, утеряна или у нас на руках имеется только текстовая часть кода без так называемого «криптохвоста» (кода проверки). Часто это случается при инвентаризации, возвратах или необходимости проверить, был ли товар фактически списан в системе ГИС МТ (Честный ЗНАК) после проведения документа «Выбытие из оборота» в 1С. Разберем подробно, как решить эту задачу различными способами.
Для начала проанализируем, из чего состоит код маркировки (КМ). Полный код, зашифрованный в DataMatrix, включает в себя:
Важно понимать: для уникальной идентификации товара в базе данных «Честного ЗНАКА» используются только первые две части — GTIN + Серийный номер. Вместе они называются КИ (Код идентификации). Криптохвост нужен только для подтверждения подлинности кода при сканировании на кассе (в рамках разрешительного режима) или при выполнении операций агрегации/перемаркировки. Для простой проверки статуса («В обороте», «Выведен из оборота», «Списан») криптохвост не требуется.
Самый простой и доступный способ, если у нас есть текстовое представление КИ. Проанализируем последовательность действий в интерфейсе ГИС МТ:
Этот метод идеально подходит для единичных проверок, когда коробки с обувью нет физически, но данные сохранились в учетной системе 1С.
Если нам нужно проверить статус «на ходу», мы можем воспользоваться официальным мобильным приложением. Рассмотрим ситуацию: у нас есть распечатанный КИ без DataMatrix или поврежденный штрихкод.
В приложении «Честный ЗНАК. Бизнес» предусмотрена функция ручного ввода. Мы можем нажать на иконку клавиатуры (или карандаша) и вручную вбить последовательность цифр. Программа обратится к серверу ГИС МТ и вернет статус товара. Даже если DataMatrix неполный (без хвоста), приложение часто способно распознать его «голову» и выдать информацию о товаре.
Для автоматизации процесса (например, если нужно проверить 1000 марок сразу) рассмотрим использование API. Выясним, какой метод нам поможет. В актуальной документации «Честного ЗНАКА» (версии v4 и выше) для этих целей служит метод cis_list.
Эндпоинт для запроса выглядит так: /api/v4/facade/cis/cis_list.
В тело запроса мы передаем список наших кодов идентификации. Система возвращает массив объектов, содержащих детальную информацию:
status — текущий статус (например, INTRODUCED — в обороте, RETIRED — выведен);producerName — производитель;ownerName — текущий владелец.Важный нюанс: если марка числится за другим юридическим лицом, объем доступных данных может быть ограничен из соображений безопасности, но статус «выбыл/в обороте» будет доступен всегда.
Рассмотрим пример реализации на платформе 1С. Если нам необходимо повторно распечатать этикетку (например, для внутренних нужд склада), даже если у нас нет криптохвоста в явном виде, мы можем воспользоваться типовыми механизмами (например, в УПП 1.3 или других конфигурациях на обычных формах). Посмотрим на пример кода, который позволяет сформировать печатную форму штрихкода на основании данных справочника ШтрихкодыУпаковокТоваров:
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("ТипШтрихкода", СсылкаНаМарку.ТипШтрихкода);
ПараметрыШтрихкода.Вставить("Штрихкод", СсылкаНаМарку.ЗначениеШтрихкода);
ПараметрыШтрихкода.Вставить("Номенклатура", СсылкаНаМарку.Ссылка);
ПараметрыШтрихкода.Вставить("Характеристика", СсылкаНаМарку.Характеристика);
ОбъектыПечати = Новый Массив;
ОбъектыПечати.Добавить(ПараметрыШтрихкода);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ПараметрыМакетов = Справочники.ШтрихкодыУпаковокТоваров.ПараметрыМакетовДляПечати();
Для каждого ОбъектПечати Из ОбъектыПечати Цикл
ПараметрыШтрихкодовУпаковок = Справочники.ШтрихкодыУпаковокТоваров.ПараметрыШтрихкодовУпаковокДляПечати();
ЗаполнитьЗначенияСвойств(ПараметрыШтрихкодовУпаковок, ОбъектПечати);
ПараметрыШтрихкодовУпаковок.Штрихкод = ОбъектПечати.Штрихкод;
Справочники.ШтрихкодыУпаковокТоваров.ДобавитьШтрихкодВТабличныйДокумент(
ТабличныйДокумент,
ПараметрыМакетов,
ПараметрыШтрихкодовУпаковок);
КонецЦикла;
ТабличныйДокумент.Показать("Печать штрихкодов");
Проанализируем этот код: объект Справочники.ШтрихкодыУпаковокТоваров обладает встроенными методами для генерации изображения DataMatrix. Даже если в поле Штрихкод передана только идентификационная часть, система сформирует валидный для сканирования (но не для продажи) код. Для внутренней проверки статуса этого достаточно.
Разберем ситуацию, упомянутую автором темы: «Хотим проверить, выбыла марка или нет по документу Выбытие из оборота в 1С». Проблема в том, что 1С может отправить документ в ГИС МТ, но из-за ошибки (например, неверный владелец или статус) код может не выбыть из оборота в реальности.
Для программной проверки статуса в типовых конфигурациях (ERP, КА, УТ 11) следует искать функции в подсистеме интеграции с ИС МП (Информационная система маркировки продукции). Проанализируем объект ИнтеграцияИСМП. Там существуют методы для обмена с СУЗ (Станцией управления заказами) и ГИС МТ. Рекомендуется использовать поиск по строке cis_list в модулях, чтобы найти актуальную функцию запроса статусов, так как архитектура подсистем часто меняется с обновлениями.
Подведем итоги нашего исследования:
cis_list — оптимальный путь для программистов 1С, желающих автоматизировать проверку статусов в ТСД или отчетах.Таким образом, отсутствие самой марки или ее крипточасти не является препятствием для контроля состояния товара в системе мониторинга. Используя предложенные инструменты, мы можем эффективно управлять остатками маркированной обуви и своевременно выявлять ошибки в документообороте.