Как реализовать сканирование через аппаратный сканер ТСД Urovo i6200 в мобильном приложении 1С?

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

При разработке мобильных приложений для терминалов сбора данных (ТСД) начинающие разработчики часто сталкиваются с тем, что стандартные средства платформы ведут себя не так, как ожидалось. Типовая команда СредстваМультимедиа.ПоказатьСканированиеШтрихКодов активирует встроенную фотокамеру устройства, что категорически не подходит для профессиональной работы. На устройствах вроде Urovo i6200 установлен специализированный лазерный или имидж-сканер, который работает в десятки раз быстрее и точнее камеры. В этой статье мы подробно разберем, как правильно интегрировать аппаратное сканирование в ваше самописное приложение на базе мобильной платформы 1С:Предприятие.

Почему стандартная команда платформы не подходит?

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

Основные недостатки этого метода для ТСД:

  1. Низкая скорость: Подготовка камеры и фокусировка занимают секунды, тогда как аппаратный луч сканирует мгновенно.
  2. Расход батареи: Постоянная работа матрицы камеры и подсветки быстро разряжает ТСД.
  3. Эргономика: Оператору неудобно смотреть в экран для наведения камеры, когда на устройстве есть удобные физические кнопки сканирования.
  4. Отсутствие связи с «железом»: Эта команда никак не задействует лазерный модуль Urovo.

Использование Библиотеки подключаемого оборудования (БПО)

Проанализируем наиболее надежное решение — использование внешней компоненты из состава БПО. Фирма 1С поставляет специальный драйвер 1С:Сканер штрихкода (NativeApi), который умеет перехватывать сообщения от операционной системы Android. Это позволяет приложению получать данные штрихкода в фоновом режиме через событие ВнешнееСобытие.

Рассмотрим алгоритм подключения:

  1. Скачайте актуальную версию Библиотеки подключаемого оборудования.
  2. Найдите в составе библиотеки внешнюю компоненту для мобильных платформ (обычно это Scanner1CNative_m.zip или аналогичный файл в зависимости от версии).
  3. Интегрируйте компоненту в вашу конфигурацию.

Настройка ТСД Urovo i6200: переход в режим Intent

Чтобы 1С «услышала» сканер, необходимо правильно настроить само устройство. По умолчанию многие ТСД работают в режиме Keyboard Mode (эмуляция клавиатуры), когда штрихкод просто «печатается» в то поле, где стоит курсор. Это плохой путь, так как данные могут теряться, а приложение не может отличить ввод со сканера от ручного ввода.

Выясним, как настроить режим Intent на Urovo i6200:

  1. Откройте на ТСД системное приложение Scanner (или Settings с иконкой штрихкода).
  2. Перейдите в раздел Output mode и выберите Intent Output.
  3. Найдите поле Action for Intent. Здесь нужно указать строку, которую мы пропишем в настройках 1С. Обычно для Urovo это android.intent.ACTION_DECODE_DATA.
  4. Укажите параметр Barcode String Label (переменная, содержащая текст кода). Стандартно это barcode_string.
  5. Убедитесь, что флажок Enable scan включен, иначе питание на лазерный модуль подаваться не будет.

Программная реализация в 1С

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

Пример структуры кода для обработки события:


&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
    
    // Проанализируем источник события
    Если Источник = "BarcodeScanner" Тогда
        
        // Обработаем полученный штрихкод
        Штрихкод = СокрЛП(Данные);
        ПоискТовараПоШтрихкоду(Штрихкод);
        
    КонецЕсли;
    
КонецПроцедуры

Важно помнить, что если вы используете компоненту БПО, то параметры Источник и Событие будут зависеть от того, как вы инициализировали драйвер при запуске приложения. Обычно это настраивается один раз в процедуре инициализации торгового оборудования.

Обработка аппаратных кнопок

На Urovo i6200 есть физические кнопки сканирования (обычно желтого цвета по бокам). При использовании режима Intent вам не нужно программно описывать нажатие этих кнопок. Настройка в системной утилите Scanner связывает физическую кнопку с активацией луча и последующей отправкой Intent-сообщения в 1С.

Однако, если вам требуется по нажатию кнопки на экране 1С заставить ТСД включить луч (программный вызов), вам придется отправить ответный Intent системе Android. Для этого также используются методы внешней компоненты БПО, такие как ОбъектДрайвера.ВыполнитьКоманду("StartScan") (точные названия команд зависят от версии драйвера).

Специфика модели i6200 и Android 5.1

Urovo i6200 — проверенная, но достаточно старая модель. Она работает на Android версии 4.x или 5.1. Это накладывает определенные ограничения на разработку:

Резюме

Для качественной работы со сканером на Urovo i6200 забудьте про СредстваМультимедиа. Используйте внешнюю компоненту БПО, настройте на ТСД Intent Output и обрабатывайте результат через ВнешнееСобытие. Это обеспечит промышленную скорость работы и надежность вашего мобильного решения.

← На главную