Как настроить сканер штрихкода АТОЛ Smart.Droid в мобильном приложении 1С с использованием БПО?

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

При разработке мобильных приложений на платформе 1С:Предприятие одной из самых трудоемких задач является корректная интеграция торгового оборудования, в частности терминалов сбора данных (ТСД). Модель АТОЛ Smart.Droid имеет свои специфические особенности настройки, которые отличают ее от более современных моделей, таких как Smart.Lite. Основная проблема часто заключается в том, что сканер штрихкода работает в системных приложениях, но «отказывается» передавать данные в мобильное приложение 1С. Разберем по шагам, как наладить связь между «1С:Библиотекой подключаемого оборудования для мобильных приложений» (БПО) и данным устройством.

Выясняем причину отсутствия связи

Проанализируем ситуацию: если на устройстве АТОЛ Smart.Lite сканер работает корректно, а на Smart.Droid данные не поступают, причина кроется в способе передачи данных от сканирующего модуля в операционную систему Android. Существует два основных режима работы сканера:

  1. Эмуляция клавиатуры (Keyboard Emulation): Сканер имитирует нажатие клавиш. В этом случае данные попадают только в то поле, где установлен фокус (курсор). Мобильная платформа 1С не генерирует ВнешнееСобытие при таком режиме, что делает невозможной автоматизированную обработку штрихкодов в коде.
  2. Широковещательное сообщение (Broadcast Intent): Сканер отправляет системное сообщение, которое «ловит» мобильная платформа 1С и передает его в процедуру ОбработкаВнешнегоСобытия. Это наиболее правильный и профессиональный способ интеграции.

Выясним причину: в Smart.Droid по умолчанию часто включена именно эмуляция клавиатуры или настроены специфические параметры Intent, которые драйвер 1С не может распознать автоматически.

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

Рассмотрим процесс подготовки самого устройства. Прежде чем настраивать 1С, необходимо сконфигурировать системное приложение, управляющее сканером (обычно оно называется Scanner, Scan Settings или Barcode Utility).

  1. Откроем приложение настроек сканера на рабочем столе ТСД.
  2. Найдем раздел Output Mode (Режим вывода).
  3. Переключим значение с Keyboard Emulation на Intent Output или Broadcast.
  4. Найдем настройки параметров вещания. Нам необходимо убедиться, что система отправляет данные с конкретными именами Action и Extra.

Для модели АТОЛ Smart.Droid стандартными значениями являются:

Запомним эти значения, так как их нужно будет в точности перенести в настройки 1С.

Настройка драйвера в мобильной конфигурации 1С

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

  1. Перейдем в раздел Подключаемое оборудование.
  2. Создадим новый экземпляр устройства, выбрав тип Сканер штрихкода.
  3. В качестве драйвера выберем стандартный 1С:Сканер штрихкода (Android).
  4. Нажмем кнопку Настроить.

В открывшемся окне настроек драйвера крайне важно правильно заполнить параметры связи:

Важный нюанс: Если данные все еще не приходят, попробуйте альтернативные настройки, которые встречаются в некоторых ревизиях Smart.Droid: com.atid.service.ACTION_BARCODE_DATA для Action и barcode_data для Extra.

Программная реализация перехвата события

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

В процедуре ПриОткрытии или ПриСозданииНаСервере мы должны инициировать подключение устройства через механизмы БПО. Проанализируем типичный код:


&НаКлиенте
Процедура ПриОткрытии(Отказ)
    // Инициализация механизма БПО
    ПоддерживаемыеТипы = Новый Массив;
    ПоддерживаемыеТипы.Добавить("СканерШтрихкода");
    
    ПараметрыПодключения = Новый Структура;
    МенеджерОборудованияКлиент.ПодключитьОборудованиеПоТипу(ЭтаФорма, 
        ПоддерживаемыеТипы, 
        ПараметрыПодключения);
КонецПроцедуры

Теперь рассмотрим обработку самого события сканирования. Когда сканер сработает, платформа вызовет процедуру ВнешнееСобытие. Выясним, как правильно извлечь данные:


&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
    
    // Источник обычно соответствует имени устройства в БПО
    // Событие для сканера обычно "Barcode"
    
    ПеременнаяДанныеСканера = "";
    
    Если МенеджерОборудованияКлиент.ИсточникСобытияСканер(Источник) Тогда
        
        // Извлекаем штрихкод из данных
        МенеджерОборудованияКлиент.ПолучитьДанныеСканера(Данные, ПеременнаяДанныеСканера);
        
        // Здесь вызываем вашу бизнес-логику
        ОбработатьПолученныйШтрихкод(ПеременнаяДанныеСканера);
        
    КонецЕсли;
    
КонецПроцедуры

Использование демо-конфигурации для тестирования

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

Посмотрим на алгоритм проверки в демо-базе:

  1. Установите мобильное приложение БПО: Демо на АТОЛ Smart.Droid.
  2. Зайдите в раздел Тестирование оборудования.
  3. Создайте устройство с теми же параметрами Intent Action и Extra, которые мы определили ранее.
  4. Нажмите кнопку «Тест устройства» и произведите сканирование. Если в окне лога появится штрихкод — настройки ТСД и драйвера верны.

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

В ситуациях, когда стандартные имена Action не подходят, рекомендуем использовать сторонние утилиты для Android, такие как Intent Interceptor. Установите ее на ТСД, запустите режим перехвата и нажмите кнопку сканирования. Утилита покажет точное системное имя сообщения и ключи данных, которые генерирует прошивка вашего АТОЛ Smart.Droid. Эти данные останется просто скопировать в настройки драйвера 1С:Сканер штрихкода (Android).

Резюмируем: Основной секрет настройки АТОЛ Smart.Droid заключается в точном совпадении параметров Broadcast Intent в настройках Android-утилиты и в настройках драйвера 1С. Помните, что регистр букв в именах Action и Extra имеет значение.

← На главную