gifts2017

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

Опубликовал Andrei Novikov (dreamadv) в раздел Оборудование - Сканер штрих-кода

Драйвер торгового оборудования и приложение для 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. Версия сканера под IOS в разработке, будет размещена позднее в AppStore.

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

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

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

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

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

Скачать файлы

Наименование Файл Версия Размер
Android приложение ШК Сканер 1С + Драйвер БПО + примеры конфигураций 1С 8.х (упр.,обыч.) и 1С 7.7 (для интеграции без БПО) 30
.zip 2,80Mb
01.12.16
30
.zip 1.0 2,80Mb Скачать
Исходники компоненты 7.7. и 8.х native (Delphi) + проект Android Studio мобильного приложения (Java) 2
.zip 105,06Mb
01.12.16
2
.zip 105,06Mb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Andrei Novikov (dreamadv) 29.11.16 15:58
Позже постараюсь добавить шаблоны пустых конфигураций управляемого и обычного приложения, для интеграции в конфигурации без БПО. Если кому нужно оставьте комментарий.
корум; Vladimir_Konyrev; Andry.Boris; Alien_job; 7OH; VIA_1C; +6 Ответить 3
2. Андрей Тарлыков (Tarlich) 29.11.16 22:12
Однозначно в закладки -))
3. Максим Костиков (mkostya) 29.11.16 23:11
4. Сергей (Che) Коцюра (CheBurator) 30.11.16 01:47
5. Сергей Маслов (LexSeIch) 30.11.16 07:42
Идея интересная. Взял в копилку. Спасибо! Шаблоны то-же будут интересны, для самописных складских-учетных систем.
6. Роман С (Dach) 30.11.16 09:04
То есть смартфон используется чисто как сканер штрихкодов? А зачем в этом случае городить какой-то драйвер? Мобильная платформа умеет обрабатывать push-сообщения плюс в ней же есть штатный функционал сканирования с помощью встроенной в телефон камеры.

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

В чем преимущество Вашего драйвера перед озвученным подходом?
spenser123; +1 Ответить 3
7. Andrei Novikov (dreamadv) 30.11.16 09:24
(6) То что вы предлагаете это больше реализация варианта аля ТСД, чем то, что реализовывает данная публикация. Да это именно ШК сканер для стационарной 1С. "Какой-то драйвер" это стандартный драйвер для БПО (http://its.1c.ru/db/metod8dev/content/4829/hdoc), такой же как АТОЛ, Гексагон и от самой 1С которые встроены в конфигурацию, устанавливается через саму 1С в пользовательском режиме. Поэтому важно тут то что никаких изменений ("отправить push из стационарной базы/Результат сканирования передаем стационарной базе любым способом, который нам понравится - веб-сервис, хттп-сервис, файл") в конфигурации не потребуется. И для системы работа такого сканера прозрачна как если бы он был аппаратным ШК сканером. Так же push требует наличие интернета, здесь система самодостаточна может работать без интернета. Сканирование без остановочное, опять же точно так же как обычным сканером. Данная публикация может пригодиться малым организациям мини магазинам с небольшим количеством продаж. Проверял работу на РМК (Рабочее место кассира) Розница 2.2., или скажем не ставить каждому менеджеру в офисе по ШК сканеру, а можно например организовать открытие бумажного документа в его 1С на компе сканированием документа его же телефоном, что в определенных случаях быстрее чем искать документ в бд. У всех совершенно разные бизнес процессы, и вариантов реализации использования масса. Так же можно использовать разработчикам для тестирования все возможных интеграций штрихкодирования, товаров / документов.
8. Роман С (Dach) 30.11.16 09:51
(7) то есть драйвер сам умеет отправлять запросы на мобильное приложение? публикация стационарной базы на веб-сервер не требуется?

Мобильное приложение что-то отсканировало. Теперь данные должны попасть в центральную базу. Допустим, на указанный IP адрес они попадут. А далее как?
То есть Ваш драйвер умеет слушать трафик? И увидев на определенном порту входящий трафик от мобильного приложения - передает его в 1С?
9. Andrei Novikov (dreamadv) 30.11.16 10:11
(8) На мобильное приложение запрос не отправляется (на телефоне запустить нужно самостоятельно). Мобильное приложение отправляет данные на 1С драйвер (внешняя компонента) слушает TCP порт. Приложение мобильное (Найтивное на Java, не мобильная платформа) отправляет отсканированые данные на ip + port на клиентскую машину / или сервер rdp. Драйвер / внешняя компонента генерирует внешнее событие 1С (стандартное для БПО) как будто поступили скан данные с ШК сканера. Соответственно никаких публикаций не на какие веб сервера не требуется.
10. Роман С (Dach) 30.11.16 10:23
(9) теперь все ясно. Надо было подробнее в публикации расписать, а так звучит здорово!

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

Можно свой GCMs запилить, по сути
11. Женька Ture (ture) 30.11.16 10:33
(9) не понял ничего (наверно тупой).
Значит я открываю две программы и запускаются два сервачка, которые слушают порт (один? ладно пусть два разных). Я сканирую на телефончег и говорю куда отправить? Ладно пусть у меня (такого умного) открыта одна программа, но на терминалке. Значит порт будет слушаться на терминалке?
Ладно, хрен с моими вопросами. Сколько соединений одновременно и на чем мультиплексирование?

12. Женька Ture (ture) 30.11.16 10:34
13. Andrei Novikov (dreamadv) 30.11.16 10:35
(10) Извините :) но не понимаю зачем это все ? Для других запросов автоматизации есть и другие более удобные решения. В данном случае это 5-е колесо. В моем случае 2-х сторонний обмен только то, что приложение на телефоне / планшете пищит beep после сканирование, только в том случае, если данные 1С получены, так как об успешной передаче драйвер на стороне 1С мобильному приложению сообщает. В противном случае после сканирования beep нет, а высвечивается сообщение что проблемы с подключением. Что-то еще "городить" говоря вашими словами в данном аспекте не вижу смысла.
14. Роман С (Dach) 30.11.16 10:36
(11) по видимому, там без разницы, на скольких телефонах запущено приложение сканирования. Сколько трафика пришло на порт - столько и отработалось. При этом драйверу без разницы, чей это трафик,, какого конкретного приложения. Автор, я прав?
15. Женька Ture (ture) 30.11.16 10:40
(14) Протокол UDP значит? Это где херятся пакеты целиком или они приходят в разном порядке, если большие?
16. Andrei Novikov (dreamadv) 30.11.16 10:44
(11) Про какие сервачки речь ? Драйвер это не отдельное приложение это dll (внешняя компанента) драйвером оборудования называют ее 1С в конфигурациях на БПО. Слушает порт dll какой настраивается в настройке оборудования см.скриншоты. При rdp да будет слушать порт сервер с rdp. Одновременно можно сканировать в один сеанс 1С можно с нескольких устройств. мультиплексирование сделано на indy компанентах delphi в компоненте dll по дефолту соединений 10. На телефоне не нужно указывать каждый раз куда отправить в настройках указывается ip и порт. После чего после запуска сразу включается режим сканирования.
17. Andrei Novikov (dreamadv) 30.11.16 10:45
(14) Да если они настроены на отправку на 1 порт
18. Andrei Novikov (dreamadv) 30.11.16 10:45
(15) нет TCP c переподключением в случае отсыхания и использованием установленого соединения если еще живо.
19. Spenser (spenser123) 30.11.16 10:51
1 вопрос - в чем выгода данного подхода? Сканер штрих-кода (проводной) стоит дешевле годного Android устройства...
20. Andrei Novikov (dreamadv) 30.11.16 10:52
(19) в том что Android устройство чаще всего уже есть. А сканер нужно покупать дополнительно :) тестировал на планшете с камерой в 2мп работает вполне ! Соответственно будет жить и на хламо телефоне :)
21. Женька Ture (ture) 30.11.16 10:55
22. Игорь (VIA_1C) 30.11.16 10:59
(1) Очень хотелось бы получить такой шаблон (сейчас используем УПП 1.3 где нет БПО, а необходимость использования ТСД на Android есть)
23. Женька Ture (ture) 30.11.16 11:01
(16) 1с умеет HTTP сервер. Не проще создать кучу пустых документов, выдать твои телефоны кладовщикам с ключом (ид юзера) и отправлять запросы в 1С, которая по юзеру будет пхать все в последний документ (который может и сама создать, если статус документа не понравился)?
24. Andrei Novikov (dreamadv) 30.11.16 11:05
(23) это решение другой задачи
25. Andrei Novikov (dreamadv) 30.11.16 11:08
(22) Это не ТСД, а сканер для стационарного компьютера с 1С, шаблон подключения ВК к конфигурации без БПО делаю.
26. Женька Ture (ture) 30.11.16 11:10
(24) Почему другой? Твои люди с телефончиком ходят или еще и с компьютером по складу? если им лень таскать компьютер, то им лень и программу запускать на нем, значит 1с у них не запущена и твой драйвер не слушает порт.
27. Женька Ture (ture) 30.11.16 11:13
Нет, я могу предположить, что человек с телефончиком сидит за компьютером и сканирует товар на кассе. А телефончик у несчастного как торговое оборудование. Да! это весьма интересно, согласен. Но тогда придется требовать, чтоб люди покупали себе исправные телефончики, а а несломленные айфоны.
28. Andrei Novikov (dreamadv) 30.11.16 11:19
(26) Еще раз это разного типа задачи данная обработка это простая замена ШК сканеру стационарного компьютера. Бегать с ним по складу не имеет смысла. Для своих людей есть другая реализация этой же идеи переработанный android freerdp клиент, где сканирование работает по такому же принципу генерируя внешнее событие на стороне 1С. В данном случае получается полноценный ТСД.
29. Женька Ture (ture) 30.11.16 11:25
(28) Я что? я не ни чего! У меня близкая задача стоит. Тема знакома (уже набило оскомину). У тебя сканер шлет, а у меня браузер. У тебя компонента слушает select-ом, а у меня не прокатило такое мультиплексирование. Асинхноррые через rc = WSAWaitForMultipleEvents(cnt, pEvents, FALSE, INFINITE, FALSE); ограничены 64 событиями. Надо другое мультиплексирование IO+socket. Думал ты знаешь, а я спрошу.
30. Александр Шакмаев (shakmaev) 30.11.16 11:54
Чем в данном случае задачу не решает обычная веб камера?
31. Andrei Novikov (dreamadv) 30.11.16 12:04
(30) Да это аналогичное решение. Но веб камера тоже не у всех есть. т.е. можно использовать любой вариант при наличии того или иного оборудования :)
32. rjhev korum (корум) 30.11.16 12:05
(29) (0) хорошее решение задачи пикнуть сканером по ШК на торг-12 или счете, когда клиент пришёл. Респект.
Dach; dreamadv; +2 1 Ответить 1
33. vasja ivanov (vasja_yar) 30.11.16 12:52
34. Роман С (Dach) 30.11.16 12:54
А исходники мобильного приложения не будете выкладывать? Или там простецкий код по запуску внешнего приложения?
С компонентой все понятно. За идею и реализацию - однозначно плюс.
35. vasja ivanov (vasja_yar) 30.11.16 12:56
Телефон в сети 1с сервера должен быть или клиентского приложения на компьютере?
36. Роман С (Dach) 30.11.16 12:56
(33) что значит "покажите пример" ? я озвучил возможность, а не готовое решение

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

про http-сервисы легко ищется в гугле
37. Andrei Novikov (dreamadv) 30.11.16 13:06
(35) Как настроите сеть может и по мобильный связи работать если редирект порта настроите.
38. Andrei Novikov (dreamadv) 30.11.16 13:20
(34) Да все просто на базе https://github.com/dm77/barcodescanner используется ZXing библиотека.
39. Andrei Novikov (dreamadv) 30.11.16 13:45
(3) Добавлено в публикацию
40. Andrei Novikov (dreamadv) 30.11.16 13:45
(22)
Очень нужна без БПО жду)
примеры без интеграции добавил в публикацию
41. Женька Ture (ture) 30.11.16 14:01
(32) пикнуть для вида можно и свистком. Зачем систему-то засирать?
42. Andrei Novikov (dreamadv) 30.11.16 15:32
Если кому нужно :) добавлю версию ВК для 1С 7.7. Поставьте + на этом комментарии. Отправлю оповещение когда добавлю ВК для 7.7.
zhenyat; корум; +2 Ответить
43. rjhev korum (корум) 30.11.16 15:54
(41) с чего взял, что "для вида"?
по ШК отбирается, выводится на экран/изменяется документ, закодированный в штрихкоде.

И где здесь "засирание системы"?
44. Дмитрий Мишарин (independ) 30.11.16 16:13
На телефоне DNS4003 Android 4.1.2 Scanner1C.apk не устанавливается "При синтаксическом анализе пакета возникла неполадка"
45. Andrei Novikov (dreamadv) 30.11.16 16:20
(44) Отправил в личку собраный apk под 4.1.2 в публикации под 4.2
independ; +1 Ответить
46. Дмитрий Мишарин (independ) 30.11.16 17:58
Работает, очень даже работает
dreamadv; +1 Ответить
47. Sergey Mosalov (dablack) 30.11.16 18:14
Спасибо. Вы молодец! и на Java и на С и на 1С, все сделали!
48. Andrei Novikov (dreamadv) 30.11.16 18:28
(47) Спасибо за отзыв здесь Java Delphi 1C, хотя и на C тоже программирую :)
49. Дмитрий Мишарин (independ) 30.11.16 20:26
Прикрутил с своей обработке по работе с акцизными марками ЕГАИС в 1С Рознице - работает с EAN13 и с PDF. И не нужно покупать отдельный сканер 2D, все делается обычным андроидфоном. Еще кладовщику на складе настрою - и не нужно покупать ТСД. Спасибо
etmarket; dreamadv; +2 Ответить
50. Dmitry Vidmanov (etmarket) 30.11.16 21:13
Здравствуйте. Можно ли запустить библиотеку драйвера для подключения android сканера в конфигурации 1с 7.7? Спасибо за ответ.
51. Andrei Novikov (dreamadv) 30.11.16 21:45
(50) Да завтра сделаю компоненту для 7.7
52. Andrei Novikov (dreamadv) 30.11.16 22:03
В App store будет клиент под IOS через какое-то время. Сразу хочу :) сказать на тему сканера за 30-60т.р. ввиде яблоко-телефона, он бесплатен когда аппарат уже есть.
53. Андрей Краснокутский (Andry.Boris) 30.11.16 22:25
Зачетная вещь! Было бы хорошо если бы еще сделали шаблоны пустых конфигураций управляемого и обычного приложения, для интеграции в конфигурации без БПО. Было бы вообще супер!!! Жду шаблонов.
54. Владимир Конырев (Vladimir_Konyrev) 30.11.16 22:25
55. Andrei Novikov (dreamadv) 30.11.16 22:28
56. Андрей Краснокутский (Andry.Boris) 30.11.16 22:28
57. Андрей Краснокутский (Andry.Boris) 30.11.16 22:32
(55) У вас выложено:
1) Конфигурация с интегрированным драйвером (управляемое приложение)
2) Конфигурация с интегрированным драйвером (обычное приложение)
нужно уточнить это шаблоны для объединения с конфигурациями без использованием БПО или нет.
58. Andrei Novikov (dreamadv) 30.11.16 22:32
59. Andrei Novikov (dreamadv) 30.11.16 22:35
(57) Да это конфигурации для интеграции без БПО. Там пример кода по инициализации компоненты и обработке входящих данных. Копируете код к себе в любую конфигурацию и все будет работать. Конфигурации уже включают в себя компоненту. Дополнительно нужно скачать только apk с приложением для android.
61. ПИС ПИС (pis49) 01.12.16 02:07
(60)
На самом деле написать приложение на том же xamarin проще и удобнее чем на 1С

тут же пишут, ничего не надописать
62. Женька Ture (ture) 01.12.16 08:51
(43) я не вижу кода, но использованный подход позволяет предполагать каким стал дизайн решения.
- Телефончег свой в сеть предприятия не пустят, если есть хоть один живой админ.
- Наш брат предпочитает айфон и программы из маркетов ("а не всякий шпиёнский софт недоконторок, который роется в контактах и подслушивает, чтоб потом доложить начальнику")
- Для реалий 1С такой "драйвер" не оправдывает описанного профита (решение сырое,в голове придется держать факт его наличия, а потом решать проблемы без автора)

В сухом остатке засирается телефончег (которого сразу не окажется у пользуна, ибо это как личная гигиена), и комп (ибо появляется какая-то служба странного происхождения). Ну я ж не могу за пять минут вложить в твою голову знания программистов, извини.
63. Сергей Смирнов (Serginio) 01.12.16 10:07
(61) Для нормальной работы, нужно под каждую бизнес задачу нужно писать свой код. Иначе бы была бы одна универсальная конфигурация.
Нет серебряной пули.
64. Andrei Novikov (dreamadv) 01.12.16 12:08
Добавил пример конфигурации и компоненту под 7.7, а так же выложил пак исходников особо мнительные в шапочках из фольги могут собрать проект сами по своему вкусу :)
65. rjhev korum (корум) 01.12.16 12:34
(62) бокс по переписке? Спасибо, не здесь и не с тобой.
66. Dmitry Vidmanov (etmarket) 01.12.16 12:59
(51) Спасибо за добавленные файлы. Какие части мне нужно скачать для внедрения в конфигурацию 1с7.7 ТиС и смартфона андроид?
67. rjhev korum (корум) 01.12.16 13:16
(0) может, проще выставить один файл - архив, в котором уже 6 папок с разными вариантами?
Зачем такие злые муки выбора, что именно скачать...
68. Andrei Novikov (dreamadv) 01.12.16 13:32
(66) Android приложение ШК Сканер 1С (версия Androind 4.0.3 и выше) + Пример конфигурации с копонентой 1C 7.7
69. Andrei Novikov (dreamadv) 01.12.16 13:57
70. Иван Курмель (kiser) 01.12.16 14:42
Добрый день. Запускаю конфу для 7.7 и ругается
Ошибка при создании объекта из компоненты C:\Users\Kiser\Downloads\android_scanner_full\android_scanner_77_conf\AScanner77.dll (отсутствует CLSID)
АндройдСканнер.Активировать(ПортСканера);
{Глобальный модуль(15)}: Поле агрегатного объекта не обнаружено (Активировать)
71. Иван Курмель (kiser) 01.12.16 15:54
Еще при проверке в управляемом приложении все работает только на толстом клиенте. А вот если запустить тонкий клиент, то ошибка
{МодульУправляемогоПриложения(6)}: Тип не определен (AddIn.IPScanner.IPScanner)
		ШКСканер = Новый("AddIn.IPScanner.IPScanner");
72. Andrei Novikov (dreamadv) 01.12.16 16:42
(70) (71) Не удается воспроизвести оба варианта ошибки. Написал в личку попробуем совместно разобраться.
73. Андрей Краснокутский (Andry.Boris) 01.12.16 18:30
(71) Об этом я писал в личку автору еще вчера. есть такое если упр. формы запустить в тонком, если в толстом то все вери гуд.
74. Andrei Novikov (dreamadv) 01.12.16 19:21
(71)(73) С тонким клиентом разобрался. Просите просто нет рабочих проектов на тонком клиенте, не совсем был в курсе как правильно инициализировать внешние ВК в этом режиме. Внесу исправления. С 7.7 пока не совсем понятно в чем загвоздка но разберусь :)
75. Иван Курмель (kiser) 02.12.16 08:59
(74) по тонкому клиенту, я уже вчера разобрался, дописал
Попытка
	ПодключитьВнешнююКомпоненту("ОбщийМакет.Android_Scanner", "IPScanner", AddInType.Native);
	ШКСканер = Новый("AddIn.IPScanner.IPScanner");		
Исключение
	УстановитьВнешнююКомпоненту("ОбщийМакет.Android_Scanner");
	ПодключитьВнешнююКомпоненту("ОбщийМакет.Android_Scanner", "IPScanner", AddInType.Native);
	ШКСканер = Новый("AddIn.IPScanner.IPScanner");	
КонецПопытки;
...Показать Скрыть


по 7.7 в личку написал
76. Andrei Novikov (dreamadv) 02.12.16 09:33
Все исправил файлы перезалил. :)
77. Иван Курмель (kiser) 02.12.16 10:42
78. Dmitry Vidmanov (etmarket) 02.12.16 20:02
Хвала и уважение автору решения! Браво.
79. Andrei Novikov (dreamadv) 06.12.16 20:43
Если у кого есть проблемы с интеграцией пишите помогу разобраться :)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа