Марка не состоит из 4-х секций, как изначально указано в регулярных выражениях. При её обработки кассой, вырезается часть служебных символов, при получении марки со сканера. Фактически производится работа с остатком данных после её сканирования. Иногда служебные символы не соответствуют тем, что вырезает кассовая программа, и тогда в кассу передается марка с лишними символами, которые становятся пробелами или другим фиксированным значением в каждой марке. Есть случаи, когда производитель не корректно скопирует марку и в конце неё появляется конкретный символ, например ;
.
В основном, такие проблемы можно решить только, перемаркировав товар. Также на этапе внедрения маркировки табака и обуви, регулярные выражение приходилось неоднократно редактировать.
На данный момент для проверки марки в ОФД и SetMark используются 2 секции:
Эти 2 секции остаются обязательными.
В большинстве случаев нужно обеспечивать хранение и выгрузку информации о марках в усеченном виде, чтобы соблюдать требования законодательства. Согласно требованиям к системам работающих с маркированными товарами, запрещается хранение марок в полном виде.
До версии 10.2.91.0, кассовая программа сохраняла марки в полном виде при считывании и выгружала их в полном объеме.
Начиная с версии 10.2.91.0 реализована подрезка марок по длине, чтобы не могло появиться претензий к кассовой программе.
GTIN(14)+SERIAL(7)
., то есть у пачки сигарет сохраняется первый 21 символ при продаже.01<GTIN>21<SERIAL>
согласно регулярным выражениям.AI(01)
и (21)
.Для подрезки в регулярное выражение добавляется группа gtinPrefix
.
Пример регулярного выражения:
^(?=.{0,150}$)^(?<gtinPrefix>01|02)(?<gtin>\d{14})21(?<serial>.{7})(?:8005(?<mrp>\d{6}))?((?:93(?<verificationCode>\S{4}))|((?:9099(?<checkCode>\S{8})))).*$ |
Таким образом, если требуется сделать обновление настроек, выполните скрипт:
UPDATE sales_management_properties SET property_value='^(?=.{0,150}$)^(?<gtinPrefix>01|02)(?<gtin>\d{14})21(?<serial>.{7})(?:8005(?<mrp>\d{6}))?((?:93(?<verificationCode>\S{4}))|((?:9099(?<checkCode>\S{8})))).*$' WHERE module_name='MARK_PARSERS' AND plugin_name='TOBACCO_BLOCK'; |
Для ювелирных изделий регулярное выражение формата кода маркировки по умолчанию не установлено. При настройках по умолчанию любой код учёта будет распознаваться как некорректный.
Чтобы установить формат кода учёта 16 цифр, выполните скрипт по базе данных set на сервере:
INSERT INTO public.sales_management_properties (module_name, plugin_name, property_key, property_value, description, transport_level, priority, send_status) VALUES ('MARK_PARSERS', 'JEWELRY', 'parser.regex', '^\d{16}$', 'Регулярное выражение для ювелирных изделий', 10, 2, 0); |
Начиная с версии 10.3.11.0 на кассе сначала происходит игнорирование AI=3103 в марке молока, если он есть. Добавляется условие с регулярным выражением на не обязательное наличие. Касса игнорирует значение веса в КМ. Одинаково ведет себя с его наличием и отсутствием.
^01(?<gtin>\d{14})21(?<serial>\S{6})93(?<verificationKey>\S{4})(3103(?<weight>\d{6}))?$ |
Дано:
Есть КМ молока с секцией веса.
Есть КМ молока без секции с весом.
Кассир сканирует ШК молочного товара. Касса требует считать КМ.
Кассир считывает КМ с весом.
Проверяем, касса приняла КМ с весом
Кассир сканирует ШК молочного товара. Касса требует считать КМ.
Кассир считывает КМ без веса.
Проверяем, касса приняла КМ без веса.
В связи с Постановлением Правительства с 01.04.2023 запрещена продажа обуви, маркированной по упрощенной схеме ("остатки"). Начиная с версии 10.3.24.0 изменены регулярные выражения для обуви, промаркированной как “остатки”, такие товары не будут добавлены в чек.
Российская Федерация:
^01(?<gtin>[^2}\d{12})21(?<serial>\S{13})(?:240(?<tradeCode>\d{4}))?(?:91(?<verificationKey>\S{4}))(?:92(?<verificationCode>\S{88}))$ |
Республика Беларусь:
^01(?<gtin>\d{14})21(?<serial>\S{13})(?:91(?<verificationKey>\S{5}))(?:92(?<verificationCode>\S{88}))$ |
Республика Казахстан:
^01(?<gtin>\d{14})21(?<serial>\S{13})(?:91(?<verificationKey>\S{4}))(?:92(?<verificationCode>\S{88}))$ |
Для включения возможности продажи обуви по упрощенной схеме выполните скрипт по базе данных set.
В версии SetRetail 10.4.0.0 добавлена поддержка новых форматов кодов маркировки:
В соответствии с Постановлением Правительства РФ №886 от 30.05.2023 г. поддерживаются следующие форматы:
01<GTIN-14>21<SN-13>91<Идентификатор ключа проверки-4>92<Код проверки-44>
01<GTIN-14>21<SN-13>93<Код проверки-4> - поддерживался ранее.
В соответствии с Постановлением Правительства РФ №870 от 30.05.2023 г. поддерживаются следующие форматы:
01<GTIN-14>21<SN-13>91<Идентификатор ключа проверки-4>92<Код проверки-44>
01<GTIN-14>21<SN-13>93<Код проверки-4> - поддерживался ранее.