Как исправить ошибку сканирования (символы #231 и обрезка штрихкода) на ТСД UROVO DT50 через RDP в 1С?

Системный администратор Торговля и дистрибуция
← На главную

При использовании современных Android-терминалов сбора данных (ТСД), таких как UROVO DT50, для работы в 1С через удаленный рабочий стол (RDP) часто возникает специфическая проблема. Вместо полноценного штрихкода (например, формата EAN13) в систему передаются только первые 3-5 цифр. Если при этом открыть параметры драйвера устройств ввода в 1С и выполнить тест сканирования, вместо штрихкода возвращается строка вида #231 #231 #231 #231 #13, где количество символов #231 равно количеству цифр в исходном штрихкоде. Разберем эту ситуацию по шагам и выясним причины такого поведения, а затем рассмотрим эффективные способы решения.

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

Для начала важно понять, что современный терминал сбора данных (например, UROVO DT50) за 50 и более тысяч рублей — это не просто кнопочный USB-сканер из начала двухтысячных, а полноценный Android-смартфон со встроенным сканирующим модулем. Когда мы пытаемся пробросить его в 1С через классический RDP-клиент, сканер работает в режиме эмуляции клавиатуры (разрыв клавиатуры). Разберем, почему возникают описанные артефакты:

  1. Обрезка штрихкода (потеря символов). При работе в режиме "разрыв клавиатуры" сканер притворяется обычной клавиатурой и пытается "напечатать" считанные цифры штрихкода с огромной скоростью. Однако терминальный сервер Windows, с которым мы соединяемся по RDP, имеет сетевые задержки (пинг). Сервер банально не успевает обрабатывать входящий скоростной поток нажатий клавиш по сети. В результате часть символов проглатывается, и в 1С попадают только первые несколько цифр.
  2. Появление спецсимволов #231 и #13. Эти артефакты связаны с некорректной интерпретацией нажатий при конфликте раскладок клавиатуры. Символ #13 означает стандартный возврат каретки (нажатие клавиши Enter), который сканер отправляет в конце штрихкода. А вот #231 появляется из-за того, что цифры сканера преобразуются через активную русскую раскладку на сервере (в кодировке Windows-1251 код 231 соответствует русской букве "ч", либо возникает при передаче данных через скрытые Alt-коды).

Устраним конфликт раскладок клавиатуры

Рассмотрим базовое требование, которое необходимо выполнить при работе со сканером в режиме клавиатуры через RDP. Чтобы драйвер торгового оборудования в 1С перестал выдавать мусор из символов #231, необходимо строго контролировать язык ввода в момент сканирования.

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

Настроим параметры утилиты сканирования на самом Android-ТСД

Посмотрим на внутренние настройки самого сканера UROVO. Поскольку проблема обрезки кроется в скорости передачи символов, нам необходимо замедлить этот процесс, чтобы RDP-сервер успевал их "проглатывать".

Откроем на ТСД системное приложение Scanner Settings (Настройки сканера) и выполним следующие изменения:

  1. Увеличим задержку вывода (Inter-character delay / Keystroke delay). Найдите параметр задержки между передачей символов и установите его значение в диапазоне от 20 до 50 миллисекунд (в зависимости от пинга до вашего сервера). Сканер начнет "печатать" штрихкод визуально чуть медленнее, но RDP-сервер перестанет терять цифры.
  2. Изменим режим вывода (Output mode). Если сканер работает в режиме посимвольного вывода (Keyboard Wedge / Keystroke), попробуйте переключить его на передачу данных через буфер обмена (Clipboard). В этом режиме Android сначала копирует весь штрихкод в буфер, а затем отправляет команду вставки (Ctrl+V). Штрихкод будет вставляться единым блоком, что полностью исключает потерю символов при нестабильном интернете.

Рассмотрим использование специализированного RDP-клиента (RS RDP)

Если ваша компания обязательно должна работать в 1С через удаленный рабочий стол, использование стандартных программ (типа Microsoft Remote Desktop для Android) категорически не рекомендуется для складских процессов. Это и приводит к описанным выше проблемам.

Официальный дистрибьютор UROVO в России (компания RightScan) разработал специализированное приложение RS RDP, которое часто уже предустановлено на устройствах серии DT50. Разберем его преимущества: этот клиент перехватывает считанные штрихкоды со сканирующего модуля на аппаратном уровне (API сканера) и пробрасывает их внутрь сессии Windows и 1С единым неделимым пакетом. Использование специализированного клиента позволяет игнорировать задержки сети, проблемы с раскладкой и навсегда избавляет от обрезки данных.

Настроим драйверы в 1С и откажемся от устаревших решений

Проанализируем программную часть на стороне 1С. Использование устаревших драйверов (например, драйверов АТОЛ версий 6.5.x) для современных смарт-терминалов крайне нецелесообразно и часто вызывает ошибки совместимости.

Для корректной работы UROVO DT50 существует родной комплект программного обеспечения: приложение RS Core на самом ТСД и драйвер RightScan:ТСД (RS 1C driver) для конфигурации 1С. Этот драйвер имеет официальный статус "1С:Совместимо" и предназначен именно для обмена данными между оборудованием Urovo и платформой 1С, обходя костыли со стандартной эмуляцией клавиатуры.

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

Рассмотрим архитектурную альтернативу: отказ от RDP

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

Вместо попыток подружить RDP со сканером, рассмотрите следующие современные варианты работы:

  1. Создание мобильного приложения (МП) на платформе 1С. Платформа умеет собирать нативные Android-приложения за минуты. ТСД будет работать локально, обращаясь к центральной базе 1С только в момент обмена данными.
  2. Использование готовых складских клиентов для ТСД, которые интегрируются с 1С через HTTP-сервисы или Web-сервисы (REST API). Написание простейшего веб-сервиса в 1С занимает минимум времени, а стабильность работы возрастает в разы, так как не требуется постоянное сетевое подключение.

Подведем итог: чтобы быстро решить проблему с обрезкой штрихкодов в RDP, переключите раскладку на английскую, увеличьте задержку ввода в Android-настройках ТСД или используйте клиент RS RDP. А для долгосрочной стабильности — переходите на нативные мобильные приложения или специализированные драйверы интеграции.

← На главную