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 не будет опубликован. Обязательные поля помечены *