Как настроить сканирование через Barcode to PC в 1С при работе через VPN и RDP

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

Современные условия работы часто требуют использования мобильных устройств в качестве терминалов сбора данных или сканеров штрихкодов. Связка приложения Barcode to PC, VPN-соединения и удаленного рабочего стола (RDP) является популярным решением, однако она таит в себе множество технических нюансов. Часто пользователи сталкиваются с ситуацией, когда штрихкод «печатается» в текстовое поле, но программные механизмы 1С, такие как ОбработкаОповещения или ВнешнееСобытие, попросту не реагируют на ввод. В этой статье мы подробно разберем, как заставить систему корректно обрабатывать данные в автоматическом режиме.

Природа проблемы: Текст против События

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

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

При использовании Barcode to PC через RDP, данные передаются по сети. Из-за задержек (пинга) в VPN-канале последовательность символов может разрываться, и 1С перестает понимать, что это единый штрихкод. Рассмотрим шаги для исправления этой ситуации.

Шаг 1. Настройка суффикса в Barcode to PC

Для того чтобы 1С поняла, что ввод штрихкода завершен и пора генерировать событие, необходимо передать управляющий символ — суффикс. Чаще всего используется Enter (код 13 или CR). Рассмотрим, как это настроить:

Откроем настройки серверной части Barcode to PC на вашем основном компьютере. В разделе настроек вывода данных обязательно добавим Suffix. Если суффикс не будет настроен, 1С будет бесконечно «ждать» продолжения ввода, и обработчик ОбработкаОповещения никогда не сработает.

Шаг 2. Подключение оборудования в 1С

Перейдем к настройкам внутри самой 1С. Нам необходимо зарегистрировать сканер штрихкодов так, чтобы он не просто печатал текст, а инициировал программный код. Разберем последовательность действий:

  1. Зайдем в раздел Администрирование — Подключаемое оборудование.
  2. Создадим новый экземпляр оборудования. Выберем тип Сканеры штрихкода.
  3. В качестве драйвера выберем стандартный 1С:Сканеры штрихкода (NativeApi).
  4. В настройках самого устройства укажем способ подключения: Клавиатура.

Важный момент: В параметрах драйвера необходимо указать тот же суффикс, который мы задали в программе Barcode to PC. Обычно это значение '13' (Enter). Если эти значения не совпадут, 1С будет игнорировать ввод.

Шаг 3. Решение проблем с RDP и задержками VPN

При работе через удаленный рабочий стол (RDP) возникают специфические проблемы. Проанализируем настройки клиента mstsc. Перед подключением перейдем на вкладку Локальные ресурсы. В поле Клавиатура выберем значение Использовать сочетания клавиш Windows: На этом компьютере (или в полноэкранном режиме). Это гарантирует, что спецсимволы суффикса будут корректно проброшены в удаленную сессию.

Также в настройках драйвера 1С обратим внимание на параметр Таймаут. По умолчанию он составляет около 75–100 мс. При работе через VPN пакеты могут задерживаться. Рекомендуем увеличить это значение до 200–300 мс. Это позволит драйверу «дождаться» всех символов штрихкода, прежде чем принимать решение о завершении ввода.

Шаг 4. Идентификация рабочего места

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


ИмяКомпьютера = ИмяКомпьютера();
Сообщить(ИмяКомпьютера);

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

Шаг 5. Программная обработка событий в коде

Для того чтобы 1С отреагировала на сканирование, в форме документа или справочника должен быть прописан соответствующий код. В управляемых формах это делается через механизм оповещений. Рассмотрим пример кода, который должен располагаться в модуле формы:


&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    
    // Проверяем, что событие пришло именно от сканера штрихкода
    Если ИмяСобытия = "ScanData" Тогда
        // Параметр обычно содержит массив или структуру с данными штрихкода
        ДанныеШтрихкода = Параметр;
        
        // Рассмотрим логику обработки полученного кода
        Штрихкод = ДанныеШтрихкода[0]; // Для NativeApi штрихкод лежит в первом элементе массива
        Сообщить("Считан штрихкод: " + Штрихкод);
        
        // Здесь мы можем вызвать серверную процедуру для поиска товара
        НайтиТоварПоШтрихкоду(Штрихкод);
    КонецЕсли;
    
КонецПроцедуры

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


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Событие = "Barcode" Тогда
        Штрихкод = СокрЛП(Данные);
        обОбработатьШтрихкод(Штрихкод);
    КонецЕсли;
КонецПроцедуры

Дополнительные рекомендации

Проанализируем еще несколько критических факторов:

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

← На главную