При работе с терминалами сбора данных (ТСД) на базе Android и Bluetooth-сканерами (например, Urovo U2 и кольцо R70) системные администраторы часто сталкиваются с ограничением мобильного клиента Microsoft Remote Desktop (RDP). В отличие от Windows-версии, мобильное приложение для Android не поддерживает нативный проброс последовательных (COM) портов. Это создает сложности при работе в 1С:Управление торговлей 11, так как стандартный режим "в разрыв клавиатуры" требует фокуса в конкретном поле ввода и не всегда корректно инициирует внешнее событие.
В этой статье мы разберем несколько проверенных способов решения этой задачи, начиная от правильной настройки стандартных драйверов 1С и заканчивая созданием сетевого моста для передачи данных.
Многие специалисты ошибочно полагают, что работа "в разрыв клавиатуры" — это всегда неудобно и требует постоянного контроля фокуса. Однако современные драйверы 1С:Сканеры штрихкода (NativeApi) позволяют обрабатывать ввод с клавиатуры так же эффективно, как и с COM-порта, если правильно настроить префиксы.
Рассмотрим этот процесс подробнее:
Scan Settings) добавьте уникальный префикс, который редко используется в обычной печати (например, символы # или $).При такой настройке драйвер 1С будет перехватывать поток ввода, находить в нем ваш префикс и генерировать Внешнее событие. Это позволит 1С отрабатывать сканирование мгновенно, даже если курсор не установлен в поле поиска товара. Это самый простой способ, не требующий стороннего ПО.
Если специфика бизнес-процесса требует именно COM-порта, или режим клавиатуры работает нестабильно, проанализируем вариант создания сетевого моста. Поскольку RDP не пробрасывает порт, мы можем передать данные по протоколу TCP/IP напрямую на сервер, минуя RDP-канал.
Для реализации этой схемы выполните следующие шаги:
TcpServer, укажите локальный порт (например, 4001) и свяжите его с виртуальным COM9.COM9.Теперь, когда сканер считывает код, данные отправляются по Wi-Fi на IP-адрес сервера, попадают в VSPE, который "скармливает" их виртуальному порту. 1С воспринимает это как обычное локальное подключение оборудования.
Разберем ситуацию, когда требуется максимальная надежность. Как отмечали участники сообщества, для больших и сложных штрихкодов (например, маркировка честный знак или длинные EAN-128) можно написать небольшую сервисную утилиту. Суть метода заключается в создании приложения-прослойки.
На стороне 1С в модуле управляемого приложения или в специализированной обработке можно реализовать прослушивание входящих сообщений. Рассмотрим примерный алгоритм работы такой системы:
// Пример логики на стороне сервера 1С (упрощенно)
Процедура ПриНачалеРаботыСистемы()
// Запуск прослушивания порта, если используется внешняя компонента
Попытка
ЗагрузитьВнешнююКомпоненту("ОбщийМакет.КомпонентаTCP", "TCP");
ОбъектTCP = Новый ("AddIn.TCP.SocketListener");
ОбъектTCP.Порт = 8080;
ОбъектTCP.Открыть();
Исключение
Сообщить("Не удалось запустить службу перехвата штрихкодов");
КонецПопытки;
КонецПроцедуры
Данный метод позволяет полностью уйти от ограничений RDP-клиента и зависимости от COM-портов. Данные передаются как чистый текст по сети, что исключает потерю символов при задержках в терминальной сессии.
Для устройств Urovo существует продвинутый метод интеграции. ТСД умеет транслировать результат сканирования в систему через Android Intent. Это стандартный механизм межпрограммного взаимодействия в Android.
Выясним, как это использовать для RDP:
Intent от сканера и имитирует нажатие клавиш в окне RDP-клиента, что опять же возвращает нас к надежной работе через префиксы.Проанализировав ситуацию, можно сделать следующие выводы. Если вы хотите избежать "подпиливания" конфигурации 1С и добиться работы "как в COM-порту", лучшим выбором будет Способ №2 (Сетевой мост через TCP). Это обеспечит прозрачную работу драйверов 1С.
Однако, с точки зрения стабильности в условиях нестабильного Wi-Fi, наиболее предпочтительным является Способ №1 с настройкой префиксов и суффиксов в стандартном драйвере 1С. Это минимизирует количество промежуточного ПО и точек отказа в системе. Помните, что для успешной работы в режиме клавиатуры крайне важно наличие корректного суффикса (обычно CR или Enter), чтобы 1С понимала завершение ввода штрихкода.