Android беспроводной Bluetooth сканер 1D/2D штрихкода и терминал сбора данных для 1С






Бесплатное приложение, превращающее Android-смартфон в беспроводной 1D/2D Bluetooth сканер и терминал сбора данных для 1С и прочих POS систем. Не требует драйверов и доработки конфигураций.

Приложение сочетает в себе функциональность беспроводного сканера штрих-кода и терминала сбора данных. Работает под управлением Android версии не ниже 4.0, а значит для превращения в беспроводной сканер подойдет отслуживший свое смартфон. Минимальные требования: наличие модуля Bluetooth спецификации 2.0 и камеры.

Кроме приложения и 1С не нужно ничего, никакого дополнительного ПО на компьютер устанавливать не нужно. Подключается по стандартному Bluetooth RFCOMM, создает на ПК средствами операционной системы виртуальный COM-порт, который и настраивается в 1С любым из типовых драйверов сканнера штрих-кода, входящих в библиотеку подключаемого оборудования.

Когда устройство подключено к ПК, например, в конфигурации 1С открыт документ или рабочее место кассира, отсканированные штрих-коды сразу передаются в 1С. Если соединение прервано отсканированные штрих-коды сохраняются в базе данных, при последующем подключении их можно передать в 1С все сразу или порциями. Т.к. передача количества N > 1 осуществляется последовательной передачей штрих-кода N раз, то максимально возможное количество в режиме терминала сбора данных ограничено во избежании потери данных при передаче. Все-таки это не совсем ТСД, с точки зрения конфигурации 1С это обычный сканер.

UPD: Над улучшением выгрузки уже работаю. Сейчас если отсканировать QR код со ссылкой, заканчивающейся на upload, все собранные данные упакуются в JSON и отправятся по указанной ссылке запросом POST. Готова даже веб-служба на Python, которая умеет генерить такие ссылки, принимать пакеты с данными и хранить в своей базе данных.  Осталось дело за малым — запихнуть все это в 1С.

Опционально в приложение можно загрузить базу с наименованиями товаров. Когда такая база подгружена, в списке собранных данных дополнительно к штрих-кодам отображаются соответствующие им наименования товаров, характеристик и единиц измерения. База подгружается через http, годится как файл, так и web-сервис, способный передать массив JSON объектов такой структуры:

[
{
"barcode": "Значение штрих-кода",
"name": "Наименование",
"advanced_name": "Характеристика (может быть пустым)",
"unit": "Единица (может быть пустым)"
},
{
"barcode": "2003591840008",
"name": "Пальто",
"advanced_name": "40, Розовый",
"unit": "шт."
}
]

Для загрузки базы достаточно отсканировать в приложении QR-код URL указывающим на этот JSON, важно, что бы URL заканчивалась на json, так приложение понимает, что ему нужно загрузить базу товаров. Загрузка производится в фоновом режиме, приложение сразу же возвращается в рабочий режим.

Обновление

Я обещал сделать обработку и я ее сделал.

Для загрузки в мобильное приложение базы товаров из 1С:Розницы, Управления торговлей, Комплексной автоматизации, Управления нашей фирмой или даже из Бухгалтерии предприятия воспользуйтесь бесплатной обработкой и (пока) бесплатным веб-сервисом.

Не надо ничего настраивать, подключать, регистрировать, никаких веб-серверов, IP-адресов не нужно, все просто! Скачиваем обработку, добавляем её в конфигурацию, открываем, нажимаем кнопку "Выгрузить", дожидаемся появления QR кода на экране, сканируем его приложением — готово! База товаров загружена. Попробуйте!

А для любителей разворачивать веб-сервисы я выложил скрипты веб-службы на GitHub. Для сокращения интернет-трафика и ускорения загрузки можете развернуть службу у себя.

Последовательность действий для подключения:

 

  1. Установить приложение из Google Play
    Доступно в Google Play
  2. Спарить смартфон и ПК по Bluetooth
  3. Запустить приложение на смартфоне
  4. На ПК открыть Панель управления, перейти в раздел Устройства и принтеры — Изменить параметры Bluetooth
  5. Перейти на вкладку COM порт, и создать новый исходящий порт для смартфона и службы Lineris Barcode Scanner
  6. В 1С:Предприятии в настройках подключаемого оборудования создать новый экземпляр оборудования Сканер штрихкода, подключенный к ранее созданному COM порту.
  7. Скачать обработку, прикрепленную к этой публикации, и загрузить в приложение базу товаров.

 

Подробнее смотри видео инструкцию:

43 Comments

  1. jackill88

    Для «поиграться» — хорошая, отличная вещь. Но на практике раздолбать смартфон куда легче, чем специализированный ТСД, плюс время считывания (нужен быстрый автофокус — он не у всех телефонов есть) в разы отличается. Так особо не сэкономишь, т.к. пострадают нервы пользователей, и придется за лекарства платить))

    Reply ↓
  2. kuld

    (1) Предприниматель в малом бизнесе нынче прижимистый пошел… Если ему в ЕГАИС не надо, то вероятность продажи ему, например, Honeywell 1400 за 7 т.р. вместо какого-нибудь noname 1D китайца в пределах 1 т.р. близка к нулю. А при этом он хочет рассылать своим покупателям через мессенджеры купоны на скидки в виде QR-кодов. Так вот под такие маркетинговые акции сойдет вполне.

    А если бесплатный вариант не зашел — самое время поговорить о Honeywell или Zebra.

    Reply ↓
  3. dreamadv

    (2) Дмитрий, а мой вариант видели ? https://infostart.ru/public/564460/

    С блютуф конечно здорово, что не нужно ничего устанавливать дополнительно на ПК

    Reply ↓
  4. kuld

    (3) Именно Ваш не смотрел, но видел множество вариантов в Google Play где требовалась установка утилиты на ПК, которая тем или иным каналом получая данные от андроида эмулировала клавиатуру. Вот именно этого я никак и не мог понять, RFCOMM для Bluetooth вещь совершенно стандартная, аппаратные сканеры именно через него и работают — зачем городить этот огород…

    Reply ↓
  5. assa

    Выведите, пожалуйста настройки считывания. Не читает лидирующий 0. Спасибо за труд!

    Reply ↓
  6. kuld

    (5) А какую кодировку не читает? Я сейчас попробовал UPC-A, CODE-39 и QR — читает корректно.

    Собсно у Zebra Crossing на эту тему никаких ограничений нету, должно все читать, и лидирующие нули тоже.

    Reply ↓
  7. assa

    (6) EAN-13. Там не в ограничениях дело, а в настройках. У меня такая же проблема с ТСД была.

    Reply ↓
  8. kuld

    (7) Да, действительно, у EAN-13 лидирующий ноль отрезает. Ушел читать Zebra Crossing Manual……..

    Reply ↓
  9. kuld

    (7) Надо подумать что тут можно сделать. EAN-13 с лидирующим нулем считается UPC-A. Вернее так, EAN-13 является расширением UPC-A, и в том случае, если первая цифра в нем 0, то он распознается как UPC-A.

    Как вариант можно вывести в настройки ZXing перечень кодировок, если из них убрать UPC-A и UPC-E, то EAN-13 и EAN-8 будeт возвращаться с ведущими 0.

    Если ничего лучше не придумаю, сделаю так.

    Reply ↓
  10. assa

    На вашей программе не проверял, но обычные сканеры без перенастроек у EAN-8 так же режут лидирующий 0.

    Reply ↓
  11. vano-ekt

    26.4.5. Сканирование штрихкодов

    Мобильное устройство, обладающее камерой, позволяет выполнять функции сканирования штрихкодов. Для доступа к этой возможности платформа предоставляет специальный интерфейс.

    https://its.1c.ru/db/v8311doc#bookmark:dev:TI000001452

    Reply ↓
  12. vano-ekt
    &НаКлиенте
    Процедура ОткрытьИнтерфейсСканирования(Команда)
    ОбработчикСканирования = Новый ОписаниеОповещения(«ОбработкаСканирования», ЭтотОбъект);
    ОбработчикЗакрытия = Новый ОписаниеОповещения(«ОбработкаЗакрытияИнтерфейса», ЭтотОбъект);
    СредстваМультимедиа.ПоказатьСканированиеШтрихКодов(«Наведите камеру на штрихкод», ОбработчикСканирования, ОбработчикЗакрытия);
    КонецПроцедуры
    Reply ↓
  13. kuld

    (11) Это не на мобильной платформе, нативный Андроид.И не для мобильной платформы.

    Reply ↓
  14. kuld

    (10) Обновлено. В настройках отключаем UPC-E и UPC-A, EAN коды приходят с лидирующими нулями.

    Reply ↓
  15. assa

    (14) Спасибо. Буду пробовать

    Reply ↓
  16. coolseo

    Здравствуйте, исходники на git выкладывали?

    Reply ↓
  17. kuld

    (16) не

    Reply ↓
  18. kuld

    Новая версия! Легким движением руки смартфон превращается не только в сканер штрих-кода, но и в терминал сбора данных.

    И по прежнему не требует дополнительных утилит на ПК или доработки конфигураций 1С.

    Reply ↓
  19. as

    По поводу Web-сервисов вам наверно лучше было сделать расширение с готовым вебсервисом.

    Reply ↓
  20. kuld

    (19) Да, эта первая мысль, которая пришла мне в голову. Я начал её думать и вот что мне подумалось…

    Я сделал это бесплатное приложение для очень малого бизнеса, внешнюю обработку или расширение конфигурации пользователь конечно же установить сможет, а вот настроить IIS или Apache — вряд ли.

    Значит надо сделать это за них, тем более, что есть задумка сделать настоящий 1С-Совместимый ТСД с функциональностью помощнее в отдельном приложении, а для него совершенно точно надо делать такой сервис.

    Reply ↓
  21. as

    (20) Согласен, что-то про необходимость Webserver я забыл. Проще наверно без вер-сервисов и использовать внешний сервер для обмена.

    Reply ↓
  22. kuld

    (21) Проще, но не бесплатно. В том смысле, что ни один бесплатный файлообменник типа Яндекс.Диска просто так не подойдет, там нет прямых ссылок на файлы. Тут как бы варианты тоже есть, например у Яндекс.Диска и у Google Drive есть API, можно его заюзать, но при этом надо понимать, что от пользователя потребуется авторизация в Яндексе или Google и на ПК и на смартфоне. Не самый удобный вариант.

    Удобно будет так:

    1) Установил внешнюю обработку в 1С, она сама прописала себя Куда Следует в интерфейсе 1С.

    2) Нажал кнопочку «Выгрузить» и тут же получил в ответ QR-код для загрузки данных в приложение.

    3) Отсканировал в приложении QR-код и готово

    И никаких настроек, и никакой авторизации.

    Reply ↓
  23. androgin

    ПроверятьСтруктуру занимает очень много времени!

    заполнить массив через структуру — гораздо быстрее и безопаснее.

    создать джейсон на основани массива — еще одно безопасное действие.

    простите, но ваш код — полное …

    Reply ↓
  24. Noob001

    Спасибо! Дельная штука!

    Не знаю как насчет использования в продакшене, но для целей по тестировать программу или демонстрации клиенту возможностей сканера и ТСД, программа отличная.

    Reply ↓
  25. kuld

    (24) Рад что понравилось. Александр, спасибо за отзыв в Google Play

    Reply ↓
  26. kuld

    Выложил обработку для выгрузки товаров их типовых конфигураций 1С. Совсем бесплатно Инфостарт не пропускает, выставляет минимум 1sm.

    Reply ↓
  27. kuld

    (22) Отвечу сам себе, вдруг кто-то еще это прочтет…

    Именно такую реализацию и сделал в итоге: https://infostart.ru/public/699114/

    Reply ↓
  28. ZLENKO

    Мое видение использования смартфона в качестве ТСД:

    1) на Andriod смартфоне запущен RDP клиент с запущенной в нем 1С;

    2) 1С использует стандартный драцвер сканера штрихкода (клавиатурный);

    3) сканер штрихкодов с блутус интерфейсом передает штрихкод по блутусу в смартфон;

    4) на смартфоне утилита перенаправляет сосканированный штрихкод в порт клавиатуры.

    Проблемка в отсутствии утилиты на Android смартфоне перенаправляющей штрихкод с блутуса в клавиатуру 🙁

    Reply ↓
  29. kuld

    (28) О да, RDP в 5-дюймовом экране с запущенной на ББ 1Ской это жесть как удобно!

    В настройках сканера (это такая книжица с штрих-кодами) найдите раздел типа «Transmission mode» или «Bluetooth profiles» или как-то так, у разных производителей он может по разному называться. И там нужно найти штрик-код, напротив которого написано слово HID, просканировать его. Сканер активирует у себя в блютусном чипе профиль HID и Android будет получать от него события как от блютусной клавиатуры и никакая утилита не нужна. Будет ли эти события как следует обрабатывать RDP клиент и транслировать в 1С науке неизвестно, сие постигается в эксперименте.

    У меня же иное видение такого ТСД https://infostart.ru/public/699114/

    Reply ↓
  30. alex_a_k

    Блюпуп — не камильфо.

    Вот если бы по ВиФи…

    Reply ↓
  31. kuld

    (30) https://infostart.ru/public/699114/

    Оно и по вай-вай работает.

    Reply ↓
  32. alex_a_k

    (31) Привязано к конфигуциям.

    У нас вашпе 7.7.

    По этому эмуляция сканера ШК в режиме эмуляции клавиатуры весьма актуальна, но дальность блюпуп портит все.

    К сожалению для вифи нужно писать доп. ПО, принимающее данные и отправляющее их в буфер клавиатуры.

    Хотя решение в принципе есть…

    Reply ↓
  33. kuld

    (32) Такого творчества в Google Play вагон и маленькая тележка. Попадаются даже такие экземпляры, с которыми антивирус не орёт благим матом на это самое «доп.ПО» и которое действительно работает.

    Я хотел сделать сканер без «доп.ПО» и я его сделал.

    Reply ↓
  34. alex_a_k

    (33) Я с вами согласен.

    Свою функцию выполняет.

    Reply ↓
  35. -vito-

    Здравствуйте, Дмитрий.

    Отличная идея и приложение просто шикарное! Купил и приложение и обработки.

    Не нашел куда отправить баг-репорт, поэтому напишу здесь.

    При подключенном аппаратном сканере (у меня Datalogic QW2100, но думаю, и с другими ситуация такая же) и включенном режиме запроса количества после сканирования, для поля ввода количества не отображается цифровая экранная клавиатура, т.к. Андроид считает, что к устройству подключена внешняя клавиатура (а на самом деле, это подключен сканер). Проверил на 3-х разных смартфонах (Sony, Asus, Xiaomi) — на всех поведение идентичное.

    Reply ↓
  36. kuld

    (35) Добрый день!

    Да действительно, бага подтверждается. В ближайшем обновлении исправлю.

    Спасибо!

    Reply ↓
  37. kuld

    (35) Обновление 1.3.8 опубликовано в Google Play.

    Теперь никакой всплывающей виртуальной клавиатуры, ввод количества на основном экране. Прячется большая главная кнопка на время, вместо нее появляется numpad с которого вводятся только цифры.

    С аппаратными сканерами работает и с программным сканером стало удобнее.

    Reply ↓
  38. -vito-

    (37) Обновил. Опробовал. Теперь всё идеально. Спасибо!

    Reply ↓
  39. kuld

    (38) Вам спасибо за отыв в GooglePlay

    Reply ↓
  40. informa1555

    (12) А Вы видели как оно сканирует обычные ш/коды (не QR)? Грустное зрелище

    Reply ↓
  41. kuld

    (40) UPD или это не про мое приложение, а про штатный сканер моб.платформы 1С?

    ==

    Конечно. Зависит от камеры и скорости работы автофокуса. На камерах без автофокуса, где расстояние выставлено в бесконечность может вообще не сработать, ибо вблизи изображение получается размыто.

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

    Reply ↓
  42. informa1555

    (41) Это про сканер 1С. Дело не в камере а в алгоритме, который увы в 1С слабоват в отличии от например zxing или других под андроид. Нормально сканирует только QR, использовать это нельзя пока.

    Reply ↓
  43. kuld

    (42) Ну да, у 1С свой особый Путь. Там оно вроде как всё своё, посконное. Я же выпендриваться не стал, взял лучшее, что есть из свободного — ZXing.

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *