Перейти к основному контенту

Настройка кодов "Честный Знак"

Проверка  DataMatrix-кода

https://честныйзнак.рф/upload/Структура DataMatrix.pdf или Структура DataMatrix_ЧЗ.pdf.
В файле находится описание кодов Датаматрикс. Обновляется примерно раз в 6 мес.

Проверка  DataMatrix-кода на соответствие стандарту проверяется регулярными выражениями
Новые настройки в файле abonementmanager.ini

[TrueMark]
RegExpListFillMode=0

Порядок формирования списка для проверки соответствия трека Честному знаку
0 - Если [TrueMark.RegExp] не пустая, то используется только содержимое [TrueMark.RegExp], в противном случае используются только встроенные регулярки
1 - Если [TrueMark.RegExp] не пустая, то используется только содержимое [TrueMark.RegExp] и этот список дополняется встроенными регулярками

Нижеперечисленные регулярные выражения являются встроенными:

[TrueMark.RegExp]
0=^01(0(\d{13}))21(.{13}).*$
1=^\(01\)(0(\d{13}))\(21\)(.{13}).*$
2=(^0(\d{13}))(.{7}).{4}.{4}$
3=(^0(\d{13}))(.{13}).{4}$
4=(^0(\d{13}))(.?.?.?.?.?.?.?.?.?.?.?.?.?)$

Для GTIN

0=(0(\d{13}))(){1,14}$

Регулярные выражения на проверку соответствия трека Честному знаку
Если список не пустой, то он используется в первую очередь. Смотри также RegExpListFillMode
У регулярных выражений должно быть минимум 3 группы (3 блока круглых скобок)
Группа 1:  14 символов - код группы товара ()
Группа 2:  13 символов - Бар-код товара (Обычно это 1 группа без первого символа "0", если первый символ - это "0")
Группа 3:  13 символов или меньше - Индивидуальный серийный номер единицы товара
Группа 4:   Дополнительная - Цена единицы измерения товара. Если в считанной последовательности по стандарту GS1 содержится дополнительный идентификатор применения «8005», то эта группа также участвует в формировании тега 1162
Тег 1162 формируется конкатенацией  Группа 1 + Группа 3 + Группа 4
Группа 2 служит для быстрого поиска товара по его Бар-коду в справочнике услуг Абонемента
При задании регулярных выражений в ini-файле следует использовать следующий формат: НазваниеПараметра=РегулярноеВыражение

Пример настройки сканера

abonementmanager.ini 

[TCPCardReader]
UseTCPCardReader=1
UseAnySymbolsInBarCode=1
PORT=7760
HOST=127.0.0.1
StartTermChars=;
FinishTermChars=]#13;#10;#0;
BarCodePrefix=Bar
PrefixMaskForProhibitDecode =Bar*

TCPCardReader.ini

[READER1]
;Честный знак
COMPORT=8
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
Prefix=;Bar
Postfix=]

;использовать decodecards.dll
useDecodeCards=0
StartTermChars=C;
FinishTermChars=?#13;#10;#0;

TrackLogFile=
ConvertTrackLog=0
IncludeTypeStartTermChar=0
IncludeStartTermChar=0
NeedCheckAndReopenCom=1