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

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

- **<u><span style="text-decoration: underline;">[Модуль работы с маркированной продукцией "Честный Знак"](https://docs.shelter.ru/books/ustanovka-i-nastroyka-po-abonement/page/modul-raboty-s-markirovannoy-produktsiey-chestnyy-znak "Модуль работы с маркированной продукцией "Честный Знак"")</span></u>
- **<u>[Разрешительный режим](https://docs.shelter.ru/books/ustanovka-i-nastroyka-po-abonement/page/razresitelnyi-rezim-dlya-markirovannoi-produkcii)</u>**
- **<u>[АТОЛ. "Честный Знак"](https://docs.shelter.ru/books/podklyucenie-kkt-k-abonement/page/atol-rabota-s-markirovannoi-produkciei-cestnyi-znak)</u>**
- **<u>["Честный знак" и GTIN из RK7 в Абонемент](https://docs.shelter.ru/books/ustanovka-i-nastroyka-po-abonement/page/cestnyi-znak-i-gtin-iz-rk7-v-abonement)</u><u>  
    </u>**

https://честныйзнак.рф/upload/Структура DataMatrix.pdf или [Структура DataMatrix\_ЧЗ.pdf](https://docs.shelter.ru/attachments/91).  
В файле находится описание кодов Датаматрикс. Обновляется примерно раз в 6 мес.

<div id="bkmrk-%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D1%81%D0%BA%D0%B0%D0%BD%D0%B5%D1%80%D0%B0-%D0%BD%D0%B0-">**Проверка сканера на готовность к работе с маркированной продукцией и корректность его конфигурации:**</div><div id="bkmrk-%D0%A1%D0%BA%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%D0%B5-putty%C2%A0htt">Скачиваете PuTTY [https://www.putty.org/](https://www.putty.org/)</div><div id="bkmrk-tcpcardreader-%D0%B4%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD">TcpCardReader должен быть выключен, чтобы не перехватывать сканер.</div><div id="bkmrk-connection-type%3A-ser">Connection type: Serial</div><div id="bkmrk-com-%D0%BF%D0%BE%D1%80%D1%82-%D1%81%D0%BA%D0%B0%D0%BD%D0%B5%D1%80%D0%B0%C2%A0-%E2%80%94%C2%A0">COM-порт сканера — Open.</div>[![image.png](https://docs.shelter.ru/uploads/images/gallery/2025-05/scaled-1680-/u1jimage.png)](https://docs.shelter.ru/uploads/images/gallery/2025-05/u1jimage.png)

<div id="bkmrk-%C2%A0"> </div><div id="bkmrk-%D0%94%D0%B0%D0%BB%D0%B5%D0%B5-%D1%81%D0%BA%D0%B0%D0%BD%D0%B8%D1%80%D1%83%D0%B5%D1%82%D0%B5-%D1%82%D0%B5%D1%81">Далее сканируете тестовую марку.</div><div id="bkmrk--0"></div>[![image.png](https://docs.shelter.ru/uploads/images/gallery/2025-05/scaled-1680-/gHgimage.png)](https://docs.shelter.ru/uploads/images/gallery/2025-05/gHgimage.png)

<div id="bkmrk-%C2%A0-0"> </div><div id="bkmrk-%D0%94%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F-%D1%80%D0%B5">Должен получиться результат, как на скриншоте:</div><div id="bkmrk-%C2%A00102900000632271215"> 0102900000632271215(oFsnlUM&amp;GJ%93dGVz</div>[![image.png](https://docs.shelter.ru/uploads/images/gallery/2025-05/scaled-1680-/a0yimage.png)](https://docs.shelter.ru/uploads/images/gallery/2025-05/a0yimage.png)

####  

#### **Абонемент**

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

```
[TrueMark]
RegExpListFillMode=1
```

Порядок формирования списка для проверки соответствия трека Честному знаку  
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=]

useDecodeCards=0

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