Android Штрихкод сканер + драйвер устройства для 1С






Драйвер торгового оборудования и приложение для Android, телефон или планшет в качестве стандартного штрихкод сканера для платформы 1С.

Беспроводной (WIFI, сотовая связь) штрихкод сканер для 1С на Android устройстве.

Два варианта использования: Драйвер подключаемого оборудования для конфигураций на БПО (без внесений изменений в конфигурацию), второй вариант самостоятельная интеграция в конфигурации без БПО и самописные конфигурации по примерам конфигураций добавленых в комплект публикации.

Драйвер подключаемого оборудования для конфигураций на БПО (Библиотека Подключаемого Оборудования http://its.1c.ru/db/metod8dev/content/4829/hdoc), такой же как АТОЛ, Гексагон и от самой 1С, которые встроены в конфигурацию, никаких изменений в конфигурации не требуется !

Устанавливается в пользовательском режиме через меню «Подключаемое оборудование» -> «Драйверы оборудования». Работает, так же как любой другой сканер штрихкодов, в т.ч издает звук beep при удачном сканировании и успешном приеме данных в 1С. 🙂

Данные ШК передаются через сеть. Телефон или планшет может работать через WIFI с клиентским сеансом 1С, или через сотовую сеть (если проброшен сетевой порт клиентской машины). Для системы 1С работа android сканера прозрачна, как если бы он был аппаратным ШК сканером.

Настройки подключения к 1С, использования камеры (автозум/фонарь) и типов принимаемых штрихкодов сохраняются на устройстве. После настройки сканирование безостановочное (такое же как у апаратного сканера), режим сканирования влючается сразу после запуска приложения на андройд устройстве.

Проверена работа на РМК (Рабочее место кассира) Розница 2.2

Данная публикация может пригодиться малым организациям мини-магазинам с небольшим количеством продаж, штучным товаром, или например крупногабаритным. Или вариант не ставить каждому менеджеру в офисе по ШК сканеру, и можно например организовать открытие бумажного документа в его 1С на компьютере сканированием документа его же телефоном, что в определенных случаях быстрее чем искать документ в бд или например применяется ограниченый доступ к полному журналу документов. Или реализация использования скидочных карт с более стилистически красивыми 2D кодами QRCODE, DATAMATRIX, при установленых ранее лазерных сканерах без подержки 2D кодов. Все возможные реализаций каких-либо других бизнес процессов с применением штрихкодирования товаров/документов/операций. Так же удобно использовать разработчикам, в процессе создания и тестирования разработок на 1С связаных с использованием штрихкодирования, т.е. использовать в качестве эмулятора аппаратного специализированого ШК сканера.

Подерживаемые типы штрих кодов: EAN13, EAN8, CODE39, CODE93, CODE128, CODEBAR, QRCODE, PDF417(ЕГАИС), DATAMATRIX, ITF, RSS14

Минимальная версия Android 4.0.3.

Примеры конфигураций для интеграции (без БПО) и самописных конфигурации 1С 8.х (управ., обыч.) и 1С 7.7, WEB-Клиент не поддерживается.

Благодарности:

Соломатин Александр: ВК NativeAPI на Delphi и FreePascal //infostart.ru/public/81644/

Александр (Chieftain): Шаблон внешней компоненты на Delphi (COM) //infostart.ru/public/15527/

Dushyanth Maguluru: https://github.com/dm77/barcodescanner за реализацию простого использования библиотек zbar, zxing под android.

95 Comments

  1. dreamadv

    Позже постараюсь добавить шаблоны пустых конфигураций управляемого и обычного приложения, для интеграции в конфигурации без БПО. Если кому нужно оставьте комментарий.

    Reply
  2. Tarlich

    Однозначно в закладки -))

    Reply
  3. mkostya

    Очень нужна без БПО жду)

    Reply
  4. CheBurator
  5. LexSeIch

    Идея интересная. Взял в копилку. Спасибо! Шаблоны то-же будут интересны, для самописных складских-учетных систем.

    Reply
  6. Dach

    То есть смартфон используется чисто как сканер штрихкодов? А зачем в этом случае городить какой-то драйвер? Мобильная платформа умеет обрабатывать push-сообщения плюс в ней же есть штатный функционал сканирования с помощью встроенной в телефон камеры.

    Делаем отправку push из стационарной базы, по приему push на телефоне запускаем обработчик сканирования. Результат сканирования передаем стационарной базе любым способом, который нам понравится — веб-сервис, хттп-сервис, файл и т.д.

    В чем преимущество Вашего драйвера перед озвученным подходом?

    Reply
  7. dreamadv

    (6) То что вы предлагаете это больше реализация варианта аля ТСД, чем то, что реализовывает данная публикация. Да это именно ШК сканер для стационарной 1С. «Какой-то драйвер» это стандартный драйвер для БПО (http://its.1c.ru/db/metod8dev/content/4829/hdoc), такой же как АТОЛ, Гексагон и от самой 1С которые встроены в конфигурацию, устанавливается через саму 1С в пользовательском режиме. Поэтому важно тут то что никаких изменений («отправить push из стационарной базы/Результат сканирования передаем стационарной базе любым способом, который нам понравится — веб-сервис, хттп-сервис, файл») в конфигурации не потребуется. И для системы работа такого сканера прозрачна как если бы он был аппаратным ШК сканером. Так же push требует наличие интернета, здесь система самодостаточна может работать без интернета. Сканирование без остановочное, опять же точно так же как обычным сканером. Данная публикация может пригодиться малым организациям мини магазинам с небольшим количеством продаж. Проверял работу на РМК (Рабочее место кассира) Розница 2.2., или скажем не ставить каждому менеджеру в офисе по ШК сканеру, а можно например организовать открытие бумажного документа в его 1С на компе сканированием документа его же телефоном, что в определенных случаях быстрее чем искать документ в бд. У всех совершенно разные бизнес процессы, и вариантов реализации использования масса. Так же можно использовать разработчикам для тестирования все возможных интеграций штрихкодирования, товаров / документов.

    Reply
  8. Dach

    (7) то есть драйвер сам умеет отправлять запросы на мобильное приложение? публикация стационарной базы на веб-сервер не требуется?

    Мобильное приложение что-то отсканировало. Теперь данные должны попасть в центральную базу. Допустим, на указанный IP адрес они попадут. А далее как?

    То есть Ваш драйвер умеет слушать трафик? И увидев на определенном порту входящий трафик от мобильного приложения — передает его в 1С?

    Reply
  9. dreamadv

    (8) На мобильное приложение запрос не отправляется (на телефоне запустить нужно самостоятельно). Мобильное приложение отправляет данные на 1С драйвер (внешняя компонента) слушает TCP порт. Приложение мобильное (Найтивное на Java, не мобильная платформа) отправляет отсканированые данные на ip + port на клиентскую машину / или сервер rdp. Драйвер / внешняя компонента генерирует внешнее событие 1С (стандартное для БПО) как будто поступили скан данные с ШК сканера. Соответственно никаких публикаций не на какие веб сервера не требуется.

    Reply
  10. Dach

    (9) теперь все ясно. Надо было подробнее в публикации расписать, а так звучит здорово!

    Жаль, что драйвер не умеет отправлять запросы на мобильное приложение. Если Вы его научите это делать, то одним только мобильным сканером дело не ограничится. Можно полноценные двусторонние обмены писать, соответственно это куда более широкая область применения.

    Можно свой GCMs запилить, по сути

    Reply
  11. ture

    (9) не понял ничего (наверно тупой).

    Значит я открываю две программы и запускаются два сервачка, которые слушают порт (один? ладно пусть два разных). Я сканирую на телефончег и говорю куда отправить? Ладно пусть у меня (такого умного) открыта одна программа, но на терминалке. Значит порт будет слушаться на терминалке?

    Ладно, хрен с моими вопросами. Сколько соединений одновременно и на чем мультиплексирование?

    Reply
  12. ture

    (4) сорока.

    Reply
  13. dreamadv

    (10) Извините 🙂 но не понимаю зачем это все ? Для других запросов автоматизации есть и другие более удобные решения. В данном случае это 5-е колесо. В моем случае 2-х сторонний обмен только то, что приложение на телефоне / планшете пищит beep после сканирование, только в том случае, если данные 1С получены, так как об успешной передаче драйвер на стороне 1С мобильному приложению сообщает. В противном случае после сканирования beep нет, а высвечивается сообщение что проблемы с подключением. Что-то еще «городить» говоря вашими словами в данном аспекте не вижу смысла.

    Reply
  14. Dach

    (11) по видимому, там без разницы, на скольких телефонах запущено приложение сканирования. Сколько трафика пришло на порт — столько и отработалось. При этом драйверу без разницы, чей это трафик,, какого конкретного приложения. Автор, я прав?

    Reply
  15. ture

    (14) Протокол UDP значит? Это где херятся пакеты целиком или они приходят в разном порядке, если большие?

    Reply
  16. dreamadv

    (11) Про какие сервачки речь ? Драйвер это не отдельное приложение это dll (внешняя компанента) драйвером оборудования называют ее 1С в конфигурациях на БПО. Слушает порт dll какой настраивается в настройке оборудования см.скриншоты. При rdp да будет слушать порт сервер с rdp. Одновременно можно сканировать в один сеанс 1С можно с нескольких устройств. мультиплексирование сделано на indy компанентах delphi в компоненте dll по дефолту соединений 10. На телефоне не нужно указывать каждый раз куда отправить в настройках указывается ip и порт. После чего после запуска сразу включается режим сканирования.

    Reply
  17. dreamadv

    (15) нет TCP c переподключением в случае отсыхания и использованием установленого соединения если еще живо.

    Reply
  18. dreamadv

    (14) Да если они настроены на отправку на 1 порт

    Reply
  19. spenser123

    1 вопрос — в чем выгода данного подхода? Сканер штрих-кода (проводной) стоит дешевле годного Android устройства…

    Reply
  20. dreamadv

    (19) в том что Android устройство чаще всего уже есть. А сканер нужно покупать дополнительно 🙂 тестировал на планшете с камерой в 2мп работает вполне ! Соответственно будет жить и на хламо телефоне 🙂

    Reply
  21. ture

    (16) select значит.

    Reply
  22. VIA_1C

    (1) Очень хотелось бы получить такой шаблон (сейчас используем УПП 1.3 где нет БПО, а необходимость использования ТСД на Android есть)

    Reply
  23. ture

    (16) 1с умеет HTTP сервер. Не проще создать кучу пустых документов, выдать твои телефоны кладовщикам с ключом (ид юзера) и отправлять запросы в 1С, которая по юзеру будет пхать все в последний документ (который может и сама создать, если статус документа не понравился)?

    Reply
  24. dreamadv

    (23) это решение другой задачи

    Reply
  25. dreamadv

    (22) Это не ТСД, а сканер для стационарного компьютера с 1С, шаблон подключения ВК к конфигурации без БПО делаю.

    Reply
  26. ture

    (24) Почему другой? Твои люди с телефончиком ходят или еще и с компьютером по складу? если им лень таскать компьютер, то им лень и программу запускать на нем, значит 1с у них не запущена и твой драйвер не слушает порт.

    Reply
  27. ture

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

    Reply
  28. dreamadv

    (26) Еще раз это разного типа задачи данная обработка это простая замена ШК сканеру стационарного компьютера. Бегать с ним по складу не имеет смысла. Для своих людей есть другая реализация этой же идеи переработанный android freerdp клиент, где сканирование работает по такому же принципу генерируя внешнее событие на стороне 1С. В данном случае получается полноценный ТСД.

    Reply
  29. ture

    (28) Я что? я не ни чего! У меня близкая задача стоит. Тема знакома (уже набило оскомину). У тебя сканер шлет, а у меня браузер. У тебя компонента слушает select-ом, а у меня не прокатило такое мультиплексирование. Асинхноррые через rc = WSAWaitForMultipleEvents(cnt, pEvents, FALSE, INFINITE, FALSE); ограничены 64 событиями. Надо другое мультиплексирование IO+socket. Думал ты знаешь, а я спрошу.

    Reply
  30. shakmaev

    Чем в данном случае задачу не решает обычная веб камера?

    Reply
  31. dreamadv

    (30) Да это аналогичное решение. Но веб камера тоже не у всех есть. т.е. можно использовать любой вариант при наличии того или иного оборудования 🙂

    Reply
  32. корум

    (29) (0) хорошее решение задачи пикнуть сканером по ШК на торг-12 или счете, когда клиент пришёл. Респект.

    Reply
  33. vasja_yar

    (6)Покажите пример

    Reply
  34. Dach

    А исходники мобильного приложения не будете выкладывать? Или там простецкий код по запуску внешнего приложения?

    С компонентой все понятно. За идею и реализацию — однозначно плюс.

    Reply
  35. Dach

    (33) что значит «покажите пример» ? я озвучил возможность, а не готовое решение

    вот про push http://v8.1c.ru/o7/201502push/index.htm

    про http-сервисы легко ищется в гугле

    Reply
  36. vasja_yar

    Телефон в сети 1с сервера должен быть или клиентского приложения на компьютере?

    Reply
  37. dreamadv

    (35) Как настроите сеть может и по мобильный связи работать если редирект порта настроите.

    Reply
  38. dreamadv

    (34) Да все просто на базе https://github.com/dm77/barcodescanner используется ZXing библиотека.

    Reply
  39. dreamadv

    (22)

    Очень нужна без БПО жду)

    примеры без интеграции добавил в публикацию

    Reply
  40. dreamadv

    (3) Добавлено в публикацию

    Reply
  41. ture

    (32) пикнуть для вида можно и свистком. Зачем систему-то засирать?

    Reply
  42. dreamadv

    Если кому нужно 🙂 добавлю версию ВК для 1С 7.7. Поставьте + на этом комментарии. Отправлю оповещение когда добавлю ВК для 7.7.

    Reply
  43. корум

    (41) с чего взял, что «для вида»?

    по ШК отбирается, выводится на экран/изменяется документ, закодированный в штрихкоде.

    И где здесь «засирание системы»?

    Reply
  44. independ

    На телефоне DNS4003 Android 4.1.2 Scanner1C.apk не устанавливается «При синтаксическом анализе пакета возникла неполадка»

    Reply
  45. dreamadv

    (44) Отправил в личку собраный apk под 4.1.2 в публикации под 4.2

    Reply
  46. independ

    Работает, очень даже работает

    Reply
  47. dablack

    Спасибо. Вы молодец! и на Java и на С и на 1С, все сделали!

    Reply
  48. dreamadv

    (47) Спасибо за отзыв здесь Java Delphi 1C, хотя и на C тоже программирую 🙂

    Reply
  49. independ

    Прикрутил с своей обработке по работе с акцизными марками ЕГАИС в 1С Рознице — работает с EAN13 и с PDF. И не нужно покупать отдельный сканер 2D, все делается обычным андроидфоном. Еще кладовщику на складе настрою — и не нужно покупать ТСД. Спасибо

    Reply
  50. etmarket

    Здравствуйте. Можно ли запустить библиотеку драйвера для подключения android сканера в конфигурации 1с 7.7? Спасибо за ответ.

    Reply
  51. dreamadv

    (50) Да завтра сделаю компоненту для 7.7

    Reply
  52. dreamadv

    В App store будет клиент под IOS через какое-то время. Сразу хочу 🙂 сказать на тему сканера за 30-60т.р. ввиде яблоко-телефона, он бесплатен когда аппарат уже есть.

    Reply
  53. Vladimir_Konyrev

    (1) Надо. +1

    Reply
  54. Andry.Boris

    Зачетная вещь! Было бы хорошо если бы еще сделали шаблоны пустых конфигураций управляемого и обычного приложения, для интеграции в конфигурации без БПО. Было бы вообще супер!!! Жду шаблонов.

    Reply
  55. dreamadv

    (54) Уже добавлено 🙂

    Reply
  56. Andry.Boris

    (1)

    Надо. +1
    Reply
  57. Andry.Boris

    (55) У вас выложено:

    1) Конфигурация с интегрированным драйвером (управляемое приложение)

    2) Конфигурация с интегрированным драйвером (обычное приложение)

    нужно уточнить это шаблоны для объединения с конфигурациями без использованием БПО или нет.

    Reply
  58. dreamadv

    (56) уже добавлено

    Reply
  59. dreamadv

    (57) Да это конфигурации для интеграции без БПО. Там пример кода по инициализации компоненты и обработке входящих данных. Копируете код к себе в любую конфигурацию и все будет работать. Конфигурации уже включают в себя компоненту. Дополнительно нужно скачать только apk с приложением для android.

    Reply
  60. pis49

    (60)

    На самом деле написать приложение на том же xamarin проще и удобнее чем на 1С

    тут же пишут, ничего не надописать

    Reply
  61. Serginio

    (61) Для нормальной работы, нужно под каждую бизнес задачу нужно писать свой код. Иначе бы была бы одна универсальная конфигурация.

    Нет серебряной пули.

    Reply
  62. dreamadv

    Добавил пример конфигурации и компоненту под 7.7, а так же выложил пак исходников особо мнительные в шапочках из фольги могут собрать проект сами по своему вкусу 🙂

    Reply
  63. etmarket

    (51) Спасибо за добавленные файлы. Какие части мне нужно скачать для внедрения в конфигурацию 1с7.7 ТиС и смартфона андроид?

    Reply
  64. dreamadv

    (66) Android приложение ШК Сканер 1С (версия Androind 4.0.3 и выше) + Пример конфигурации с копонентой 1C 7.7

    Reply
  65. dreamadv

    (67) Сделано 🙂

    Reply
  66. kiser

    Добрый день. Запускаю конфу для 7.7 и ругается

    Ошибка при создании объекта из компоненты C:UsersKiserDownloadsandroid_scanner_fullandroid_scanner_77_confAScanner77.dll (отсутствует CLSID)
    АндройдСканнер.Активировать(ПортСканера);
    {Глобальный модуль(15)}: Поле агрегатного объекта не обнаружено (Активировать)
    Reply
  67. kiser

    Еще при проверке в управляемом приложении все работает только на толстом клиенте. А вот если запустить тонкий клиент, то ошибка

    {МодульУправляемогоПриложения(6)}: Тип не определен (AddIn.IPScanner.IPScanner)
    ШКСканер = Новый(«AddIn.IPScanner.IPScanner»);
    Reply
  68. dreamadv

    (70) (71) Не удается воспроизвести оба варианта ошибки. Написал в личку попробуем совместно разобраться.

    Reply
  69. Andry.Boris

    (71) Об этом я писал в личку автору еще вчера. есть такое если упр. формы запустить в тонком, если в толстом то все вери гуд.

    Reply
  70. dreamadv

    (71)(73) С тонким клиентом разобрался. Просите просто нет рабочих проектов на тонком клиенте, не совсем был в курсе как правильно инициализировать внешние ВК в этом режиме. Внесу исправления. С 7.7 пока не совсем понятно в чем загвоздка но разберусь 🙂

    Reply
  71. kiser

    (74) по тонкому клиенту, я уже вчера разобрался, дописал

    Попытка
    ПодключитьВнешнююКомпоненту(«ОбщийМакет.Android_Scanner», «IPScanner», AddInType.Native);
    ШКСканер = Новый(«AddIn.IPScanner.IPScanner»);
    Исключение
    УстановитьВнешнююКомпоненту(«ОбщийМакет.Android_Scanner»);
    ПодключитьВнешнююКомпоненту(«ОбщийМакет.Android_Scanner», «IPScanner», AddInType.Native);
    ШКСканер = Новый(«AddIn.IPScanner.IPScanner»);
    КонецПопытки;

    по 7.7 в личку написал

    Reply
  72. dreamadv

    Все исправил файлы перезалил. 🙂

    Reply
  73. kiser

    (76) Спасибо. Все работает

    Reply
  74. etmarket

    Хвала и уважение автору решения! Браво.

    Reply
  75. dreamadv

    Если у кого есть проблемы с интеграцией пишите помогу разобраться 🙂

    Reply
  76. agent100

    Добрый. Не могу на строить на серверном варианте УТИВСК 2.0.16.17. Платформа 8.3.9.1850.

    На какой машине открывать порт? На сервере или на клиенте? Как проверить работу сканера?

    Reply
  77. dreamadv

    (80) Если это терминальный сервер, то порт открывается на сервере RDP и в клиенте на устройстве указать IP сервера, если клиент 1С запускается на клиентской машине, то порт открывается на ней и в приложении нужно указать порт клиентской машины.

    Reply
  78. sonGodv

    Ошибка при настройке Ошибка получения описания драйвера

    {ОбщийМодуль.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.Модуль(2432)}: Значение не является значением объектного типа (ПолучитьНомерВерсии)

    Reply
  79. dreamadv

    (82) Драйвер попробуйте еще раз указать 1С, чтобы он был добавлен в систему. Похоже dll не загрузилась.

    Reply
  80. sonGodv

    (83) Да, все работает. Запускал 64 разрядную платформу

    Reply
  81. assa

    Приветствую. Не могу скачать. На моем счете больше, чем 10 см. 4 раза жму, 4 раза соглашаюсь, что спишут и отправят ссылку. По итогу не списывают и не отправляют. Можете помочь?

    Reply
  82. dreamadv

    (85) возможно проблема с инфостартом, и возможно уже исправлена

    Reply
  83. assa

    (86) Возможно. Сегодня пришло 4 ссылки 😉

    Reply
  84. 1cprogr_nsk

    для iOS планируете приложение?

    Reply
  85. dreamadv

    (88) Тот кто обещал помочь с этим, не справился 🙂 так что скорее нет чем да (

    Reply
  86. RomanVolgograd

    (28)

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

    А случаем не подскажете где раздобыть такой RDP клиент, уж очень интересно его поюзать, возможности то открываются неплохие.

    Reply
  87. dreamadv

    (90) Ответил в личку

    Reply
  88. ZLENKO

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

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

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

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

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

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

    Reply
  89. dreamadv

    (92) вообще блутуф сканер подключеный к смартфону эмулирует клавиатуру из коробки и вроде как дополнительно в даном случае ничего не нужно. Возможно есть какие-то иные модели сканеров которые работают иначе. Могу под заказ собрать freerdp клиент который будет работать с этим сканером. Так же есть наработке в этом плане. Отправил информацию в личку.

    Reply
  90. zels

    Копмплексныя 2.4 демо. При установке внешней компоненты ошибка. Как правильно установить?

    Reply
  91. zels

    Комплексная 2.4 демо. При установке драйвера ошибка, что делать? Получилось два сообщения. Удалите одно, пожалуйста.

    Reply
  92. dreamadv

    Возможно используете 64битный клиент

    Reply
  93. zels

    нет, 32 битный

    Reply
  94. ol_2004@mail.ru

    Благодарю. Работает. на УПП 1.3.124

    Reply

Leave a Comment

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