В процессе автоматизации бизнес-процессов на мобильных устройствах часто возникает необходимость в подключении сканера штрихкода. Особенно актуальной эта задача становится при работе с терминалами сбора данных (ТСД) под управлением операционной системы Android и мобильными приложениями, разработанными на платформе 1С:Предприятие с использованием Библиотеки подключаемого оборудования (БПО). В этой статье мы подробно рассмотрим, как правильно настроить сканер штрихкода ТСД ATOL Smart различных модификаций для корректной работы с мобильным приложением 1С через драйвер «1С:Сканер штрихкода (NativeApi)» в режиме Broadcast.
Многие пользователи сталкиваются с тем, что сканер не реагирует на штрихкод даже после кажущейся правильной настройки. Давайте вместе разберемся в причинах этой проблемы и найдем эффективные решения, учитывая особенности различных моделей ТСД ATOL Smart. При необходимости можно использовать готовую мобильную конфигурацию с примером работы со сканером ТСД АТОЛ.
Прежде чем перейти к детальной настройке, мы должны четко понимать разницу между основными режимами работы сканера штрихкода на Android-устройствах.
Клавиатурный режим (Keyboard Emulation): В этом режиме сканер имитирует ввод данных с физической клавиатуры. Отсканированный штрихкод передается в активное поле ввода приложения, как если бы вы набрали его вручную. Этот режим прост в настройке, но имеет существенные недостатки для работы с длинными штрихкодами или в условиях, когда система может перехватывать ввод с клавиатуры. Мобильные приложения 1С также могут испытывать сложности с корректной обработкой всех символов штрихкода, особенно если он длиннее, чем ожидается.
Режим Broadcast (вещательный режим, Intent Broadcast): Этот режим является предпочтительным и наиболее надежным для интеграции со сканерами штрихкодов на Android-ТСД. В режиме Broadcast сканер не имитирует нажатия клавиш, а генерирует специальное Android-сообщение (Intent Broadcast), которое содержит отсканированные данные. Мобильное приложение 1С, оснащенное соответствующим драйвером, «слушает» эти сообщения и корректно их обрабатывает. Такой подход позволяет:
Для работы в режиме Broadcast критически важно активировать эту опцию в настройках самого ТСД. Обычно это делается в специализированных утилитах, таких как ScanWedge или Barcode Utility, где нужно включить параметр "Output via Intent" или "Broadcast Intent".
Для интеграции сканера штрихкода с мобильным приложением 1С мы используем внешний компонент, поставляемый в составе "Библиотеки подключаемого оборудования" (БПО) — драйвер 1С:Сканер штрихкода (NativeApi). Этот драйвер предназначен для работы с Android-устройствами и позволяет платформе 1С получать данные от сканера. Для этой задачи также подойдёт внешняя компонента NativeAPI для подключения сканера ШК через широковещательные сообщения.
Мы предлагаем следующий порядок действий для его подключения:
Установка драйвера на ТСД: Драйвер 1С:Сканер штрихкода (NativeApi) поставляется не только в виде zip-архива для включения в конфигурацию 1С, но и в виде отдельного apk-файла для установки на Android-устройство. Мы должны установить этот apk-файл на наш ТСД. После установки приложение может запросить определенные разрешения, например, на использование специальных возможностей для перехвата нажатий клавиш. Мы обязательно должны предоставить все необходимые разрешения.
Включение драйвера в конфигурации 1С: При сборке мобильного приложения мы рекомендуем включить драйвер в apk-файл сразу из общего макета конфигурации. Это обеспечит корректную работу компонента.
Настройка подключаемого оборудования в 1С: В нашем мобильном приложении 1С (обычно это делается в разделе настроек или администрирования) мы должны выбрать тип подключаемого оборудования "Сканер штрихкода" и указать в качестве драйвера "1С:Cканер штрихкода (NativeApi)".
Выбор режима "Broadcast" в настройках драйвера 1С: После выбора драйвера мы переходим к его настройкам. Здесь нам нужно явно указать, что мы будем использовать режим "Broadcast". Это ключевой шаг для получения данных от ТСД через Android Intent-сообщения.
Самый сложный и часто вызывающий проблемы аспект настройки Broadcast-режима — это подбор корректных значений для параметров Intent Action (Пользовательское Intent Action) и Intent Extra (Пользовательское Intent Extra). Эти параметры определяют формат и метки данных, которые ТСД отправляет в широковещательном сообщении. Они не стандартизированы для всех Android-устройств и могут значительно отличаться в зависимости от модели ТСД, его прошивки и даже используемого сканирующего модуля. Давайте рассмотрим известные комбинации для различных моделей ATOL Smart.
Если мы работаем с моделями ATOL Smart.Lite, Slim или Prime, нам следует обратить внимание на утилиту Barcode Utility на ТСД. В разделах "Scan Setting" или "Functoin_Settings" мы должны убедиться, что "Data Receive Method" установлен в "BROADCAST_EVENT". Далее, в настройках драйвера 1С нам необходимо установить следующие параметры:
Пользовательское Intent Action: com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST
Пользовательское Intent Extra: EXTRA_BARCODE_DECODING_DATA
Обратите внимание, что иногда для Scan Result Data Key может использоваться значение EXTRA_BARCODE_DECODING_SYMBOL. Если один вариант не работает, стоит попробовать другой.
Для ТСД ATOL Smart.PRO используется другое приложение для настройки сканера — ScanWedge. Мы должны убедиться, что ScanWedge активирован как сервис на ТСД. Также в настройках ScanWedge нам нужно проверить, что "Send barcode data" установлен в "off", а "Broadcast Intent" включен. Затем мы переходим к настройкам "BROADCAST INTENT SETUP", где нам нужно обратить внимание на параметры.
Существуют две наиболее часто встречающиеся комбинации параметров для ATOL Smart.PRO:
Вариант 1:
Пользовательское Intent Action: com.hht.scanwedge
Пользовательское Intent Extra: com.hht.datawedge.data_string
Эти параметры часто являются значениями по умолчанию в настройках ScanWedge.
Вариант 2 (проверенный решением):
Пользовательское Intent Action: DATA_SCAN
Пользовательское Intent Extra: com.hht.emdk.datawedge.data_string
Этот вариант, как показал опыт пользователей, успешно срабатывает, даже если в настройках ScanWedge указаны другие значения по умолчанию. Мы настоятельно рекомендуем попробовать его, если первый вариант не принес результата.
Для модели ATOL mobile barcode terminal Model^ smart Droid, которая является причиной нашего первоначального запроса, конкретные параметры могут быть не сразу очевидны. Мы рекомендуем начать с проверки настроек в приложении ScanWedge на самом ТСД. В нем должны быть указаны активные значения для Intent Action и Intent Extra. Если их нет, или они не работают, мы можем попробовать следующие шаги:
Попробовать комбинации от Smart Pro и Smart Lite: Модель Droid может использовать прошивку или сканирующий модуль, аналогичный одной из этих моделей. Начнем с Варианта 2 для Smart.PRO, как наиболее успешного, затем перейдем к Варианту 1 для Smart.PRO, и если они не дадут результата, попробуем параметры для Smart.Lite.
Внимательно изучить настройки ScanWedge/Barcode Utility на ТСД: Мы должны найти раздел, связанный с Broadcast Intent Setup или Data Output, и там будут указаны точные Action Name и Extra Data, которые ожидает система ТСД.
Проверить документацию ТСД: Если доступны, мы можем обратиться к официальной документации или поддержке ATOL для нашей конкретной модели на предмет рекомендуемых настроек Broadcast.
Если после всех настроек сканер по-прежнему не реагирует на штрихкод, давайте систематически пройдемся по этапам диагностики:
Проверка активации ScanWedge/Barcode Utility: Мы должны убедиться, что приложение для сканирования (например, ScanWedge) запущено и активно на ТСД. Обычно есть "ползунок" или кнопка "Enable" для его активации. Также проверьте, что опция "Broadcast Intent" (или аналогичная) включена в его настройках.
Точное совпадение параметров Intent Action и Intent Extra: Это самая частая причина проблем. Мы должны перепроверить, что значения Пользовательское Intent Action и Пользовательское Intent Extra в настройках драйвера 1С буквально до символа совпадают с теми, что настроены в утилите сканера на ТСД. Даже лишний пробел или неправильный регистр могут привести к ошибке.
Тестирование с помощью тестовых баз: Мы можем использовать тестовые конфигурации, поставляемые с БПО, или популярное приложение "1С:Кладовщик". Если сканер работает в этих приложениях, это указывает на проблему в нашей конкретной конфигурации 1С. Если не работает, то проблема скорее всего в настройках ТСД или драйвера.
Включение драйвера в APK при сборке: Желательно создавать apk с уже включенным в него драйвером из общего макета. Это может помочь избежать проблем с его динамической загрузкой.
Проверка разрешений Android: Убедимся, что приложение 1С и компонент драйвера получили все необходимые разрешения на ТСД, особенно те, которые касаются специальных возможностей и фоновой работы.
Избегание модальности и синхронного режима: Некоторые устаревшие рекомендации могут предлагать использовать синхронный режим и разрешение модальности. Однако, платформа 1С поддерживает асинхронный вариант функции подключения внешней компоненты, что является более современным и эффективным подходом.
Версия платформы 1С и разрядность: В редких случаях проблемы могут быть связаны с версией платформы 1С или ее разрядностью (32-битная/64-битная). Если возникает сообщение "Не установлен драйвер сканера штрих-кода", иногда помогает переустановка 1С или использование 32-битной версии платформы.
Таким образом, успешное подключение сканера штрихкода ТСД ATOL Smart к мобильному приложению 1С через БПО требует внимательной и точной настройки как на стороне 1С-драйвера, так и на самом ТСД. Мы убедились, что ключ к решению кроется в правильном определении и сопоставлении параметров Intent Action и Intent Extra, а также в активации режима Broadcast на терминале сбора данных. Мы рекомендуем шаг за шагом проверять все настройки, начиная с наиболее часто используемых комбинаций для вашей модели ТСД. С терпением и систематическим подходом вы обязательно добьетесь успешной работы сканера.