Как решить проблему некорректной работы сканера штрихкодов в режиме клавиатуры (HID) в 1С:Управление торговлей 10.3 через RDP?

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

При работе с программным обеспечением 1С:Предприятие, особенно через удаленный рабочий стол (RDP) и со старыми конфигурациями, такими как 1С:Управление торговлей 10.3, пользователи часто сталкиваются с трудностями при переходе со сканеров штрихкодов, работающих через COM-порт, на современные устройства в режиме эмуляции клавиатуры (HID). В этом материале мы подробно рассмотрим причины возникновения таких проблем и предложим эффективные пути их решения, основываясь на опыте сообщества 1С.

Давайте выясним, почему сканер, прекрасно работающий в текстовом редакторе на удаленном ПК, некорректно обрабатывается в 1С, и как мы можем это исправить.

Причины возникновения проблемы

Прежде чем перейти к решениям, нам необходимо понять суть проблемы. Когда сканер штрихкодов работает в режиме эмуляции клавиатуры (HID), он по сути имитирует обычный набор символов с клавиатуры. Для операционной системы и большинства программ это выглядит как быстрый ввод текста. Однако для 1С, особенно для конфигураций, не использующих управляемые формы, требуется специальный механизм для распознавания такого ввода как события сканирования штрихкода, а не простого набора текста.

Разберем основные моменты:

  1. Режим эмуляции клавиатуры (HID): Сканер в этом режиме просто «набивает» цифры штрихкода, а затем, как правило, посылает суффикс (например, возврат каретки #13, он же Enter). 1С воспринимает эти цифры как ручной ввод в активное поле, а суффикс Enter — как обычное нажатие клавиши Enter. Это приводит к тому, что в списке номенклатуры просто нажимается Enter, а в поле ввода цифры остаются, но не инициируются события поиска или создания нового товара.
  2. Работа через RDP: При удаленном подключении через RDP могут возникать небольшие, но критичные задержки в передаче данных. Это дополнительно усложняет для драйвера 1С распознавание быстрого потока символов со сканера как единого штрихкода, а не как последовательного, пусть и быстрого, ввода с клавиатуры.

Итак, главная задача — заставить 1С понять, что это не просто набор текста, а целенаправленное сканирование штрихкода.

Решение 1: Перевод сканера в режим COM-порта (SPP) или виртуального COM-порта (VCOM)

Самым надежным и рекомендуемым способом решения подобных проблем, особенно при работе в терминальных сессиях (RDP) и с критически важными операциями (например, с маркированным товаром), является использование сканера в режиме COM-порта или его эмуляции (VCOM). В этом режиме сканер передает данные напрямую драйверу, что позволяет избежать многих проблем, связанных с эмуляцией клавиатуры и особенностями RDP.

Давайте рассмотрим подробнее, как мы можем это сделать:

  1. Проверяем поддержку COM-режима вашим сканером.

    Многие современные сканеры, такие как упоминаемый в нашей теме ATOL SB2109BT, поддерживают несколько режимов работы, включая Bluetooth HID (эмуляция клавиатуры) и Bluetooth SPP (Serial Port Profile, эмуляция COM-порта). Нам необходимо убедиться, что ваш сканер имеет такую возможность. Информацию об этом мы всегда найдем в руководстве по эксплуатации устройства или на сайте производителя.

  2. Переключаем сканер в режим COM-порта.

    Для этого нам потребуется отсканировать специальные штрихкоды из руководства по эксплуатации сканера. Обычно производители предоставляют набор штрихкодов для изменения различных настроек, включая режим интерфейса. В некоторых случаях может быть доступна специальная утилита (например, Serial Port Utility от АТОЛ) для настройки сканера через USB до его подключения по Bluetooth. После успешного переключения в Диспетчере устройств локального компьютера должен появиться виртуальный COM-порт.

  3. Пробрасываем COM-порт в RDP-сессию.

    Если мы работаем через RDP, нам критически важно пробросить созданный виртуальный COM-порт в удаленную сессию. Это делается в настройках подключения RDP. Обычно, перед подключением к удаленному рабочему столу, нам необходимо перейти в раздел "Локальные ресурсы" или "Дополнительно..." и убедиться, что установлен флажок напротив "Порты" или "Последовательные порты". Это позволит удаленному компьютеру увидеть локальный COM-порт.

  4. Настраиваем подключение в 1С:Управление торговлей 10.3.

    После того как порт проброшен и доступен на удаленном ПК, переходим к настройке в 1С:

    1. Включаем использование подключаемого оборудования. Нам следует убедиться, что в конфигурации 1С установлен флажок "Использовать подключаемое оборудование". В УТ 10.3 эту настройку мы можем найти в "Константах" или через меню "Сервис" -> "Торговое оборудование" -> "Подключение и настройка торгового оборудования".

    2. Добавляем и настраиваем сканер. В списке "Подключаемое оборудование" нам необходимо добавить новый элемент типа "Сканеры штрихкода".

      В настройках:

      • Драйвер: Выбираем "1С:Сканеры штрихкода" или соответствующий драйвер от производителя вашего сканера (например, "Драйвер АТОЛ: Сканеры штрихкода").

      • Порт: Указываем номер проброшенного COM-порта (например, COM1, COM2, COM3 и т.д.), который мы видели в Диспетчере устройств удаленного ПК.

      • Префиксы и суффиксы: Убеждаемся, что префиксы и суффиксы, настроенные в сканере, совпадают с теми, что указаны в настройках драйвера 1С. Для большинства сканеров по умолчанию используется суффикс 'CR' (возврат каретки, ASCII код #013). Это крайне важный момент, так как именно суффикс сигнализирует 1С о завершении ввода штрихкода.

    3. Используем "Тест подключения". После настройки обязательно воспользуемся функцией "Тест подключения" в окне настроек драйвера 1С. Это позволит нам увидеть, какие данные (включая префиксы и суффиксы) сканер передает и как 1С их интерпретирует. Если тест проходит успешно и мы видим корректный штрихкод, то подключение настроено верно.

Решение 2: Тщательная настройка сканера в режиме клавиатуры (HID) и драйвера 1С

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

Разберем необходимые шаги:

  1. Устанавливаем универсальный драйвер "1С:Сканеры штрихкода".

    Даже для клавиатурного сканера нам нужен универсальный драйвер, который поможет 1С распознавать ввод. Убедимся, что драйвер установлен на RDP-сервере (где запущена 1С), а не только на локальном компьютере клиента. При установке всегда рекомендуется запускать инсталлятор "от имени администратора".

  2. Настраиваем подключение в 1С:Управление торговлей 10.3.

    Аналогично предыдущему решению, нам нужно добавить сканер в список подключаемого оборудования:

    1. Включаем использование подключаемого оборудования. Как и ранее, нам нужно убедиться, что флажок "Использовать подключаемое оборудование" активен.

    2. Добавляем и настраиваем сканер.

      • Драйвер: Выбираем "1С:Сканеры штрихкода".

      • Порт: В этом случае мы выбираем "Клавиатура".

      • Критически важные префиксы и суффиксы: Это ключевой момент для HID-сканеров. Мы должны убедиться, что сканер сам по себе выдает определенный суффикс после штрихкода (чаще всего это Enter или CR, ASCII #013). Этот же суффикс должен быть прописан в настройках драйвера 1С для сканера. Без корректного суффикса 1С не сможет понять, где заканчивается штрихкод и что с ним делать.

        Если нам необходимо, чтобы сканер имитировал нажатие "горячей клавиши" (например, F7 для вызова окна поиска по штрихкоду в УТ 10.3), то сканер должен быть настроен на выдачу этого префикса F7 перед самим штрихкодом. Проблема в том, что настройка таких префиксов непосредственно в сканере (например, ATOL SB2109BT) может быть не всегда интуитивно понятной, и инструкция может содержать лишь штрихкод для активации режима добавления префиксов, но не список самих префиксов. В этом случае нам придется углубленно изучать документацию к сканеру или использовать специализированные утилиты для его программирования.

    3. Используем "Тест подключения". Как и в случае с COM-портом, "Тест подключения" поможет нам убедиться, что 1С корректно получает данные и распознает префиксы/суффиксы. Если в текстовый документ штрихкод сканируется корректно, а в тесте 1С или в рабочих формах нет, это указывает на рассогласование настроек сканера и драйвера 1С.

Общие рекомендации и устранение возможных проблем

Независимо от выбранного режима работы сканера, существуют общие рекомендации, которые помогут нам в процессе настройки и устранения неисправностей:

  1. Актуальность драйверов. Мы всегда должны использовать самые свежие версии универсальных драйверов "1С:Сканеры штрихкода". Их можно найти на официальном портале 1С или на сайтах производителей торгового оборудования (например, АТОЛ). Устаревшие драйверы могут содержать ошибки или быть несовместимыми с новыми версиями операционных систем или 1С.
  2. Правильная установка драйвера. При установке любого драйвера для 1С, мы всегда запускаем инсталлятор "от имени администратора". Если проблема "Драйвер не установлен" или "Версия не определена" сохраняется, возможно, потребуется ручная регистрация компоненты ScanOPOS.dll через командную строку с правами администратора, используя команду regsvr32 C:\Path\To\ScanOPOS.dll.
  3. Особенности RDP и чувствительность драйвера. При работе через RDP, из-за возможных задержек, драйвер 1С может ошибочно интерпретировать быстрый ввод со сканера как медленный ручной набор с клавиатуры, что приводит к некорректной обработке. Некоторые драйверы сканеров (например, от АТОЛ) имеют настройку чувствительности или скорости распознавания, изменение которой может помочь в таких случаях. Мы можем попробовать "поиграться" с этими настройками.
  4. Понимание поведения 1С. Если сканер в режиме HID просто "печатает" цифры в поле и нажимает Enter (например, в списке номенклатуры), это означает, что 1С не получает специализированного "события сканирования штрихкода". Вместо этого она воспринимает ввод как обычное взаимодействие с клавиатурой. В УТ 10.3 автоматическое открытие карточки товара по штрихкоду или предложение создать новую номенклатуру (например, в чеке ККМ) происходит только при получении 1С именно события сканирования через настроенный драйвер, а не просто ввода текста. Это фундаментальное отличие, которое режим COM-порта обходит, передавая данные напрямую драйверу 1С.

Таким образом, для эффективного решения проблемы мы рекомендуем в первую очередь сосредоточиться на переводе сканера ATOL SB2109BT в режим COM-порта и его дальнейшей настройке в 1С через соответствующий порт. Этот метод зарекомендовал себя как наиболее стабильный и предсказуемый в условиях работы с 1С через RDP. Если же это невозможно, нам придется приложить значительные усилия к тонкой настройке сканера в режиме HID и универсального драйвера 1С, тщательно синхронизируя префиксы и суффиксы на обеих сторонах.

← На главную