Как настроить сканер АТОЛ SB2109 BT для корректной передачи символа GS в 1С

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

При работе с маркированными товарами (сигареты, обувь, одежда) пользователи часто сталкиваются с проблемой: сканер штрихкода АТОЛ SB2109 BT вместо невидимого разделителя GS (Group Separator) передает в программу графический символ «стрелочки» (↔). Рассмотрим, почему это происходит, и разберем пошагово способы решения этой задачи, чтобы коды маркировки «Честный Знак» корректно распознавались в 1С.

Почему появляются «стрелочки» вместо разделителя?

Проанализируем техническую сторону вопроса. Символ GS имеет ASCII-код 29. В режиме эмуляции клавиатуры (HID), который установлен на большинстве сканеров «из коробки», устройство имитирует нажатие клавиш. Поскольку в стандартной раскладке клавиатуры клавиши, соответствующей коду 29, не существует, драйвер операционной системы Windows интерпретирует этот сигнал некорректно. В результате вместо управляющего символа в текстовое поле 1С вставляется графический символ из текущего шрифта — та самая двусторонняя стрелочка «↔».

Для системы маркировки это критично: 1С ожидает увидеть именно спецсимвол Символ(29), чтобы разбить штрихкод на функциональные блоки (GTIN, серийный номер, ключ проверки). Если вместо него приходит стрелочка, проверка кода завершается ошибкой «Некорректный формат марки». Для исправления ошибок ввода в клавиатурном режиме можно использовать решение проблемы с потерей символов GS.

Решение 1: Перевод сканера в режим эмуляции COM-порта (Bluetooth SPP)

Это самый надежный способ решения проблемы. В режиме виртуального COM-порта данные передаются напрямую в виде байтов, минуя обработчик клавиатуры Windows. Выясним, как это реализовать:

  1. Найдите полное руководство пользователя (User Manual) для АТОЛ SB2109 BT. В краткой инструкции, идущей в комплекте, нужного кода может не быть.
  2. Отсканируйте управляющий штрихкод «Bluetooth SPP Mode».
  3. В операционной системе Windows выполните поиск Bluetooth-устройств. После сопряжения в диспетчере устройств появится новый входящий Standard Serial over Bluetooth link (виртуальный COM-порт). Запомните его номер (например, COM5).
  4. Перейдем в 1С. Откроем раздел «Администрирование» — «Подключаемое оборудование».
  5. В настройках сканера выберем драйвер 1С:Сканеры штрихкода (NativeApi).
  6. Нажмем «Настроить» и укажем номер нашего COM-порта. Теперь символ GS будет приходить в систему в чистом виде.

Решение 2: Использование специфических настроечных кодов

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

Важно: Для корректной работы этих режимов убедитесь, что в момент сканирования на компьютере включена английская раскладка клавиатуры, либо отсканируйте код Universal Keyboard из мануала.

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

Если настроить само оборудование не удается, мы можем прибегнуть к программной коррекции входящих данных. Посмотрим на пример кода, который можно внедрить в процедуру обработки внешнего события или в расширение для драйвера сканера. Нам нужно заменить «неправильную» стрелочку на корректный разделитель. В качестве готового решения можно использовать расширение для дополнения кодов маркировки символом GS.


// Пример преобразования строки штрихкода
Функция ОчиститьШтрихкодОтСтрелочек(ИсходныйШтрихкод) Экспорт
    
    // Определяем символ стрелочки, который выдает сканер
    СимволСтрелочки = "↔"; 
    
    // Заменяем его на стандартный Group Separator (ASCII 29)
    ПравильныйGS = Символ(29);
    
    Результат = СтрЗаменить(ИсходныйШтрихкод, СимволСтрелочки, ПравильныйGS);
    
    Возврат Результат;
КонецФункции

Разберем, как это работает: метод СтрЗаменить находит все вхождения графического символа и подставляет на их место управляющий символ, который 1С успешно распознает как разделитель блоков DataMatrix.

Решение 4: Настройка символа-разделителя в драйвере 1С

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

  1. Зайдите в тест устройства в настройках подключаемого оборудования 1С.
  2. Отсканируйте код маркировки. Вы увидите строку со стрелочками.
  3. Скопируйте символ стрелочки «↔» прямо из окна теста.
  4. Найдите в настройках драйвера поле «Символ GS» или «Разделитель» и вставьте туда скопированный символ.
  5. Сохраните настройки. Теперь драйвер будет понимать, что при получении этого знака нужно интерпретировать его как разделитель GS1.

Рекомендации по обновлению прошивки

Выясним причину, по которой старые версии АТОЛ SB2109 BT работают нестабильно. В ранних версиях прошивки (до 2020 года) алгоритмы разбора DataMatrix не были оптимизированы под российскую систему «Честный Знак». Если ни один из вышеперечисленных методов не помогает, рекомендуется обновить прошивку сканера до актуальной версии. Актуальные файлы прошивки и утилиту для прошивки (обычно это ScanSetting) можно запросить в сервисном центре АТОЛ.

Помните: правильная работа с маркировкой требует обязательной передачи разделителя. Без него 1С не сможет выделить криптохвост из кода, что приведет к невозможности легальной продажи товара через ККТ.

← На главную