Как настроить работу сканера штрихкодов в RDP-сессии с ТСД без использования сложных префиксов?

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

При работе с терминалами сбора данных (ТСД) через RDP-сессию часто возникает проблема передачи специальных клавиш, таких как F7, которые в старых конфигурациях 1С (например, УТ 10.2) используются для принудительного вызова форм сканирования. Многие современные ТСД на базе Android не позволяют аппаратно передать код функциональной клавиши, что ставит задачу в тупик. Давайте разберем, как решить эту проблему правильно и эффективно.

Почему не стоит полагаться на «префикс F7»?

Попытка жестко зашить эмуляцию клавиши F7 в настройки сканера ТСД является тупиковым путем. Основная проблема заключается в том, что системное ПО терминалов (драйверы DataWedge или аналоги) оперирует символьными последовательностями, а не скан-кодами аппаратной клавиатуры. Когда вы работаете через RDP, сканер эмулирует «клавиатурный ввод». Если вы пытаетесь отправить специальный символ, он может быть интерпретирован системой не как нажатие клавиши, а как обычный текст, либо просто проигнорирован драйвером.

Решение проблемы через стандартные механизмы 1С

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

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

  1. Настройка драйвера в 1С: Перейдите в настройки подключаемого оборудования. Добавьте новый сканер штрихкода. Выберите тип устройства «Сканер штрихкода» и подходящий драйвер (например, стандартный 1С:Сканер штрихкода (Native) или АТОЛ: Драйвер сканеров штрихкода).
  2. Режим работы: Установите режим «Клавиатурный сканер». В этом режиме 1С не ожидает специальных префиксов от самого железа. Вместо этого платформа слушает события клавиатурного ввода в текущем активном окне RDP.
  3. Обработка события: Как только сканер передает данные в поле, 1С генерирует событие ВнешнееСобытие. Вам не нужно «нажимать» F7, чтобы открыть форму — достаточно правильно реализовать обработчик в Глобальном модуле или в форме документа.

Пример обработки внешнего события

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


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Событие = "Scanner" Тогда
        // Здесь мы обрабатываем полученный штрихкод
        // Данные содержат считанный код
        ОбработатьШтрихкод(Данные);
    КонецЕсли;
КонецПроцедуры

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

Почему это лучший способ?

Рассмотрим преимущества данного метода:

Итог: Не тратьте время на поиск модели ТСД с поддержкой F7. Настройте драйвер Подключаемого оборудования в 1С в режиме клавиатурного сканера. Это позволит вам работать с любым современным Android-терминалом, используя RDP как надежный канал связи.

← На главную