Как настроить сканер штрихкода в режиме клавиатуры (PS/2) в 1С через RDP, если он сканирует все в одну строку

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

При автоматизации торговых и складских процессов системные администраторы часто сталкиваются с аппаратными проблемами. Типичный сценарий: к рабочему месту подключен сканер штрихкода в разрыв клавиатуры (через физический порт PS/2 или USB в режиме эмуляции клавиатуры). В Блокноте устройство работает идеально, автоматически перенося курсор на новую строку после каждого считывания. Однако в 1С при сканировании документов штрихкоды записываются в одну длинную строку без перехода и без автоматического поиска номенклатуры. Проблема усугубляется, если пользователи работают в терминальном режиме через удаленный рабочий стол (RDP).

В этой статье мы подробно разберем, почему возникает такая ситуация, как устроено взаимодействие 1С со сканером «в разрыв клавиатуры», и пошагово настроим систему для корректной работы.

Выясняем причину: почему в Блокноте перенос строки работает, а в 1С — нет?

Для начала проанализируем логику работы текстового редактора и учетной системы. Блокнот воспринимает сканер как обычную клавиатуру, которая очень быстро вводит символы. Если в самом сканере аппаратно запрограммирован суффикс возврата каретки (символ CR — Carriage Return, или клавиша Enter), Блокнот послушно переносит курсор на следующую строку. Физически сканер посылает в систему последовательность символов штрихкода, а затем код клавиши Enter (код #13 в таблице ASCII).

В платформе 1С:Предприятие логика обработки ввода гораздо сложнее:

  1. Для того чтобы считанный штрихкод автоматически обрабатывался системой (например, находился товар в чеке ККМ или в документе поступления) без необходимости предварительно ставить курсор в строку поиска, специализированный драйвер торгового оборудования должен перехватить поток символов из клавиатурного буфера.
  2. Перехватив данные, драйвер генерирует в системе специальное событие — «Внешнее событие». Именно на него реагирует 1С, запуская алгоритмы поиска.
  3. Чтобы драйвер понял, где начинается и где заканчивается штрихкод в потоке обычного клавиатурного ввода, ему нужны четкие ориентиры. Такими ориентирами выступают Таймаут клавиатуры (время ожидания окончания ввода, обычно от 50 до 150 мс) и Суффикс (специальный завершающий символ, чаще всего CR или #13).

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

Разбираем проблему с «Рабочим местом» при переносе на новое железо

При замене компьютера (когда «померло старое железо») или при перенастройке RDP-подключения старые настройки торгового оборудования в 1С перестают работать. Выясним причину этого поведения.

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

Идентификатор рабочего места (GUID) генерируется платформой автоматически при первом запуске сеанса на основе двух параметров:

Когда вы переносите базу на новый компьютер или подключаетесь под другим пользователем в RDP-сессии, 1С создает абсолютно новое «Рабочее место». Старые настройки оборудования остаются привязанными к старому имени компьютера. Новое рабочее место инициализируется с «чистого листа», из-за чего ранее установленные драйверы и настройки суффиксов перестают применяться.

Пошаговое решение проблемы: обновление БПО и настройка оборудования

Рассмотрим подробный алгоритм настройки клавиатурного сканера в актуальных версиях 1С на управляемых формах.

Шаг 1. Проверка физического вывода устройства

Прежде чем приступать к настройке 1С, убедимся, что сам сканер передает суффикс возврата каретки. Откроем Блокнот и отсканируем любой штрихкод. Курсор должен автоматически переместиться на строку ниже. Если переноса не происходит, необходимо взять инструкцию к вашей модели сканера, найти там раздел «Suffix Configuration» и отсканировать настроечный штрихкод «ADD CR SUFFIX» (или «Enter»). Только после этого переходим к настройкам 1С.

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

Часто старые драйверы (например, старые версии АТОЛ или старая библиотека «1С:Сканер штрихкода» версии 8.0.х.х) отказываются устанавливаться в современных операционных системах или несовместимы с новыми релизами платформы 1С. Разберем, как обновить компоненту:

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

Шаг 3. Создание и настройка нового оборудования

Создадим новую карточку подключения сканера в системе:

  1. В разделе Подключаемое оборудование выберем тип оборудования Сканеры штрихкода и нажмем кнопку Создать.
  2. В появившемся окне проверим, что поле Рабочее место заполнено актуальным именем вашего текущего ПК / RDP-сессии.
  3. В поле Драйвер оборудования выберем предопределенный драйвер 1С:Сканер штрихкода (NativeAPI).
  4. Нажмем кнопку Записать объект, после чего станет доступна кнопка Настроить....

Шаг 4. Параметры подключения: Порт, Суффикс и Таймаут

В открывшемся окне настройки драйвера выполним ключевые действия:

  1. В поле Порт обязательно выберем значение «Клавиатура». Это указывает драйверу на то, что данные нужно перехватывать из клавиатурного потока ввода, а не опрашивать физический COM-порт.
  2. Найдем параметр Суффикс. По умолчанию в драйверах 1С там уже предустановлено значение 13 (что соответствует клавише Enter / Возврат каретки) или символ 'CR'. Если поле пустое, введем туда 13.
  3. Обратим внимание на параметр Таймаут клавиатуры (чувствительность клавиатуры). Рекомендуется установить значение в диапазоне 100–150 мс. Если установить слишком маленькое значение, драйвер решит, что ввод штрихкода прерван, и «разорвет» код на части. Если установить слишком большое значение, увеличится задержка перед поиском товара.
  4. Нажмем кнопку Тест подключения. Отсканируем штрихкод. В окне теста должна появиться строка с типом события, считанным кодом и указанием суффикса. Например: Данные получены: '4601234567890' Suffix: '13'.

После успешного прохождения теста сохраняем настройки. Теперь при сканировании в любом документе 1С будет корректно перехватывать внешнее событие и обрабатывать его штатным кодом конфигурации.

Особенности работы клавиатурного сканера через RDP

Работа «в разрыв клавиатуры» через удаленный рабочий стол — это самый нестабильный способ подключения торгового оборудования. Разберем основные проблемы и методы их решения:

Альтернативный «костыль» без использования драйверов (Префикс F7)

Рассмотрим ситуацию, когда конфигурация сильно изменена, БПО устарела, а установить современные NativeAPI драйверы не представляется возможным. Существует надежный обходной путь, который не требует настройки торгового оборудования в 1С:

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

Для реализации этого метода найдите в инструкции к вашему сканеру разделы «Add Prefix» и назначьте в качестве префикса клавишу F7 (код клавиши в настройках некоторых сканеров может обозначаться специальным HEX-кодом, сверьтесь с таблицей управляющих кодов вашей модели).

Рекомендация эксперта: переход на эмуляцию COM-порта (VCOM)

Для обеспечения максимальной стабильности, особенно при работе с маркированным товаром и в RDP-сессиях, настоятельно рекомендуется отказаться от режима клавиатуры (PS/2) и перевести сканер в режим эмуляции виртуального COM-порта (Virtual COM Port):

  1. Сканируется управляющий штрихкод из инструкции сканера: «Enable USB virtual COM».
  2. В операционную систему Windows устанавливается VCOM-драйвер от производителя сканера (после чего в Диспетчере устройств в разделе «Порты (COM и LPT)» появится новый виртуальный порт, например, COM3).
  3. При подключении к RDP-серверу в настройках подключения (подробнее на вкладке «Локальные ресурсы» -> «Подробнее...») устанавливается флажок «Порты». Это пробросит ваш локальный COM-порт на удаленный сервер.
  4. В настройках оборудования 1С в поле Порт выбирается данный проброшенный COM-порт.

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

← На главную