Регулярные выражения по типам маркировки для обработки марок

SRTB-4412 - Getting issue details... STATUS

10.2.89.0

Описание

Марка не состоит из 4-х секций, как изначально указано в регулярных выражениях. При её обработки кассой, вырезается часть служебных символов, при получении марки со сканера. Фактически производится работа с остатком данных после её сканирования. Иногда служебные символы не соответствуют тем, что вырезает кассовая программа, и тогда в кассу передается марка с лишними символами, которые становятся пробелами или другим фиксированным значением в каждой марке. Есть случаи, когда производитель не корректно скопирует марку и в конце неё появляется конкретный символ, например ;.

В основном, такие проблемы можно решить только, перемаркировав товар. Также на этапе внедрения маркировки табака и обуви, регулярные выражение приходилось неоднократно редактировать.

На данный момент для проверки марки в ОФД и SetMark используются 2 секции:

  • AI=01 - GTIN AI=21 - Серийный номер - Эти 2 секции должны остаются обязательными.

Начиная с версии 10.2.89.0 регулярные выражения можно настраиваться для каждого типа маркированной продукции:

Типы маркировонной продукции из списка ниже используются только для функциональности регулярных выражений!

Для импорта маркированной продукции используйте только поддерживаемые типы маркировки.


  • TOBACCO_BLOCK - табак (блок).

  • TOBACCO_PACK - табак (пачка).

  • FOOTWEAR - обувь

  • LIGHT_INDUSTRY - легкая промышленность.

  • MILK - молоко.

  • MILK_PERISHABLE - молоко со сроком годности (скоропортящиеся).

  • MILK_WITH_SHELF_LIFE - молоко со сроком годности (не скоропортящиеся).

  • MILK_WITHOUT_SHELF_LIFE - молоко без срока годности

  • PERFUMES - парфюмерия.

  • PHOTO - фототехника.

  • TYRES - шины/диски.

Настройка

Для добавления регулярного выражения выполните в базе данных set следующий скрипт на сервере SetCentrum или SetRetail. После выполнения скрипта настройка будет отправлена на серверы и кассы торговой сети.

Пример регулярного выражения для парсинга табака
INSERT INTO public.sales_management_properties 
            (module_name, 
             plugin_name, 
             property_key, 
             property_value, 
             description, 
             transport_level, 
             priority, 
             send_status) 
VALUES      ('MARK_PARSERS', 
             'TOBACCO_BLOCK', 
             'parser.regex', '^(?=.{0,150}$)^(01|02)(?<gtin>\d{14})21(?<serial>.{7})(?:8005(?<mrp>\d{6}))?((?:93(?<verificationCode>\S{4}))|((?:9099(?<checkCode>\S{8})))).*$', 
             'Регулярное выражение для парсинга марок табачного блока', 
			 10, 
			 2, 
			 0); 

Подрезка криптохвоста марок

SRTB-4507 - Getting issue details... STATUS

10.2.91.0

Описание

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

До версии 10.2.91.0, кассовая программа сохраняла марки в полном виде при считывании и выгружала их в полном объеме.

Начиная с версии 10.2.91.0 реализована подрезка марок по длине, чтобы не могло появиться претензий к кассовой программе.

Условия работы

  • В информации хранящейся на кассе подрезка не осуществляется, так как смены на кассе все равно подрезаются со временем.
  • В базе данных операционного дня, марки в составе позиций чека хранятся в подрезанном виде.
  • Марки также могут выгружаться в подрезанном виде в ERP.
  • Подрезка включается также с помощью выполнения скрипта.
  • Настройки подрезки по умолчанию:
    • Подрезка не включается при обновлении на версию 10.2.91.0 или при установке из дистрибутива.
  • Принцип подрезки:
    • Акцизные марки алкогольных товаров не подрезаются.
    • Пачки табака подрезаются до 21 символа 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';

Включение валидации кода учета для ювелирных изделий

10.2.98.0

SRTB-4761 - Getting issue details... STATUS

CR-5012 - Getting issue details... STATUS

CR-5453 - Getting issue details... STATUS

Для ювелирных изделий регулярное выражение формата кода маркировки по умолчанию не установлено. При настройках по умолчанию любой код учёта будет распознаваться как некорректный.

Чтобы установить формат кода учёта 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);