Работа с терминалами сбора данных (ТСД) на базе Android часто ставит перед разработчиком задачу: как заставить встроенный сканирующий модуль передавать данные напрямую в «1С:Предприятие»? Модель Atol Smart.Lite, оснащенная модулем Zebra SE4710, является популярным бюджетным решением, однако стандартная документация не всегда дает четкий ответ на вопрос интеграции. В этой статье мы подробно разберем, как подружить устройство с мобильной платформой 1С, настроить системные утилиты и реализовать программный перехват штрихкодов.
Прежде чем приступать к коду, разберем, как именно данные попадают из «стекла» сканера в наше приложение. Существует три основных способа передачи данных:
Рассмотрим подробнее реализацию через Broadcast Intent, так как именно она обеспечивает стабильную работу в фоновом режиме.
Для начала нам необходимо настроить само устройство. В ТСД Атол Smart.Lite (который является ОЕМ-версией модели Giot H600) предустановлена программа Barcode Utility. Именно она управляет поведением сканирующей головы.
Выполним следующие настройки по шагам:
keyboard_event. Нам необходимо обязательно изменить его на Broadcast_event.com.android.serial.BARCODE_DATA.barcode_string). Это ключ в сообщении, содержащий само значение штрихкода. Обычно используется data.Для того чтобы мобильная платформа могла «слушать» системные сообщения Android, нам потребуется внешняя компонента. Мы можем использовать стандартную компоненту из Библиотеки подключаемого оборудования (БПО) или сторонние Native-компоненты для работы с Intent.
Проанализируем пример кода для подключения компоненты в мобильном приложении:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// Попытаемся подключить компоненту для перехвата Broadcast сообщений
ПутьККомпоненте = "ОбщийМакет.КомпонентаСканера";
Если ПодключитьВнешнююКомпоненту(ПутьККомпоненте, "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
СканерОбъект = Новый("AddIn.Broadcasts.ScanReceiver");
// Настраиваем Action Name, который мы указали в Barcode Utility
СканерОбъект.Action = "com.android.serial.BARCODE_DATA";
Сообщить("Драйвер сканера успешно подключен");
Иначе
Сообщить("Не удалось подключить компоненту сканера");
КонецЕсли;
КонецПроцедуры
Когда настройки на стороне Android выполнены и компонента инициализирована, при каждом нажатии физической кнопки сканирования на ТСД будет генерироваться событие. Нам нужно описать его обработку в модуле формы или в модуле приложения (в зависимости от архитектуры).
Разберем пример обработки входящего штрихкода:
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
// Проверяем, что событие пришло от нашего сканера
Если Источник = "Broadcasts" И Событие = "Barcode" Тогда
// Расшифровываем полученный штрихкод
Штрихкод = СокрЛП(Данные);
// Вызываем логику поиска товара или документа
ОбработатьСчитанныйШтрихкод(Штрихкод);
КонецЕсли;
КонецПроцедуры
Обратите внимание: если внешнее событие не срабатывает, проверьте еще раз настройки Action Name. Они должны посимвольно совпадать в Barcode Utility и в коде 1С.
Модуль Zebra SE4710 отлично справляется с 2D-кодами, что необходимо для работы с маркировкой «Честный Знак». Однако пользователи часто сталкиваются с тем, что DataMatrix считывается не полностью или с ошибками. Выясним причину этого.
В настройках Barcode Utility необходимо зайти в раздел Symbology Settings. Найдите там тип кода DataMatrix и убедитесь, что:
На ТСД Атол Smart.Lite (Android 7.0/8.1) существует нюанс: после длительного простоя система может «убить» процесс Barcode Utility для экономии заряда батареи. В результате сканер светится, но данные в 1С не приходят.
Для решения проблемы выполните следующие действия:
Если вы не хотите использовать самописные компоненты, можно воспользоваться стандартной конфигурацией «1С:Библиотека подключаемого оборудования для мобильных приложений». В ней уже реализован универсальный драйвер «Устройства на Android (через Intent)». При его настройке в 1С достаточно будет просто указать те же параметры Action и Extra, которые мы задали в системной утилите ТСД. Это позволит избежать написания низкоуровневого кода и использовать стандартные механизмы БПО для работы с торговым оборудованием.
Подведем итог: успех интеграции Атол Smart.Lite зависит от правильного сочетания настроек утилиты Barcode Utility (режим Broadcast) и корректной подписки на ВнешнееСобытие в мобильной платформе 1С. При соблюдении этих шагов ТСД превращается в мощный инструмент автоматизации склада или производства.