Почему в мобильном клиенте 1С не формируется внешнее событие при сканировании на ТСД АТОЛ Smart.Slim?

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

При автоматизации складских операций на базе конфигурации «1С:Управление торговлей 11.4» нередко используется мобильный клиент, установленный на терминалы сбора данных (ТСД) под управлением операционной системы Android, такие как АТОЛ Smart.Slim. В типовом сценарии подключаемое оборудование настраивается с использованием штатного драйвера «1С:Сканеры штрихкода (NativeApi)». Достаточно часто возникает ситуация, когда при проверке в мобильном клиенте тест драйвера завершается успешно, однако при фактическом считывании штрихкодов складские документы и формы подбора никак не реагируют: внешнее событие платформы не генерируется, данные штрихкода в документ не подставляются.

Попытки решить данную неполадку путем изменения параметров COM-порта (например, регулировка таймаута порта в диапазоне от 0 до 300 мс) не дают результата. Ниже рассмотрены технические причины такого поведения оборудования и детальные шаги по корректной настройке интеграции терминала с мобильным клиентом 1С.

Архитектурные особенности взаимодействия мобильного клиента 1С и ТСД на Android

Главная причина неработоспособности сканера при изменении параметров COM-порта заключается в ошибочном понимании архитектуры оборудования. На стационарных рабочих станциях под управлением Windows сканеры штрихкодов подключаются через физический интерфейс RS-232 либо через виртуальный COM-порт по USB (режим VCP). В операционной системе Android на ТСД встроенный сканирующий 2D-модуль не является COM-устройством с точки зрения прикладного приложения.

В терминале АТОЛ Smart.Slim сканирующий модуль аппаратно подключен к внутренней шине процессора и управляется фоновым системным сервисом (демоном сканирования). Настройка этого модуля осуществляется через встроенную утилиту «Barcode Utility» (или «Scan Settings»). Фоновый сервис перехватывает сигнал с физических кнопок сканирования, считывает оптический код и передает результат в пользовательские приложения одним из двух основных способов:

Успешное прохождение теста в настройках подключаемого оборудования 1С при установленном порте «COM» означает лишь то, что драйвер NativeApi корректно загрузился в память мобильного устройства и инициализировал свои внутренние интерфейсы. Однако пока на несуществующий в ОС виртуальный порт не приходят реальные байты данных, драйвер не сформирует внешнее событие.

Пошаговая диагностика и определение текущего режима работы

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

  1. Проверка утилиты сканирования в Android: откройте меню приложений на ТСД АТОЛ Smart.Slim, запустите программу «Barcode Utility» (в зависимости от версии прошивки она может называться «Настройки сканера» или «Scan Settings»). Найдите раздел, отвечающий за метод передачи данных («Data Receive Method» или «Output Mode»). Если там выбран вывод в поле ввода (Keyboard / Focus), сканер работает как клавиатура. Если выбран Broadcast — данные рассылаются через сообщения ОС.
  2. Тестирование физического считывания в текстовый редактор: откройте на ТСД любое приложение с полем ввода (например, браузер или блокнот), установите курсор в строку поиска и нажмите кнопку сканирования. Если штрихкод печатается на экране, служба сканирования функционирует в режиме клавиатуры. Если символы не появляются, служба либо отключена, либо настроена на широковещательный режим (Broadcast).
  3. Анализ в окне «Тест подключения» драйвера 1С: перейдите в 1С:Управление торговлей в форму настройки подключаемого оборудования и откройте окно «Тест устройства». Драйвер поддерживает несколько режимов отображения:
    • Тестовый режим — показывает «сырые» данные с текстовой заменой управляющих непечатаемых символов (например, 'CR', 'LF', 'GS').
    • Рабочий режим — выводит данные только в том случае, если полученный пакет полностью совпадает с настроенными шаблонами префиксов и суффиксов. Если суффикс не совпадает, рабочее окно останется пустым, а внешнее событие в платформе не будет вызвано.
    • Отладка клавиатуры — фиксирует факт перехвата нажатий клавиш и помогает определить, с какой задержкой и в какой последовательности поступают символы.

Способ 1. Настройка через широковещательные сообщения Android (Broadcast Intent) — Рекомендуемый

Использование широковещательных сообщений — наиболее стабильный и профессиональный вариант интеграции сканера с мобильным клиентом 1С. В этом режиме внешнее событие возникает вне зависимости от того, на каком элементе формы находится курсор, исключаются случайные опечатки в текстовых полях и обеспечивается корректная обработка длинных кодов маркировки (Честный Знак, DataMatrix) со служебными разделителями FNC1 / GS.

Шаг 1. Настройка терминала АТОЛ Smart.Slim:

  1. Запустите приложение Barcode Utility.
  2. Перейдите в раздел Scan Setting.
  3. В параметре Data Receive Method выберите значение BROADCAST_EVENT (или Broadcast Mode).
  4. Проверьте параметры широковещательного пакета. В нижних строках настроек задаются:
    • Action name (имя широковещательного действия): по умолчанию для устройств АТОЛ часто используется строка scan.rcv.message или com.android.server.scannerservice.broadcast.
    • Barcode Data / String Name (ключ дополнительных данных Intent Extra): имя переменной, в которой передается штрихкод, например data, barcodedata или scannerdata.
  5. В разделе настроек суффиксов отключите автоматическое добавление клавиши Enter или перевода строки, чтобы они не добавлялись к телу штрихкода при передаче через интент.

Шаг 2. Настройка драйвера в мобильном клиенте 1С:Управление торговлей:

  1. Откройте меню НСИ и администрирование — Подключаемое оборудование.
  2. Выберите экземпляр сканера с типом оборудования Сканеры штрихкода и драйвером 1С:Сканеры штрихкода (NativeApi).
  3. Нажмите кнопку Настроить.
  4. В поле Устройство / Порт переключите значение с «COM-порт» на Встроенный сканер или Broadcast (наименование зависит от версии мобильной компоненты).
  5. В появившихся параметрах широковещательного пакета укажите:
    • Пользовательское Intent Action: точное имя действия, заданное в ТСД (например, scan.rcv.message).
    • Пользовательское Intent Extra: точное имя ключа данных (например, data).
  6. Сохраните настройки, нажмите кнопку «Тест устройства» и выполните считывание штрихкода. В окне теста должны отобразиться прочитанные данные.

Способ 2. Настройка через эмуляцию клавиатуры (Клавиатурный ввод)

Если используемая сборка мобильной платформы или прошивка ТСД не позволяет настроить передачу через Broadcast, можно использовать режим клавиатурного клина. При этом сканер имитирует скоростной ввод текста с клавиатуры.

Для генерации внешнего события в этом режиме компонента NativeApi должна четко понимать, где заканчивается поток символов штрихкода. Завершение ввода определяется по суффиксу и таймауту между нажатиями клавиш.

Шаг 1. Настройка терминала сбора данных:

  1. В приложении Barcode Utility в поле Data Receive Method установите режим вывода символов в фокус (Output to cursor / Keyboard emulation).
  2. В параметрах суффикса (Suffix) обязательно включите добавление символа возврата каретки — Enter (код CR / 0x0D).

Шаг 2. Настройка драйвера в 1С:

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

Сравнение режимов и эксплуатационные ограничения

Выбор конкретного метода интеграции определяет стабильность работы персонала на складе:

Чек-лист для устранения скрытых сбоев

Если после выполнения всех настроек внешнее событие по-прежнему не возникает, выполните следующие проверки:

  1. Регистр символов в именах Intent: имена Intent Action и Intent Extra чувствительны к регистру. Проверьте, чтобы строки в настройках 1С и в утилите Barcode Utility совпадали посимвольно (например, data и Data — это разные переменные).
  2. Режим энергосбережения Android: встроенные механизмы оптимизации батареи в ОС Android могут принудительно останавливать фоновую службу сканера при работе мобильного клиента. Добавьте утилиту Barcode Utility и мобильный клиент 1С в список исключений энергосбережения («Не оптимизировать расход заряда»).
  3. Контрольный символ EAN-13: в ряде прошивок АТОЛ Smart.Slim в настройках модуля сканирования («Barcode Module Settings» — «UPC/EAN») по умолчанию отключена передача контрольного символа (Check Digit). В результате сканер передает 12 цифр вместо 13, и типовая конфигурация УТ 11.4 отбрасывает штрихкод как некорректный. Убедитесь, что параметр Check Digit включен.
  4. Актуальность мобильной компоненты: устаревшие версии компоненты сканирования штрихкодов в мобильной платформе 1С содержали ошибки захвата широковещательных пакетов. Рекомендуется обновить сборку мобильного клиента до актуальной версии платформы 8.3.
← На главную