Как настроить сканирование штрихкодов на ТСД Urovo с мобильным приложением 1С и заполнять ими документ?

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

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

Подход 1: Использование внешней компоненты "1С:СканерNative" для обработки событий сканера

Этот метод является одним из наиболее распространенных и эффективных для работы с аппаратными сканерами на мобильных устройствах под управлением Android. Компонента 1С:СканерNative (или Драйвер1СУстройствоВводаNative) входит в состав "1С:Библиотеки подключаемого оборудования" (БПО) или "1С:Библиотеки подключаемого оборудования для мобильных приложений" (МБПО) и специально разработана для приема данных от сканеров штрихкодов и их передачи в платформу "1С:Предприятие".

Ключевой момент здесь — это настройка режима работы сканера на самом ТСД и соответствующая конфигурация мобильного приложения 1С.

Настройка ТСД Urovo для работы со сканером

Терминалы Urovo обычно предлагают несколько режимов работы встроенного сканера. Рассмотрим два основных, которые могут быть использованы для интеграции с 1С:

  1. Режим Broadcast (вещательный режим): Этот режим является предпочтительным для глубокой интеграции с мобильными приложениями на Android. В этом режиме сканер ТСД генерирует системные сообщения (Intent), которые мобильное приложение 1С может перехватывать и обрабатывать.

    Для настройки ТСД Urovo в режим Broadcast, вам, как правило, потребуется зайти в системные настройки сканера на самом устройстве. Ищите разделы типа ScanWedge Profiles или Scanner Settings. В этих настройках необходимо:

    1. Включить опцию Output via Intent.
    2. Задать параметры Intent action (например, android.intent.ACTION_DECODE_DATA) и Intent string extra (например, barcode_string). Эти параметры определяют, какие именно системные сообщения будет генерировать сканер при успешном считывании штрихкода и как будет называться поле с данными штрихкода в этом сообщении.
    3. Иногда также требуется указать категорию Intent, например, android.intent.category.DEFAULT.

    После такой настройки, каждый раз при сканировании штрихкода ТСД будет отправлять соответствующее Intent-сообщение в операционную систему Android, которое затем будет перехвачено мобильным приложением 1С.

  2. Клавиатурный режим (HID): В этом режиме сканер имитирует ввод с обычной клавиатуры. Отсканированный штрихкод просто вставляется в активное поле ввода на устройстве, как если бы вы набрали его вручную.

    Этот метод проще в реализации, поскольку не требует специфической интеграции с 1С на уровне обработки системных событий. Однако он менее гибок, так как требует, чтобы курсор всегда находился в нужном поле ввода в мобильном приложении. В большинстве случаев для профессиональной работы со сканированием мы рекомендуем использовать режим Broadcast.

Настройка мобильного приложения 1С и обработка событий

После того как ТСД настроен на передачу данных, необходимо настроить мобильное приложение 1С для их приема.

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

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

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

    Обратите внимание: если вам нужно получить данные о товаре из базы данных 1С, вам придется организовать вызов серверной процедуры из клиентской процедуры ЗаполнитьДокументОтсканированнымШтрихкодом, так как прямого доступа к данным на клиенте нет.

Подход 2: Использование внешней компоненты RSExchange

Автор сообщения изначально упоминал попытку использовать внешнюю компоненту RSExchange. Эта компонента разработана специально для 1С Мобильной платформы и ТСД Urovo и предназначена для обеспечения быстрого и удобного обмена данными между конфигурацией 1С на ПК и мобильным приложением 1С.

Хотя основное назначение RSExchange — это обмен данными (передача документов, справочников), она также может быть использована для интеграции событий, включая события сканирования, если разработчики компоненты предусмотрели такой функционал. В таком случае, механизм работы будет схож с 1С:СканерNative, где компонента перехватывает системные Intent-сообщения или напрямую работает с API сканера ТСД и транслирует их в события 1С.

Для реализации через RSExchange вам потребуется:

  1. Установить мобильную часть компоненты на ТСД и настроить её.
  2. Установить драйвер для ПК (если требуется для обмена или настройки).
  3. Изучить документацию RSExchange на предмет механизмов обработки событий сканирования и соответствующих методов или событий, которые компонента предоставляет для 1С. Вероятно, это также будет реализовано через механизм внешних событий или вызовов специфических методов компоненты.

Общие рекомендации и важные моменты

При работе с ТСД и мобильными приложениями 1С следует учитывать несколько важных аспектов:

  1. Признак "Сканировать в поле": В некоторых настройках мобильных приложений 1С или утилит ТСД может присутствовать опция "Сканировать в поле". Эта настройка позволяет ТСД автоматически вводить отсканированный штрихкод в активное поле ввода, что упрощает работу в клавиатурном режиме, но не дает полного контроля над событием.
  2. Совместимость версий: Крайне важно обеспечить совместимость версий мобильной платформы 1С с версией Android на вашем ТСД Urovo. Некоторые функции и компоненты могут требовать определенной минимальной версии платформы или Android. Например, компоненты БПО могут требовать мобильной платформы 8.3.12 и выше.
  3. Программное обеспечение ТСД: Помимо драйверов 1С, на ТСД часто устанавливается специализированное ПО (например, DataMobile, Simple.Учет+ или "1С:Мобильная торговля"), которое значительно расширяет функционал работы со складом и упрощает интеграцию с 1С, предоставляя уже готовые механизмы.
  4. Тестирование: Всегда проводите тщательное тестирование разработанной функциональности на конкретной модели ТСД и версии Android. Поведение сканера и интеграция могут существенно отличаться в зависимости от модели и прошивки устройства.
  5. Встроенные средства 1С: Если аппаратный сканер не является критичным или вы ищете самое простое решение, мобильная платформа 1С также предоставляет встроенные средства для сканирования штрихкодов с использованием камеры устройства через метод СредстваМультимедиа.ПоказатьСканированиеШтрихКодов(). Этот метод не требует внешних компонент, но по скорости и точности уступает аппаратному сканеру.

Мы рассмотрели основные методы интеграции сканирования штрихкодов с ТСД Urovo в мобильное приложение 1С. Наиболее эффективным и гибким является использование внешней компоненты 1С:СканерNative в сочетании с настройкой ТСД на работу в режиме Broadcast, что позволяет получать и обрабатывать события сканирования непосредственно в коде мобильного приложения 1С.

← На главную