Облачный терминал сбора данных

Оборудование - Терминал сбора данных

Хотите инвентаризировать склад, не покупая терминал сбора данных? Эта публикация для Вас! Мобильных приложений для Android, заменяющих малому и микро-бизнесу дорогие терминалы сбора данных, написано великое множество. Мне кажется, что я привнес в этот жанр народного творчества кое-что новое и полезное. Данная реализация отличается простотой установки и использования. Настраивать не нужно вообще ничего. Скачали приложение из Google Play, установили две внешние обработки в конфигурацию - и всё! Можно начинать инвентаризацию. Заходите, читайте подробности.

Начнем с вопросов совместимости

Поддерживается всё, что умеет ходить в Интернет, делать HTTP запросы POST/GET и обрабатывать JSON. Совсем для всего я готовые обработки делать не стал, ограничился мэйнстримом:

  • 1С:Розница редакции 2.2
  • 1С:Управление нашей фирмой редакции 1.6
  • Флагманская линейка 1С:Управление торговлей редакции 11.3, 1С:Комплексная автоматизация редакции 2.2 и 1С:Управление предприятием редакции 2.2
  • Ну и конечно 1С:Бухгалтерия редакции 3.0, куда же без неё

Это вовсе не значит, что другие конфигурации работать не будут, но об этом чуть позже.

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

Поскольку никаких драйверов не нужно, то все это будет работать в любом варианте использования 1С: тонкий и толстый клиент, веб-браузер, через RDP, на Windows, Linux и даже macOS.

Единственное требование - открытый доступ в Интернет по протоколу HTTP через порт 8080.

Android поддерживается достаточно древний, начиная с версии 4.0.

Установка

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

Меняйте Ваши старт-мани-денежки на наши внешние обработки, прикрепленные к этой публикации.

Их две, устанавливайте обе. Заходите в раздел "Администрирование" своей конфигурации, выбирайте пункт "Печатные формы, отчеты и обработки", если опция использования внешних отчетов, обработок и печатных форм выключена - включайте, заходите там же по ссылке "Дополнительные отчеты и обработки", нажимайте кнопку "Создать" и выбирайте скачанные файлы с расширением epf, сохраняйте, закрывайте.

Это всё! Больше никаких настроек не нужно. Ваш новый ТСД готов к работе.

Выгрузка наименований товаров в ТСД

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

Обработка очень простая, в ней всего одна кнопка "Выгрузить" - нажмите её!

(Есть еще опция "Использовать собственную службу для обмена", её пока не трогайте, о ней чуть позже)

Через некоторое время, обычно это несколько секунд, Вы увидите на экране QR-код и сообщение о том, что все данные успешно выгружены. Сканируйте QR-код мобильным приложением прямо с экрана 1С. Это всё, что нужно сделать для того, что бы в приложении появились наименования Ваших товаров. Согласитесь, ведь это же очень просто и удобно!

Сбор данных

Это настолько просто, что не нуждается вообще ни в каких пояснениях. Попробуйте мобильное приложение. Согласны?

Хотя, пожалуй, стоит упомянуть, что если у Вас там на складе темно, то воспользуйтесь подсветкой, нажав в режиме сканирования клавишу увеличения громкости на смартфоне.

Но и это еще не всё! Мобильное приложение кроме программного сканера штрих-кодов умеет работать с аппаратным, если его подключить через OTG переходник. Разумеется, не всякий сканер так можно подключить, нужно что бы ему хватало питания от USB порта смартфона, а там его совсем немного, и этот сканер должен работать в режиме HID. Могу порекомендовать Атол SB-1101 - дёшево, сердито, а главное - работает, на нём и тестировал.

Загрузка собранных данных

За загрузку данных из ТСД отвечает вторая обработка. При установке она сама добавляется в качестве внешней обработки заполнения табличной части ко всем документам, у которых есть табличная часть Товары (так же известные как Запасы в УНФ). С ней всё тоже максимально просто. В документе нажимаете кнопку "Заполнить", выбираете "Заполнить товары из ТСД". Открывается форма, в ней всего одна картинка с QR-кодом и всего одна кнопка.

Сначала сканируете мобильным приложением QR-код с экрана, а после того, как приложение сообщит, что данные успешно переданы, нажмите кнопку "Загрузить". Готово!

Но и это еще не всё!

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

Собранные данные можно передать не только через веб-сервис, но и через Bluetooth, иммитируя поток данных от сканера. Но если собранных данных много, то это во-первых долго, а во-вторых с 1С где-то после 300 позиций случается переполнение входного буфера и всё, что не успело пролезть потеряется.

Информация для специалистов

И в заключение несколько слов о том, как всё это устроено. Разумеется, для того, что бы всё это у Вас заработало сразу и без настроек, кто-то это должен был настроить для всех, т.е. сделать готовый к использованию облачный сервис. И такой облачный сервис сделан.

По умолчанию, если сразу нажать на кнопку "Выгрузить" данные отправятся на облако, в ответ облако пришлет QR-код со ссылкой, по которой мобильное приложение загрузит эти данные в себя.

Собранные данные принимаются в 1С похожим способом, сначала 1С отправляет запрос облаку на выдачу нового токена для загрузки собранных данных, в ответ получает QR-код со ссылкой для мобильного приложения и сам токен. Приложение сканирует QR-код из формы в 1С и по указанной в нем ссылке методом POST отправляет в облако собранные данные. Остается только забрать их оттуда в 1С методом GET, указав полученный ранее токен.

По-моему всё получилось весьма элегантно. В мобильном приложении никакие сервисы гвоздями не прибиты, даже настраивать ничего не нужно, все пароли, явки и координаты передаются в QR-коде. Приложение будет работать с любым веб-сервисом, в Интернете и в локальной сети.

Веб-сервис представляет собой приложение на Python с фреймворком CherryPy.  При желании можно установить его у себя локально, если по религиозным соображениям нельзя пользоваться облаками. Опубликовано на GitHub небольшая инструкция по установке там же. Желательно устанавливать на Linux, под Windows тоже работает, но не как служба.

С любой системой интеграция делается элементарно, через простейший REST API.

Для работы нужна какая-нибудь СУБД, я использую PostgreSQL, но можно хоть SQLite. За подключение к СУБД отвечает модуль "masterdata.py", соответственно если нужно задействовать другую СУБД, достаточно поправить конструктор класса, который Вы найдете в этом модуле.

Что бы вместо облака использовать собственную службу в обработке выгрузки включите опцию "Использовать собственную веб-службу для обмена". Указанные параметры сохраняются и будут использованы в обработке загрузки.

И, разумеется, код обработок открыт, можете переписать на свой вкус, например, вписать свой URL по умолчанию. Код веб-службы тоже открыт, если владеете Python-ом, всё в Ваших руках. Если нужно интегрировать с чем-то, что не умеет работать с JSON - добавьте пару методов для приема и передачи XML.

Для локальной сети, кстати, можно сделать всё и на http-сервисах платформы 1С, но этот путь я счёл неправедным, ибо негоже заставлять пользователя настраивать IIS или Apache, хотя так, наверное, можно было бы обойтись без кнопки "Загрузить" в обработке заполнения.

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

Наименование Файл Версия Размер
Облачный терминал сбора данных:
.zip 35,72Kb
13.11.17
1
.zip 1.0 35,72Kb 1 Скачать

См. также

Вознаграждение за ответ
Показать полностью
Комментарии
1. Антон Иванов (BlizD) 373 14.11.17 08:01 Сейчас в теме
2. Andrey Ju (Kontakt) 57 14.11.17 08:08 Сейчас в теме
Штрих кода прошлый век. Ноу хау это метки с RFID. Функционал с метками RFID добавишь? Чтоб можно было производить инвентаризация по меткам. Было бы очень круто.
3. Павел Питеев (paulpit) 20 14.11.17 09:25 Сейчас в теме
(2)RFID-метки дорогие, когда товаров очень много. Штрих-коды можно самому сгенерировать, напечатать на листке А4 и самим разрезать ножницами.
4. Andrey Ju (Kontakt) 57 14.11.17 09:29 Сейчас в теме
(3) а когда товар дорогой и малое количество? штрих код на бумажках еще надо правильно распределить по товару. А если пересортица.
7. Дмитрий Кулешов (kuld) 203 14.11.17 11:38 Сейчас в теме
(2) Если метки читаются встроенным в Android NFC ридером, то не проблема, присылай метки - сделаем :)
Со стороны андроида и веб-сервиса это не вопрос. А вот со стороны 1С - вопрос. RFID ридеры в ней скажем так... применяются ограниченно.
14. Andrey Ju (Kontakt) 57 14.11.17 13:58 Сейчас в теме
(7) возьмите любую метку в магазине на товаре обычно крепят. Могу прислать метку. Скажите Адрес в лс. 1С выгружает в облоко так же как и штрих коды у Вас выгружается. Только доделать надо по выгрузке. Пример кода RFID 3000014446000000000000002A92
15. Дмитрий Кулешов (kuld) 203 14.11.17 14:49 Сейчас в теме
(14) Антикражку? Вы уверены, что их NFC смартфона считывает? Попробуйте считать, если получится - давайте реализую в приложении их считывание.
Мои подопечные фейшн-ритейлеры многоразовыми пользуются, их NFC не считывает.
16. Andrey Ju (Kontakt) 57 15.11.17 07:13 Сейчас в теме
(15) Пример инвентаризации с RFID метками. https://yadi.sk/i/KkdsgneD3PhtRU
сканирует в зоне действия и по одной.
у Вас задание на инвентаризацию с планом?
17. Дмитрий Кулешов (kuld) 203 15.11.17 08:07 Сейчас в теме
(16) Задание у нас остаётся в 1С, типовое штатное. Приложение собирает массив штрихкод - количество и выгружает на вебсервис. А 1С забирает его в любой документ с соответствующей табличной частью.
19. Denis Bur (DENLSD) 15.11.17 09:45 Сейчас в теме
Ну тут вопрос наверно в реализации чтения АПИ Андроида с NFCдатчиком.
Ну речь не о специализированых ТСД с чтением меток а про простой телефон ... хотя какой он простой, много бюджетных моделей видели с NFC?
23. Дмитрий Кулешов (kuld) 203 15.11.17 22:45 Сейчас в теме
(19) Реализация API там стандартизована, вот она https://developer.android.com/reference/android/nfc/package-summary.html
Специализированные ТСД конечно к этому API могут иметь весьма отдаленное отношение, ибо Андроид в них и не совсем Андроид, он там немного форкнутый, с добавлением своего собственного API отвечающего за работу оборудования на борту (ну еще там как правило вырезаны службы Гугла).

В общем случае считаем, что NFC метку мы прочитать можем. Но...
1. Не все то NFC, что RFID
2. Между встроенным в смартфон модулем NFC и специализированным RFID ридером разница еще драматичней, нежели между программным сканером на камере и аппаратным сканером ШК. Просто сравните время считывания, если под рукой есть и то и другое.

Бюджетные сейчас будут выпускаться с NFC, надо же людей на Android Pay подсаживать. Сам чип стоит реальные копейки, просто он раньше нафиг никому не нужен был.
5. ValeriTim (ValeriTim) 20 14.11.17 09:45 Сейчас в теме
Однозначно +.

Обработку не смотрел, но в закладки добавил. И мне очень нравится, что сервис можно сделать локальным.
6. kolya_tlt kolya_tlt (kolya_tlt) 11 14.11.17 11:38 Сейчас в теме
отличная идея!
хотелось бы видеть 2 концептуально новых вещей:
1. возможность организовать сервер ТСД у себя в сети
2. возможность работы без сети
8. Дмитрий Кулешов (kuld) 203 14.11.17 11:42 Сейчас в теме
(6) И то и другое есть.
1. https://github.com/kuleshovdv/datacollector-webservice/wiki
Сервер рекомендую развернуть на линуксе, при чем это не обязательно должен быть линукс в x86-64 архитектуре, работает и ARM, например, RapsberryPi отлично справится с ролью такого сервера.
2. Bluetooth, Об этом написано в другой публикации https://infostart.ru/public/672668/
10. kolya_tlt kolya_tlt (kolya_tlt) 11 14.11.17 11:48 Сейчас в теме
(8) 1. можно сделать http сервис в виде расширения конфигурации?
12. Дмитрий Кулешов (kuld) 203 14.11.17 11:56 Сейчас в теме
(10) Можно. Но я не стал. Остановило меня то, что http сервис от 1С требует для себя IIS или Apache. А это всё-таки какая-никакая настройка, что нарушает основную концепцию - "никаких драйверов и настроек".
CherryPy, на котором я сделал веб-сервис самодостаточен, ему никакой сервер не нужен. В Линуксе Python встроен. Наверное надо будет сделать локальный вариант с SQLite в качестве СУБД, следите за обновлениями на гитхабе.
9. kolya_tlt kolya_tlt (kolya_tlt) 11 14.11.17 11:44 Сейчас в теме
1. класс, спасибо
2. без сети, значит вообще без сети :)
11. Дмитрий Кулешов (kuld) 203 14.11.17 11:49 Сейчас в теме
(9) Там можно совсем без сети, если без наименований в приложении.
Совсем без сети значит с какими-то драйверами, а это не укладывается в концепцию. Да и таких изделий же полно на рынке ChiperLab, Opticon и иже с ними...
13. Ник Рыжик (ra1ich) 12 14.11.17 13:02 Сейчас в теме
Оч интересно. Попробуем внедрить у себя на заводе
18. Трактор Трактор (Трактор) 1145 15.11.17 09:06 Сейчас в теме
Долго продирался сквозь рекламные словесные конструкции автора пытаясь понять "как оно устроено". Абзац "Для специалистов" должен быть первым. А так плюс. Хорошая идея.
21. Дмитрий Кулешов (kuld) 203 15.11.17 18:38 Сейчас в теме
(18) Так ведь у автора составление словесных конструкций для коммерциализации разработки - это основная специализация...
20. vasek (iliabvf) 15.11.17 10:28 Сейчас в теме
Скажите, а в какую базу данных пишете в андроиде? можете предоставить исходники андроид-приложения? готов посодействовать
22. Дмитрий Кулешов (kuld) 203 15.11.17 18:44 Сейчас в теме
(20) В Андроиде отраслевой стандарт БД для приложений - SQLite
Исходники не распространяю, клоны в Google Play мне совершенно ни к чему.
Посодействовать в чем? Мне судя по статистике установок и использования приложения надо делать перевод интерфейса и описания приложения на испанский и арабский... ¿Hablas español?
24. savva korneev (savrik08) 17.11.17 16:08 Сейчас в теме
Добрый день! В облачных згу и бгу можно как-то использовать?Там ведь нельзя обработки использовать.
25. Дмитрий Кулешов (kuld) 203 17.11.17 17:06 Сейчас в теме
(24) Разве? Там нельзя модифицировать конфигурацию, а на счет прикрепления внешней обработки есть некие требования https://gos.1cfresh.com/articles/dopobrabotkiOO при соблюдении которых обработку подключить таки можно.
Пока не знаю насколько мои обработки удовлетворяют этим требованиям. На вскидку возможная проблема - получение png картинки, т.е. двоичных данных от внешнего сервиса. У 1С свое видение того, что опасно и что безопасно, не удивлюсь, если с их точки зрения получение картинки по http протоколу несет в себе жуть какую угрозу безопасности.
Можно конечно их переписать и генерировать QR код средствами встроенных в типовые конфигурации компонент, я даже было дело посмотрел пример, как это делается. Посмотрел и ужаснулся. То, что в Python занимает 2-3 строчки вместе с отправкой http ответа в 1С превращается в какое-то противоестественное извращение, и вроде даже всё по русски написано, но нихрена не понятно.
В общем посмотрю, если получение извне png картинки и отправка json массивов не противоречат трактату о безопасности 1СFresh, то что-нибудь сделаю.
Оставьте свое сообщение