Почему при сканировании DataMatrix в 1С:Розница возникает ошибка и как её исправить?

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

Многие пользователи сталкиваются с тем, что после обновления конфигурации 1С:Розница или при начале работы с маркированной продукцией сканер Honeywell 1450g начинает выдавать ошибки при считывании кодов DataMatrix. Внезапный сбой торгового оборудования может парализовать работу кассы, поэтому важно знать алгоритм восстановления настроек. Чаще всего это сопровождается сообщением об ошибке с указанием конкретной позиции символа, например, «ошибка 31». Давайте разберем по шагам, как выявить причину и устранить эту неисправность.

Шаг 1: Проверка аппаратной части и режимов работы сканера

Первое, что необходимо сделать — исключить проблемы с передачей данных от сканера к компьютеру. Часто ошибки возникают из-за конфликта режима клавиатуры (USB-HID) с системными настройками.

  1. Сброс к заводским настройкам. Выполните сброс настроек сканера до заводских значений, используя управляющий штрихкод из документации к Honeywell 1450g. Это поможет устранить случайные искажения параметров.
  2. Смена режима подключения. Перевод сканера в режим USB-COM (эмуляция последовательного порта) — это самый надежный способ работы с маркировкой. Для этого часто рекомендуется подключение сканера штрихкода через драйвер NativeAPI, который обеспечивает стабильную связь в типовых конфигурациях. В этом режиме сканер передает данные напрямую через драйвер, минуя системную раскладку клавиатуры, что исключает ошибки из-за включенного Punto Switcher или других программ-перехватчиков.
  3. Проверка прошивки. Если проблема сохраняется, возможно, текущая версия прошивки сканера некорректно обрабатывает структуру кодов DataMatrix. Загрузите актуальное ПО для вашего устройства с официального сайта производителя.

Шаг 2: Анализ конфликта спецсимволов (Символ 29)

Одной из главных причин ошибок является наличие в коде DataMatrix спецсимвола GS (Групповой разделитель, ASCII-код 29 или FNC1). Если устройство не передает этот разделитель, может потребоваться расширение для передачи символа GS сканерами штрихкодов. Платформа использует XML для обмена данными между клиентом и сервером, а данный символ не является допустимым для стандартного XML. При передаче строки сканирования система «спотыкается» об этот символ.

Как проанализировать ситуацию:

Шаг 3: Программная коррекция обработки данных в 1С

Если обновление драйверов и настроек сканера не принесло результата, можно применить программный обходной путь. При получении данных от сканера, 1С должна корректно интерпретировать «хвост» маркировки. Рассмотрим пример того, как можно обрабатывать строку перед передачей:


// Пример логики обработки спецсимвола перед передачей на сервер
// В коде маркировки спецсимволы заменяются или экранируются
Функция ОбработатьКодМаркировки(ИсходнаяСтрока) Экспорт
    СимволГруппы = Символ(29);
    // Проверяем наличие спецсимвола в строке
    Если Найти(ИсходнаяСтрока, СимволГруппы) > 0 Тогда
        // Заменяем или удаляем символ в зависимости от требований 
        // Важно: для ФФД 1.2 символ должен быть корректно передан
        Результат = СтрЗаменить(ИсходнаяСтрока, СимволГруппы, ""); 
    КонецЕсли;
    Возврат Результат;
КонецФункции

Обратите внимание, что полное удаление спецсимвола может быть недопустимо для корректной валидации марки в Честном ЗНАКе. Поэтому лучше использовать методы замены на допустимые последовательности, которые 1С сможет успешно передать, а затем восстановить в серверной процедуре ККМ.

Шаг 4: Обновление БПО и драйверов

Не забывайте, что 1С:Розница использует Библиотеку подключаемого оборудования (БПО). Ошибки при сканировании часто связаны с тем, что старая версия БПО не умеет корректно парсить современные структуры DataMatrix согласно актуальным требованиям ФФД 1.2.

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

← На главную