Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > КИС Lack & УС Land

Программа вывода из оборота маркированной молочной продукции : КИС Lack & УС Land

02.05.2024 2:44


23.02.2024 22:48
FinSoft
 
Цитата:
AndreyZh Структура кода марки

Одна из проблем процедуры вывода из оборота. Марка – набор символов считанных сканером состоит из 3 или 4 блоков, но списывается в «ЧЗ», указывая только первые два блока, длины которых зависят от страны производства продукции. Пока программа обрабатывает марки России и Беларуси. Для понимания, а мне для запоминания, опишу структуру марки:

1 Идентифицируется идентификатором применения AI="01", состоит из 14 цифр и содержит код товара, а точнее GTIN – ШК товара, дополненный в начале нулями до 14 знаков;
2 Идентифицируется идентификатором применения AI="21", состоит из 6 символов для Российского товара или 8 символов для товара Буларусь – это набор цифр, строчных и прописных букв латинского алфавита, а также специальных символов. Содержит индивидуальный серийный номер упаковки молочной продукции и завершается символом-разделителем FNC1 (ASCII 29);
3 Идентифицируется идентификатором применения AI="93", состоит из 4 символов (цифр, строчных и прописных букв латинского алфавита, а также специальных символов) и содержит код проверки;
4 Согласно постановления правительства РФ от 15 декабря 2020 г. № 2099, пункт 46 был дополнен пунктом «г» с 1 марта 2022 года. Дополнительно на усмотрение участника оборота молочной продукции после третьей группы данных в средство идентификации может быть включена дополнительная группа данных, которая содержит вес молочной продукции (в случае если он может различаться у разных единиц молочной продукции с одним кодом товара), дополнительная группа данных идентифицируется идентификатором применения AI = '3103', состоит из 6 символов и содержит вес молочной продукции в килограммах. В процессе оборота товаров, при усыхании молочной продукции, вес молочной продукции может быть изменен (уменьшен), при этом состав кода маркировки должен оставаться неизменным.

Примеры марок:

Российский товар: 01 04678599571056 21 5r5ERr 93ZrE2 (0104678599571056215r5ERr93ZrE2);

Молочка Беларусь: 01 04810268044595 21 232QCQ3Y 933hnp (010481026804459521232QCQ3Y933hnp).
Это полезная информация, спасибо, Андрей, за размещение. Добавлю, может кому пригодится.
1. Если вывод из оборота делать через true api, то проще использовать формат json. КИ содержит первые 24 символа марки.
2. Перед отправкой документа в ЧЗ надо проверить срок годности марки, так как сам ЧЗ просрочку не блокирует. Для проверки марка отправляется без последней группы (AI=3103). Ну и не забыть добавить или заменить ASCII 29 на \u001D. Что-то типа такого для Российской продукции и клавиатурного сканера, который не считывает ASCII 29:
Код:
  lor:mark=sub(DocMarkT:Mark,1,24) & '\u001D' & sub(DocMarkT:Mark,25,6)  
  lor:mark=FsStrReplace(lor:mark,'"','\"')
Часовой пояс GMT +3, время: 02:44.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.