В современной автоматизации складского учета и розничной торговли задача сканирования штрихкодов с помощью мобильных устройств стоит крайне остро. Мы часто сталкиваемся с необходимостью превратить обычный смартфон в полноценный рабочий инструмент кладовщика или курьера. В этой статье мы разберем несколько эффективных способов реализации онлайн-сканирования в экосистеме 1С:Предприятие 8.3: от штатных средств платформы до интеграции сторонних HTML5 библиотек.
Самый простой и надежный метод — это использование Мобильного клиента или Мобильного приложения 1С. Разработчики платформы предусмотрели встроенные механизмы для работы с камерой устройства. Рассмотрим подробнее, как программно вызвать интерфейс сканирования.
Для запуска процесса сканирования используется объект СредстваМультимедиа. Основным методом здесь является ПоказатьСканированиеШтрихКодов. Проанализируем пример кода, который можно разместить в обработчике нажатия кнопки на управляемой форме:
&НаКлиенте
Процедура СканироватьКод(Команда)
// Проверяем, поддерживает ли устройство сканирование
Если СредстваМультимедиа.ПоддерживаетсяСканированиеШтрихКодов() Тогда
Обработчик = Новый ОписаниеОповещения("ОбработатьСканирование", ЭтотОбъект);
СредстваМультимедиа.ПоказатьСканированиеШтрихКодов("Наведите камеру на код", Обработчик);
Иначе
Сообщить("Сканирование на данном устройстве недоступно.");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьСканирование(Штрихкод, ДополнительныеПараметры) Экспорт
Если Штрихкод = Неопределено Тогда
Возврат; // Пользователь закрыл камеру
КонецЕсли;
// Здесь мы получаем результат сканирования в переменную Штрихкод
ТекстСообщения = "Отсканирован код: " + Штрихкод;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
// Далее можно вызвать серверную процедуру для поиска товара
ПоискТовараПоШтрихкодуНаСервере(Штрихкод);
КонецПроцедуры
Этот метод хорош тем, что он бесплатен, не требует сторонних лицензий и работает «из коробки» на Android и iOS. Однако помните, что скорость фокусировки камеры смартфона всегда будет ниже, чем у профессионального лазерного сканера.
Если ваша задача — запустить сканирование прямо в браузере (через веб-клиент 1С), мы можем использовать библиотеку html5-qrcode. Это особенно актуально, когда установка мобильного приложения на устройства пользователей нежелательна. Разберем, как соединить 1С и JavaScript.
Для реализации нам понадобится Поле HTML-документа на форме. Выясним последовательность действий:
html5-qrcode во внутренние ресурсы или подключаем через CDN.div для вывода видеопотока и скрипт инициализации.Важный нюанс: работа с камерой через браузер требует использования протокола HTTPS. Без него современные браузеры (Chrome, Safari) заблокируют доступ к мультимедиа из соображений безопасности.
Для передачи данных из HTML в 1С мы используем механизм СредстваОтображения.ВыполнитьСценарийJavaScript или обработку события ПриНажатии. Посмотрим на примерную структуру скрипта, который должен находиться внутри HTML-поля:
// Внутри HTML документа
const html5QrCode = new Html5Qrcode("reader");
html5QrCode.start(
{ facingMode: "environment" },
{ fps: 10, qrbox: { width: 250, height: 250 } },
(decodedText, decodedResult) => {
// Передаем данные в 1С через изменение скрытого элемента
document.getElementById("hiddenInput").value = decodedText;
document.getElementById("hiddenButton").click();
}
);
В 1С мы перехватываем событие нажатия на hiddenButton и считываем значение из hiddenInput. Это позволяет реализовать полноценный «online» ввод данных прямо в веб-интерфейсе.
Если интенсивность сканирования высокая (например, приемка фуры товара), камера смартфона не справится. В этом случае мы рекомендуем использовать Терминалы Сбора Данных (ТСД) или компактные Bluetooth-сканеры (кольца).
Разберем алгоритм настройки для Мобильного клиента:
Intent (намерение) в Android.Проанализируем преимущества этого подхода: данные попадают в форму 1С через событие ВнешнееСобытие. Это происходит мгновенно, не прерывая работу интерфейса и не требуя открытия окна камеры.
Существует альтернативный вариант: использование специализированного ПО (например, Barcode to PC или аналоги), которое передает считанный код со смартфона на компьютер по Wi-Fi. На компьютере запускается серверная часть, которая эмулирует нажатие клавиш (Keyboard Wedge).
Для 1С это выглядит так, будто данные ввел обычный USB-сканер «в разрыв клавиатуры». Этот способ не требует программирования в 1С, но сложен в масштабировании, так как нужно настраивать связь «один смартфон — один компьютер».
При реализации онлайн-сканирования важно обеспечить быстрый отклик системы. Рассмотрим, как оптимизировать процесс:
ПодключитьОбработчикОжидания для проверки результата или механизм ОповеститьОбИзменении.HTTP-сервис. Бот будет отправлять POST-запрос с кодом, а 1С мгновенно обрабатывать его и возвращать результат (наименование товара, остаток, цену).СредстваМультимедиа.ПроизнестиТекст(). Это позволит сотруднику не смотреть в экран при каждом сканировании.Подводя итог, выбор метода зависит от ваших бизнес-процессов. Для редких операций подойдет штатное сканирование камерой через СредстваМультимедиа. Для интенсивной работы на складе лучше инвестировать в ТСД или Bluetooth-кольца, подключенные через БПО. А если нужна максимальная гибкость без установки приложений — ваш выбор за HTML5 интеграцией в веб-клиенте.