Как реализовать онлайн-сканирование штрихкодов и QR-кодов в 1С с мобильного устройства

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

В современной автоматизации складского учета и розничной торговли задача сканирования штрихкодов с помощью мобильных устройств стоит крайне остро. Мы часто сталкиваемся с необходимостью превратить обычный смартфон в полноценный рабочий инструмент кладовщика или курьера. В этой статье мы разберем несколько эффективных способов реализации онлайн-сканирования в экосистеме 1С:Предприятие 8.3: от штатных средств платформы до интеграции сторонних HTML5 библиотек.

Способ 1. Использование встроенных функций мобильной платформы 1С

Самый простой и надежный метод — это использование Мобильного клиента или Мобильного приложения 1С. Разработчики платформы предусмотрели встроенные механизмы для работы с камерой устройства. Рассмотрим подробнее, как программно вызвать интерфейс сканирования.

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


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

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

Этот метод хорош тем, что он бесплатен, не требует сторонних лицензий и работает «из коробки» на Android и iOS. Однако помните, что скорость фокусировки камеры смартфона всегда будет ниже, чем у профессионального лазерного сканера.

Способ 2. Интеграция HTML5 QR Code Scanner в веб-клиенте

Если ваша задача — запустить сканирование прямо в браузере (через веб-клиент 1С), мы можем использовать библиотеку html5-qrcode. Это особенно актуально, когда установка мобильного приложения на устройства пользователей нежелательна. Разберем, как соединить 1С и JavaScript.

Для реализации нам понадобится Поле HTML-документа на форме. Выясним последовательность действий:

  1. Загружаем библиотеку html5-qrcode во внутренние ресурсы или подключаем через CDN.
  2. В поле HTML-документа помещаем div для вывода видеопотока и скрипт инициализации.
  3. Настраиваем передачу данных из JS обратно в 1С.

Важный нюанс: работа с камерой через браузер требует использования протокола 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» ввод данных прямо в веб-интерфейсе.

Способ 3. Внешнее оборудование (Bluetooth-сканеры и ТСД)

Если интенсивность сканирования высокая (например, приемка фуры товара), камера смартфона не справится. В этом случае мы рекомендуем использовать Терминалы Сбора Данных (ТСД) или компактные Bluetooth-сканеры (кольца).

Разберем алгоритм настройки для Мобильного клиента:

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

Способ 4. Использование мобильного устройства как беспроводного сканера

Существует альтернативный вариант: использование специализированного ПО (например, Barcode to PC или аналоги), которое передает считанный код со смартфона на компьютер по Wi-Fi. На компьютере запускается серверная часть, которая эмулирует нажатие клавиш (Keyboard Wedge).

Для 1С это выглядит так, будто данные ввел обычный USB-сканер «в разрыв клавиатуры». Этот способ не требует программирования в 1С, но сложен в масштабировании, так как нужно настраивать связь «один смартфон — один компьютер».

Архитектурные советы для «online» режима

При реализации онлайн-сканирования важно обеспечить быстрый отклик системы. Рассмотрим, как оптимизировать процесс:

  1. Фоновые задания: После получения штрихкода не блокируйте основной поток приложения. Отправьте запрос на поиск товара на сервер и используйте ПодключитьОбработчикОжидания для проверки результата или механизм ОповеститьОбИзменении.
  2. HTTP-сервисы: Если вы используете Telegram-ботов для сканирования, создайте в 1С HTTP-сервис. Бот будет отправлять POST-запрос с кодом, а 1С мгновенно обрабатывать его и возвращать результат (наименование товара, остаток, цену).
  3. Синтез речи: Для удобства работы в «online» режиме добавьте голосовое подтверждение. В мобильной платформе это реализуется через СредстваМультимедиа.ПроизнестиТекст(). Это позволит сотруднику не смотреть в экран при каждом сканировании.

Подводя итог, выбор метода зависит от ваших бизнес-процессов. Для редких операций подойдет штатное сканирование камерой через СредстваМультимедиа. Для интенсивной работы на складе лучше инвестировать в ТСД или Bluetooth-кольца, подключенные через БПО. А если нужна максимальная гибкость без установки приложений — ваш выбор за HTML5 интеграцией в веб-клиенте.

← На главную