- SRTB-4412Получение подробных данных проблемы… СТАТУС
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Получение подробных данных проблемы… СТАТУС
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';