Разработка
academ profit
498

Маркировка обуви: решение проблемы сканирования и выгрузки в «1С»

Один из проблемных моментов в начале этого года для производителей и продавцов обуви — запрет с 1 марта 2020 года (возможно, с 1 июля) на производство, импорт, оптовую и розничную продажу обуви без маркировки и передачи данных в систему маркировки «Честный знак».

В закладки

Сегодня хотим разобрать настройку автоматической передачи данных в систему “Честный знак” на базе 1С:ERP на конкретном примере одного из наших клиентов, с ошибками и проблемами, которые возникают из-за еще не до конца налаженной работы системы “Честный знак” и 1С.Наш Клиент работает на 1С: ERP Управление предприятием 2 (2.4.11.65) со стандартной конфигурацией.В ходе маркировки остатков у Клиента постоянно возникали следующие ошибки:

Большая часть ошибок не повторялась, поэтому мы предполагали, что это проблемы ЧЗ.Обратившись в “Честный знак” мы получили ответ, что данный код маркировки корректен и должен нормально обрабатываться любым ПО.

Во время переписки с ЧЗ и нашего разбора ошибки, вышло обновление, с огромным количеством недокументированных изменений в общих модулях связанных с маркировкой.Установив и проверив типовой функционал 1С, обнаружили, что данная проблема не решилась.

Мы стали углубляться в проблему и столкнулись с ошибкой сканирования кода – такого формата“(01)029******(21)*JC***(62”Пришлось погрузиться в отладчик и вылавливать ошибку.

Проблема оказалась в том, что один и тот же код маркировки в разных интерфейсах 1С расшифровывается разными участками кода, хотя результат разбора должен быть одинаковым.

И в 1 и во 2 случае разработчики не учли, что открывающееся скобка в коде маркировки может содержаться в “криптохвосте”.“(01)029******(21)*JC***(62”Исходя из этого мы сделали патч, который исправляет логику разбора кода маркировки в нескольких модулях.

На момент публикации статьи, наш патч позволяет безошибочно считывать и вводить коды в оборот, но из-за нестабильности сервиса “Честный знак” обмен с ИС МП, доступ в личный кабинет и т.д. осуществляется с перебоями и задержками.

P.S. Кроме того, в ходе тестирования системы маркировки выяснилось, что 1С способна напечатать один и тот же штрих-код только 1 раз, поэтому советуем не запускать на печать весь пул кодов маркировки от ЧЗ, так как в случае если в принтере закончилась бумага, произошел какой-либо сбой и т.д. больше Вы не сможете напечатать данный код.

В этом случае вам потребуется дополнительная обработка, которая позволяет очистить информацию о том, конкретный код маркировки был распечатан или все.

{ "author_name": "academ profit", "author_type": "self", "tags": [], "comments": 4, "likes": -3, "favorites": 3, "is_advertisement": false, "subsite_label": "dev", "id": 108321, "is_wide": true, "is_ugc": true, "date": "Fri, 21 Feb 2020 09:35:14 +0300", "is_special": false }
0
4 комментария
Популярные
По порядку
0

А вы не могли бы подробнее рассказать о разработке патча? Привести примеры кода или что-то подобное.

Ответить
0

 Проблема оказалась в том, что один и тот же код маркировки в разных интерфейсах 1С расшифровывается разными участками кода, хотя результат разбора должен быть одинаковым.

Нет, совсем так. Основная проблема - слабый информационный дизайн этой разработки. 
Налицо отступление от signle responsibly principle.

Не должно быть, когда одна операция делается в разных местах решения. Если надо получать результат дешифрования в двух модулях, нужна функцию, которую можно просто дёрнуть, не не писать его (дешифровку) в каждом модуле.

Ответить

Комментарии