Почему при продаже в розницу маркированного товара не проходит проверка QR-кода в 1С:УТ 10.3?

Системный администратор 1С v8.3 (Обычные формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

Рассмотрим распространенную ситуацию, с которой сталкиваются пользователи программы 1С:УправлениеТорговлей редакции 10.3 при розничной продаже маркированной продукции (молочная продукция, упаковочная вода). При сканировании штрихкода DataMatrix кассовый аппарат, работающий по формату ФФД 1.2, выдает ошибку: "Найдена ошибка при проверке кода". При этом сигареты могут сканироваться и продаваться без каких-либо проблем. Проанализируем эту ситуацию и разберем по шагам, как правильно настроить оборудование.

В чем разница между кодами маркировки сигарет и молока (или воды)?

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

Коды маркировки для молочной продукции и воды, напротив, содержат блоки данных переменной длины (например, переменный вес товара или срок годности). По стандарту GS1 DataMatrix, такие блоки обязательно должны отделяться друг от друга специальным непечатным символом GS (в таблице ASCII он имеет код 0x1D). Если этот разделитель теряется при сканировании, система ошибочно склеивает данные. В результате ККТ формирует некорректный запрос на сервер проверки «Честного ЗНАКа» и возвращает отрицательный статус.

Главная проблема режима эмуляции клавиатуры

Посмотрим на настройки сканера штрихкодов. Чаще всего сканеры "из коробки" работают в режиме эмуляции разрыва клавиатуры (USB-HID). В этом режиме сканер притворяется обычной клавиатурой и быстро "печатает" считанные символы.

Поскольку символ GS является служебным и физически отсутствует на стандартной клавиатуре компьютера, драйверы операционной системы Windows часто просто игнорируют или «съедают» его при вводе. В результате сканер передает в 1С сплошную текстовую строку без необходимых разделителей, что критично для ФФД 1.2.

Что такое префикс AIM-кода и зачем он нужен?

Разберем еще один важный нюанс. Для корректной работы с маркировкой по ФФД 1.2 кассы и товароучетные системы требуют передачи AIM-кода (идентификатора символики). Для кодов DataMatrix правильным префиксом является комбинация символов ]d2. Если сканер аппаратно не передает этот префикс перед самим кодом маркировки, касса может не понять, что перед ней именно маркированный товар.

Часто пользователи путают этот префикс с суффиксом CR (возврат каретки) или ищут мифический префикс CF в настройках 1С. Важно понимать: префикс ]d2 настраивается именно в самом сканере считыванием специального сервисного штрихкода.

Способы решения проблемы

Проанализируем доступные технические пути настройки оборудования для стабильной работы 1С с маркировкой.

  1. Перевод сканера в режим виртуального COM-порта (USB-CDC / RS-232)

    Это самый надежный способ работы с маркировкой и ФФД 1.2. В режиме COM-порта данные от сканера передаются в 1С напрямую в виде «сырых» байтов. Драйверы клавиатуры Windows в процесс не вмешиваются, поэтому все непечатные разделители доходят до кассы в первозданном виде. Для этого необходимо:

    1. Считать из инструкции к сканеру управляющий штрихкод "USB COM" (или "Virtual COM").

    2. Установить драйвер виртуального COM-порта от производителя сканера.

    3. В 1С открыть настройки торгового оборудования и в параметрах драйвера сканера указать появившийся в системе COM-порт.

  2. Настройка символа GS в режиме клавиатуры

    Если перевести сканер в COM-порт невозможно, придется перепрограммировать его для правильной работы в режиме клавиатуры. Сканер нужно настроить так, чтобы он передавал символ разделителя альтернативным способом:

    1. Использование Alt-кодов. Сканер настраивается на эмуляцию нажатия клавиши Alt и цифрового кода (Alt+0029).

    2. Замена символа на функциональную клавишу. С помощью сервисных штрихкодов символ GS заменяется, например, на F8. После этого в самой 1С, в параметрах драйвера устройства ввода, необходимо указать эту клавишу в качестве разделителя данных.

  3. Включение передачи AIM-кода

    Обязательно найдите в инструкции к вашему сканеру штрихкод с названием "Transmit AIM ID" или "Transmit Code ID Character" и считайте его. Это включит передачу идентификатора символики перед основным кодом.

Как проверить работу сканера?

Чтобы убедиться, что сканер настроен правильно, выполним простую проверку:

1. Откройте текстовый редактор Notepad++.

2. Включите отображение всех символов (Вид -> Отображение символов -> Отображать все символы).

3. Отсканируйте марку с молочной продукции или воды.

4. В считанной строке вы должны визуально увидеть непечатный символ (обычно он отображается как черный прямоугольник с надписью GS).

Также проверку можно выполнить встроенными средствами 1С. Откройте параметры компоненты «1С:Сканеры штрихкода» (желательно использовать самую свежую версию драйвера). В окне настроек есть кнопка "Тест устройства". При сканировании марки в этом окне символ разделителя должен отобразиться текстом (например, как `GS` или ``). Если в тесте 1С данного символа нет — кассовый аппарат код маркировки не примет.

← На главную