Почему не определяется драйвер сканера штрихкодов в 1С под 64-битной Windows и как исправить ошибки передачи кодов через RDP?

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

При подключении торгового оборудования в современных конфигурациях «1С:Предприятие» (например, «1С:Управление торговлей 11») системные администраторы часто сталкиваются с ситуацией: тестовая утилита от производителя видит сканер и корректно считывает штрихкоды, однако в самой «1С» в карточке подключаемого оборудования отображается статус Драйвер: Не установлен. Последующая настройка работы устройства в терминальной сессии (RDP) нередко приводит ко второй проблеме — потере части символов или разбиению одного штрихкода на два независимых события. Разберем по шагам причины этих неполадок и рассмотрим способы их надежного устранения.

Причина ошибки «Драйвер: Не установлен» на Windows x64

Проанализируем архитектуру используемых компонентов. Популярный комплект драйверов торгового оборудования АТОЛ линейки DTO 6.x (выпуск 2009 года) является исключительно 32-разрядной (x86) COM-библиотекой. В операционных системах Windows Server x64 или Windows 7/10/11 x64 разрядность исполняемого процесса и загружаемых им библиотек должна строго совпадать.

Если на клиентской машине или сервере терминалов запущен 64-битный тонкий клиент «1С:Предприятие» (1cv8c.exe из каталога Program Files), он физически не может загрузить 32-битный DLL-файл драйвера в свое адресное пространство. В результате система выдает сообщение об отсутствии драйвера, несмотря на его успешную инсталляцию в операционной системе.

Шаг 1. Переход на 32-разрядный клиент «1С:Предприятие»

Для корректного подключения старых 32-битных внешних компонент торгового оборудования выполним следующие действия:

  1. Закроем текущие сеансы «1С:Предприятие».
  2. Установим или запустим 32-разрядную версию платформы «1С:Предприятие». Исполняемые файлы нужной разрядности располагаются в каталоге C:\Program Files (x86)\1cv8\ваша_версия_платформы\bin\1cv8c.exe.
  3. Если библиотека драйвера не зарегистрировалась автоматически, выполним ручную регистрацию через системную утилиту SysWOW64 с правами локального администратора.

Пример команды для регистрации 32-битной библиотеки в 64-битной Windows:


C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\ATOL\Drivers\Bin\Scaner1C.dll"

После запуска 32-битного клиента «1С» драйвер успешно инициализируется в справочнике торгового оборудования и переходит в рабочее состояние.

Шаг 2. Устранение обрывов и задвоения штрихкодов в RDP-сессии (режим клавиатуры)

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

Для стабилизации клавиатурного ввода применим следующие настройки:

  1. Настройка чувствительности клавиатурного ввода (Sensitivity/Timeout): в параметрах драйвера АТОЛ зададим таймаут чувствительности в диапазоне 150–200 мс. Это позволит драйверу корректно склеивать пакеты, даже если между ними возникла сетевая пауза.
  2. Аппаратная межсимвольная задержка (Inter-character delay): с помощью настроечных сервисных штрихкодов из инструкции к конкретной модели сканера активируем задержку между отправкой символов (обычно 10–25 мс). Это снизит пиковую нагрузку на клавиатурный буфер RDP.
  3. Проверка префиксов и суффиксов: убедимся, что сканер аппаратно отправляет суффикс перевода каретки CR (Enter, код 13), что помогает обработчику 1С однозначно зафиксировать конец входящего потока.

Шаг 3. Переход на штатный драйвер «1С:Сканеры штрихкода (NativeApi)»

Использование устаревшего драйвера АТОЛ 6.х несет в себе риски сбоев и зависимость от разрядности. Более стабильным решением является переход на стандартную библиотеку «1С:Сканеры штрихкода (NativeApi)», которая входит в состав типовых конфигураций «1С». Данная компонента доступна как в 32-битной, так и в 64-битной сборке и поддерживает работу без использования устаревших технологий COM/ActiveX.

  1. Удалим старый драйвер АТОЛ из списка подключенного оборудования конфигурации.
  2. Создадим новый экземпляр оборудования с типом Сканеры штрихкода и выберем обработчик 1С:Сканеры штрихкода (NativeApi).
  3. Установим драйвер непосредственно по кнопке из интерфейса «1С».
  4. Настроим клавиатурный перехват в параметрах драйвера, задав соответствующий порт ввода (Клавиатура) и управляющие суффиксы.

Шаг 4. Радикальное решение: перевод сканера в режим виртуального COM-порта (VCP)

Эмуляция клавиатуры в терминале всегда подвержена рискам: она зависит от текущей раскладки клавиатуры клиента (русский/английский), состояния клавиши Caps Lock и фокуса курсора в конкретном поле ввода. Наиболее надежный промышленный вариант работы со сканером через RDP — перевод устройства в режим виртуального последовательного порта (Virtual COM Port).

Преимущества режима COM-порта:

  1. Обработка события сканирования происходит в платформе через внешнее событие независимо от того, где находится фокус ввода на форме.
  2. Раскладка клавиатуры и язык операционной системы не искажают считываемые буквенно-цифровые символы и коды DataMatrix.
  3. Исключаются потери данных, обусловленные буферизацией клавиатуры в протоколе RDP.

Разберем по шагам порядок настройки проброса порта:

  1. Управляющим штрихкодом из руководства пользователя переведем сканер в режим USB Virtual COM.
  2. Установим на локальный компьютер VCP-драйвер от производителя сканера. В диспетчере устройств локального ПК появится новый последовательный порт, например COM3.
  3. В настройках ярлыка удаленного рабочего стола (файл .rdp) перейдем на вкладку Локальные ресурсы, нажмем Подробнее и отметим флажком пункт Порты. В файле конфигурации этому соответствует директива: redirectcomports:i:1
  4. Подключимся к серверу терминалов. Проверим наличие проброшенного порта в командной строке сервера: change port /query
  5. Если автоматическое сопоставление не произошло, принудительно подключим порт командой: net use COM4: \\tsclient\COM3
  6. В базе «1С:Предприятие» в настройках торгового оборудования укажем тип подключения COM-порт, выберем соответствующий номер порта на сервере и установим скорость передачи данных (как правило, 9600 или 115200).

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

← На главную