Как подключить и настроить сканер штрихкодов в 1С через RDP и решить ошибку вызова метода «Занять»?

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

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

Проанализируем суть проблемы

Рассмотрим классическую ситуацию: имеется 2D-сканер (например, Honeywell Voyager 1400g), который физически подключен к локальному компьютеру по USB, но база 1С работает на удаленном сервере (через RDP). Пользователь пытается считать штрихкод с накладной, чтобы программа нашла нужный документ. При попытке подключения оборудования в 1С через внешнюю компоненту (например, 1CScanOPOScan_v2), система выдает следующую ошибку:


{ВнешняяОбработка.СканерШтрихкода.МодульОбъекта(260)}: Ошибка при вызове метода контекста (Занять) 
Если Объект.Драйвер.Занять(1) = 0 Тогда 
по причине: Ошибка вызова метода внешней компоненты

Выясним причину такого поведения. Для этого нам необходимо начать с базовых принципов работы сканирующего оборудования.

Разберем принципы работы сканеров: Режим клавиатуры (HID) против COM-порта

Современные сканеры, независимо от физического интерфейса (USB, Bluetooth), могут работать в двух основных логических режимах. Посмотрим на них внимательнее:

  1. Режим эмуляции клавиатуры (HID - Human Interface Device): Сканер притворяется обычной клавиатурой. Когда вы сканируете штрихкод, устройство просто очень быстро «нажимает» клавиши с цифрами и буквами.

    Минусы для 1С: Для корректной работы курсор обязательно должен стоять в нужном поле ввода (например, в поле поиска). Если окно 1С не активно, данные потеряются. Кроме того, на передачу символов напрямую влияет текущая раскладка клавиатуры (RUS/ENG) и включенный CapsLock, что часто приводит к искажению данных.

  2. Режим эмуляции COM-порта (Virtual COM Port / VCP): В этом режиме драйвер создает в системе виртуальный последовательный порт (например, COM3). Сканер отправляет данные в этот порт, а 1С непрерывно «слушает» его.

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

Почему для маркировки (Честный ЗНАК) нужно переводить сканер в COM-порт?

Проанализируем ситуацию с двумерными штрихкодами (DataMatrix), которые используются для маркировки. Эти коды содержат длинные последовательности символов, включая служебные спецсимволы (например, разделители GS).

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

Особенности настройки сканеров Honeywell: как использовать EzConfig

В процессе настройки специалисты часто сталкиваются с фирменной утилитой Honeywell — EzConfig (запускается через браузер). Давайте проясним ее назначение.

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

На практике для перевода сканера Honeywell в режим эмуляции COM-порта достаточно взять инструкцию (Quick Start Guide) и отсканировать один управляющий штрихкод: USB Serial Emulation. После этого Windows обнаружит новое устройство и установит драйвер виртуального COM-порта.

Разберем специфику работы через RDP (Удаленный рабочий стол)

Теперь перейдем к самому сложному этапу — передаче данных от сканера на удаленный сервер 1С. Поскольку сканер физически подключен к локальному ПК (например, на порт COM4), 1С на сервере по умолчанию его не видит.

Рассмотрим по шагам, как пробросить порт:

  1. Откройте подключение к удаленному рабочему столу (mstsc.exe).
  2. Перейдите на вкладку Локальные ресурсы.
  3. В разделе «Локальные устройства и ресурсы» нажмите кнопку Подробнее.
  4. Обязательно установите галочку напротив пункта Порты.

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

net use com4: \\tsclient\com4:

Где com4: — это виртуальный порт на сервере, а \\tsclient\com4: — это порт на вашем локальном компьютере.

Проанализируем ошибку метода «Занять»

Вернемся к ошибке, с которой мы начали. Метод Объект.Драйвер.Занять(1) — это команда, с помощью которой 1С пытается монопольно захватить COM-порт, чтобы никто другой не мог читать из него данные. Если происходит ошибка вызова этого метода, это означает, что захватить порт не удалось. Для обхода этой проблемы и обеспечения одновременной работы сканера в нескольких базах можно использовать инструмент для параллельной работы оборудования через COM-порт.

Выясним основные причины этой ошибки:

  1. Порт занят другим приложением. Возможно, вы забыли закрыть утилиту EzConfig на локальном компьютере! Она держит порт открытым, и 1С не может получить к нему доступ. Также порт может быть занят другой открытой копией 1С.
  2. Порт не пробросился через RDP. Вы пытаетесь занять порт, которого физически нет в терминальной сессии. Проверьте маппинг командой net use.
  3. Несоответствие номеров портов. В настройках подключаемого оборудования 1С указан, например, COM1, а сканер при пробросе получил номер COM4. Внимательно проверьте настройки драйвера в 1С.
  4. Сканер остался в режиме клавиатуры. Если вы не отсканировали управляющий код «USB Serial Emulation», сканер работает как клавиатура, и COM-порт в системе вообще не создан.

Драйверы: OPOS против Native API

В старых конфигурациях часто использовались COM-компоненты (например, упомянутая 1CScanOPOScan_v2). Их главный минус — необходимость регистрации файлов .dll в реестре Windows с правами администратора (через regsvr32), что на терминальных серверах часто вызывает конфликты прав доступа.

В современных конфигурациях на платформе 1С:Предприятие 8.3 настоятельно рекомендуем использовать Native API драйверы (например, стандартный драйвер 1С:Сканеры штрихкода (NativeApi)). Они устанавливаются из макета конфигурации автоматически, не требуют регистрации в реестре ОС и работают значительно стабильнее при пробросе через RDP. При необходимости можно воспользоваться готовой обработкой для подключения сканеров через драйвер NativeAPI в типовых конфигурациях.

Настройка суффикса: Как 1С понимает, что штрихкод закончен?

Когда вы переводите сканер в режим COM-порта, система получает непрерывный поток данных. Чтобы 1С поняла, где заканчивается один штрихкод и начинается другой, используется специальный символ — суффикс.

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

Итоговый алгоритм действий для стабильной работы

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

  1. С помощью инструкции к сканеру переведите его в режим Virtual COM Port (эмуляция COM).
  2. Установите драйвер (VCP Driver) от производителя на локальный ПК, чтобы в Диспетчере устройств появился виртуальный порт.
  3. Закройте все сторонние программы на локальном ПК (включая настроечные утилиты вроде EzConfig), которые могут занимать этот порт.
  4. В настройках RDP-подключения включите проброс локальных портов на удаленный сервер.
  5. На сервере в 1С перейдите в раздел «Подключаемое оборудование» и добавьте сканер, используя драйвер 1С:Сканеры штрихкода (NativeApi).
  6. В настройках драйвера в 1С выберите номер порта, который пробросился с локального ПК, и укажите суффикс CR (13).
  7. Нажмите кнопку «Тест устройства» и отсканируйте любой штрихкод. Если символы и суффикс отобразились корректно, настройка завершена!

Следуя этим правилам, вы сможете избежать конфликтов оборудования, надежно пробросить сканер на удаленный сервер и навсегда забыть об ошибках захвата портов.

← На главную