Рассмотрим распространенную ситуацию, с которой сталкиваются пользователи программы 1С:УправлениеТорговлей редакции 10.3 при розничной продаже маркированной продукции (молочная продукция, упаковочная вода). При сканировании штрихкода DataMatrix кассовый аппарат, работающий по формату ФФД 1.2, выдает ошибку: "Найдена ошибка при проверке кода". При этом сигареты могут сканироваться и продаваться без каких-либо проблем. Проанализируем эту ситуацию и разберем по шагам, как правильно настроить оборудование.
Для начала выясним причину, почему одна товарная группа пробивается успешно, а другая вызывает сбой кассы. Коды маркировки для табачной продукции имеют строгую, фиксированную длину и заранее известную структуру. Товароучетные системы и драйверы ККТ способны корректно разобрать такой код, даже если при передаче данных от сканера к компьютеру были утеряны некоторые служебные непечатные символы.
Коды маркировки для молочной продукции и воды, напротив, содержат блоки данных переменной длины (например, переменный вес товара или срок годности). По стандарту GS1 DataMatrix, такие блоки обязательно должны отделяться друг от друга специальным непечатным символом GS (в таблице ASCII он имеет код 0x1D). Если этот разделитель теряется при сканировании, система ошибочно склеивает данные. В результате ККТ формирует некорректный запрос на сервер проверки «Честного ЗНАКа» и возвращает отрицательный статус.
Посмотрим на настройки сканера штрихкодов. Чаще всего сканеры "из коробки" работают в режиме эмуляции разрыва клавиатуры (USB-HID). В этом режиме сканер притворяется обычной клавиатурой и быстро "печатает" считанные символы.
Поскольку символ GS является служебным и физически отсутствует на стандартной клавиатуре компьютера, драйверы операционной системы Windows часто просто игнорируют или «съедают» его при вводе. В результате сканер передает в 1С сплошную текстовую строку без необходимых разделителей, что критично для ФФД 1.2.
Разберем еще один важный нюанс. Для корректной работы с маркировкой по ФФД 1.2 кассы и товароучетные системы требуют передачи AIM-кода (идентификатора символики). Для кодов DataMatrix правильным префиксом является комбинация символов ]d2. Если сканер аппаратно не передает этот префикс перед самим кодом маркировки, касса может не понять, что перед ней именно маркированный товар.
Часто пользователи путают этот префикс с суффиксом CR (возврат каретки) или ищут мифический префикс CF в настройках 1С. Важно понимать: префикс ]d2 настраивается именно в самом сканере считыванием специального сервисного штрихкода.
Проанализируем доступные технические пути настройки оборудования для стабильной работы 1С с маркировкой.
Это самый надежный способ работы с маркировкой и ФФД 1.2. В режиме COM-порта данные от сканера передаются в 1С напрямую в виде «сырых» байтов. Драйверы клавиатуры Windows в процесс не вмешиваются, поэтому все непечатные разделители доходят до кассы в первозданном виде. Для этого необходимо:
1. Считать из инструкции к сканеру управляющий штрихкод "USB COM" (или "Virtual COM").
2. Установить драйвер виртуального COM-порта от производителя сканера.
3. В 1С открыть настройки торгового оборудования и в параметрах драйвера сканера указать появившийся в системе COM-порт.
Если перевести сканер в COM-порт невозможно, придется перепрограммировать его для правильной работы в режиме клавиатуры. Сканер нужно настроить так, чтобы он передавал символ разделителя альтернативным способом:
1. Использование Alt-кодов. Сканер настраивается на эмуляцию нажатия клавиши Alt и цифрового кода (Alt+0029).
2. Замена символа на функциональную клавишу. С помощью сервисных штрихкодов символ GS заменяется, например, на F8. После этого в самой 1С, в параметрах драйвера устройства ввода, необходимо указать эту клавишу в качестве разделителя данных.
Обязательно найдите в инструкции к вашему сканеру штрихкод с названием "Transmit AIM ID" или "Transmit Code ID Character" и считайте его. Это включит передачу идентификатора символики перед основным кодом.
Чтобы убедиться, что сканер настроен правильно, выполним простую проверку:
1. Откройте текстовый редактор Notepad++.
2. Включите отображение всех символов (Вид -> Отображение символов -> Отображать все символы).
3. Отсканируйте марку с молочной продукции или воды.
4. В считанной строке вы должны визуально увидеть непечатный символ (обычно он отображается как черный прямоугольник с надписью GS).
Также проверку можно выполнить встроенными средствами 1С. Откройте параметры компоненты «1С:Сканеры штрихкода» (желательно использовать самую свежую версию драйвера). В окне настроек есть кнопка "Тест устройства". При сканировании марки в этом окне символ разделителя должен отобразиться текстом (например, как `GS` или `