При автоматизации склада, будь то приемка товаров или сборка заказов, стандартная камера смартфона часто не справляется с нагрузкой. Для высокой скорости работы требуются специализированные устройства — терминалы сбора данных (ТСД) со встроенным лазерным или имидж-сканером. В этой статье мы подробно разберем, как выбрать подходящее оборудование и «подружить» его с вашей конфигурацией на мобильной платформе 1С.
Рассмотрим ситуацию, когда стандартный телефон не подходит. Основная проблема камер — фокусировка. При работе в условиях слабой освещенности или при необходимости сканировать сотни позиций в час камера смартфона быстро разряжает батарею и работает медленно. Проанализируем опыт коллег, которые протестировали различные решения:
Выясним, каким образом данные из «железного» сканера попадают в код 1С. Существует три основных способа интеграции, которые мы разберем по шагам.
1. Режим эмуляции клавиатуры (Keyboard Wedge)
Это самый простой, но наименее надежный метод. Сканер работает как внешняя клавиатура. Когда вы нажимаете кнопку сканирования, данные просто «печатаются» в то поле, где сейчас стоит курсор.
Для корректной работы в настройках сканера (утилита Scanner на Android) необходимо добавить суффикс Enter. Тогда 1С поймет, что ввод завершен, и инициирует событие изменения поля.
2. Использование 1С:Библиотеки подключаемого оборудования (БПО)
Это официальный путь. Вы используете специальную конфигурацию «1С:Библиотека подключаемого оборудования для мобильных приложений». Рассмотрим плюсы этого решения: оно стандартизировано и поддерживает работу с широким спектром ТСД. Однако настройка требует внедрения БПО в вашу конфигурацию, что может быть избыточным для простых задач.
3. Использование системных Intent (Широковещательные сообщения)
Проанализируем самый профессиональный метод. ТСД при успешном сканировании отправляет системное сообщение (Intent) внутри Android. Мобильная 1С может перехватывать эти сообщения через механизм ВнешнееСобытие.
Чтобы заставить приложение видеть аппаратный сканер вместо вызова камеры, нам нужно выполнить три шага. Разберем их подробнее.
Шаг 1: Настройка самого ТСД. Зайдите в системное приложение (например, DataWedge на Zebra или Scanner на Urovo). В настройках профиля выберите Intent Output. Укажите имя действия (Action), например, com.1c.mobile.BARCODE. Убедитесь, что данные передаются как String.
Шаг 2: Настройка формы в 1С. В коде мобильного приложения нам больше не нужен метод СредстваМультимедиа.СканироватьШтрихКод, который открывает камеру. Вместо этого мы будем использовать обработчик внешнего события.
Шаг 3: Написание кода. Посмотрим на пример обработки события в модуле формы:
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
// Источник обычно указывает на устройство или имя события
// Событие - это тип (например, "Barcode")
// Данные - сам считанный штрихкод
Если Событие = "Barcode" Тогда
ШтрихкодДанные = СокрЛП(Данные);
ОбработатьШтрихкод(ШтрихкодДанные);
КонецЕсли;
КонецПроцедуры
Выясним причину проблемы, упомянутой в сообщениях форума. Если ваше приложение при попытке сканирования упорно открывает интерфейс камеры, значит, в коде вызывается стандартная функция СредстваМультимедиа. Для работы с аппаратным сканером этот вызов нужно полностью исключить.
Аппаратный сканер работает автономно: вы нажимаете физическую кнопку на корпусе ТСД, луч считывает код, и данные мгновенно попадают в ВнешнееСобытие формы 1С. Пользователю не нужно нажимать никаких кнопок в интерфейсе программы.
Рассмотрим вопрос постоянного подключения к основной базе 1С. Есть два пути:
Для реализации обмена данными в реальном времени мы рекомендуем использовать HTTPСервис на стороне основной базы. Посмотрим на пример логики обмена:
// Пример структуры запроса из мобильного приложения
Запрос = Новый HTTPЗапрос("/hs/Warehouse/V1/PickOrder");
Запрос.УстановитьТелоИзСтроки(ДанныеЗаказаJSON);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Интеграция аппаратного сканера с 1С на Android — это задача, требующая понимания работы Intent-сообщений в ОС Android. Использование специализированных ТСД марок Honeywell, Zebra или Urovo значительно повышает надежность системы. Помните, что для быстрой работы склада следует отказаться от использования камеры в пользу ВнешнегоСобытия, что позволит сотрудникам сканировать товар «в одно нажатие», не отвлекаясь на экран устройства.