Как настроить работу сканера ТСД на мобильной платформе 1С?

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

Разработка мобильных приложений для автоматизации складского учета — задача, требующая высокой скорости реакции интерфейса и надежного считывания данных. Часто разработчики сталкиваются с дилеммой: писать нативное приложение на Java/Kotlin или использовать мобильную платформу 1С. Выбор 1С оправдан скоростью разработки, но возникает вопрос интеграции с аппаратными сканерами ТСД (например, Атол, Urovo или CipherLab). В этой статье мы подробно разберем, как «подружить» мобильную платформу 1С с профессиональным оборудованием.

Основные способы интеграции сканера ТСД с 1С

Рассмотрим основные методы, которые позволяют получать данные со сканера в мобильном приложении 1С. Выбор метода зависит от модели устройства и требований к стабильности работы.

  1. Использование Broadcast Intent (Широковещательные сообщения). Это наиболее профессиональный и стабильный способ для ОС Android. Сканер устройства при считывании не имитирует нажатие клавиш, а отправляет системное сообщение (Intent), которое 1С перехватывает.
  2. Внешние компоненты и драйверы (NativeApi). Использование готовых драйверов от производителей (например, RightScan для Urovo) или стандартной Библиотеки подключаемого оборудования (БПО) от 1С.
  3. Эмуляция клавиатуры (Keyboard Wedge). Самый простой, но наименее надежный способ, при котором считанный штрихкод «печатается» в активное поле ввода.

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

Метод 1: Работа через Broadcast Intent

Для устройств марки Atol (Smart.Lite, Smart.Pro, Smart.Slim) и большинства современных китайских ТСД этот метод является «золотым стандартом». Разберем по шагам, как это настроить.

Шаг 1: Настройка самого ТСД. В меню Android найдите приложение для настройки сканера (часто называется «Scanner», «ScanSettings» или «Settings»). В разделе «Output Mode» или «Transmit mode» необходимо выбрать Intent Output. Далее нужно задать параметры:

Шаг 2: Написание кода в 1С. Рассмотрим, как перехватить это событие в мобильном приложении. Для этого используется механизм внешних событий. Проанализируем пример кода для инициализации подписки на события:


// В модуле управляемого приложения или в форме
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    // Подключаем обработчик для перехвата Intent-сообщений
    // Актуально для работы с внешними компонентами, перехватывающими Android события
    ДобавитьОбработчикОжидания("ПроверитьСобытияСканера", 0.1);
КонецПроцедуры

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

Метод 2: Использование БПО и драйверов NativeApi

Компания 1С активно развивает «1С:Библиотеку подключаемого оборудования для мобильных платформ». В ней уже реализована поддержка многих популярных брендов. Рассмотрим ситуацию с устройствами Atol.

Хотя в официальных списках чаще фигурируют RightScan или Сканкод, устройства Atol отлично работают через универсальный драйвер «1С:Сканер штрихкода (NativeApi)». Рассмотрим алгоритм подключения:

  1. Включите в состав вашей конфигурации актуальную версию мобильной БПО.
  2. В настройках оборудования выберите тип «Сканер штрихкода».
  3. Выберите драйвер «1С:Сканер штрихкода (NativeApi)».
  4. В параметрах драйвера укажите способ обмена (для многих ТСД это будет системное событие Intent).

Важно помнить, что мобильная платформа 1С постоянно обновляется. Например, в последних версиях был существенно обновлен драйвер для устройств Urovo и CipherLab. Посмотрим на список поддерживаемых технологий в последних релизах: драйверы разрабатываются по технологии NativeApi версии 1.2, что гарантирует их высокую производительность на мобильных устройствах.

Метод 3: Эмуляция клавиатуры — когда использовать?

Рассмотрим этот метод только как резервный. При его настройке ТСД просто «вставляет» символы штрихкода в то место, где стоит курсор.

Проблемы этого метода:

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

Различие между мобильным приложением и мобильным клиентом

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

Мобильное приложение: Работает автономно. База данных находится прямо на ТСД. В этом случае вы имеете полный контроль над внешними компонентами и можете подключать любые .so или .jar библиотеки через механизм расширения мобильной платформы.

Мобильный клиент: Это онлайн-подключение к вашей основной базе. Здесь работа со сканером ТСД реализована максимально близко к тому, как это работает в настольной версии 1С. Настройка оборудования производится на стороне сервера в справочнике «Подключаемое оборудование».

Практические советы по работе с ТСД Atol

Если вы планируете приобрести ТСД Atol (например, популярный Smart.Lite), примите во внимание следующие рекомендации:

Пример обработки данных в коде 1С

Проанализируем типовой код обработки данных, поступивших от сканера через внешнее событие:


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

&НаКлиенте
Процедура ОбработатьСчитанныйШтрихкод(Знач Штрихкод)
    // Здесь реализуем логику поиска товара в базе
    // Например, поиск в ТЧ документа или открытие карточки товара
    ПараметрыПоиска = Новый Структура("Штрихкод", Штрихкод);
    // ... логика поиска
КонецПроцедуры

Заключение

Подводя итог, можно с уверенностью сказать: ТСД Атол на Android отлично работает с мобильной платформой 1С. Не стоит бояться «не взлетит» — современные механизмы Broadcast Intent и поддержка NativeApi делают интеграцию прозрачной и надежной. Главное — отойти от примитивной эмуляции клавиатуры в пользу системных событий, что обеспечит вашему приложению профессиональную скорость и стабильность работы.

← На главную