Мобильный клиент для сканирования QR-кодов и штрихкодов и отправки их на сервер

29.06.21

Интеграция - Сканер штрих-кода

В статье рассмотрены варианты реализации мобильного сканера.

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

Анализ вариантов показывает три возможных решения:

  1. Использование существующего мобильного приложения
  2. Создание собственного мобильного приложения на 1С
  3. Совмещенный вариант

Рассмотрим каждый подробнее.

 

1. Использование существующего мобильного приложения.

Анализ рынка в магазинах приложений показывает, что большинство существующих сканеров распознают QR-коды плохо, и лишь отдельные делают это на удивление моментально. А умеют отправлять данные на сервер - единицы. Рассмотрим реализацию на примере одного такого приложения: "Штрихкод Коммандер"

Доступно в Google Play

 

Подготовка серверной части

Обмен с мобильным приложением "Штрихкод Коммандер" выполняется через http-сервис. Поэтому на сервере в 1С создаем метод http-сервиса и описываем алгоритм обработки полученного QR-кода. Работа с http-сервисами не нова, поэтому комментарии опустим. Пример:

      

 

                 

Функция ШаблонURL1Метод1(Запрос)
	
	МассивОтветов = Новый Массив;	
	Для каждого ОдинКод Из ПреобразоватьJSONвДанные(Запрос.ПолучитьТелоКакСтроку()) Цикл
		МассивОтветов.Добавить(ОбработатьШтрихКод(ОдинКод));
	КонецЦикла;	

	Возврат СформироватьОтветHTTP(МассивОтветов);

КонецФункции

Функция ПреобразоватьJSONвДанные(СтрокаJSON) 	
	
	мЧтениеJSON = Новый ЧтениеJSON;	
	мЧтениеJSON.УстановитьСтроку(СтрокаJSON);
	Результат = ПрочитатьJSON(мЧтениеJSON);
	мЧтениеJSON.Закрыть();	
	Возврат Результат;
	
КонецФункции

Функция ОбработатьШтрихКод(ОдинКод) 
	
	Если ОдинКод.id = 1 Тогда 		
		Возврат СформироватьОтвет(ОдинКод.id, "Аутентификация успешно пройдена.");
		
	ИначеЕсли Сред(ОдинКод.barcode, 1, 4) = "Демо" Тогда 		
		Возврат СформироватьОтвет(ОдинКод.id, "", 1,"Демо-режим", 3);
	КонецЕсли;
	
	// Обработка полученного штрихкода (ОдинКод.barcode) и описания (ОдинКод.description)
	
	// Создание записи в журнале регистрации (при необходимости)
	ЗаписьЖурналаРегистрации("HTTPСервис1.ШаблонURL1", УровеньЖурналаРегистрации.Ошибка, , ОдинКод.barcode, "Описание ошибки");
	
	// Сообщение результатов обработки
	Возврат СформироватьОтвет(ОдинКод.id, "Загрузка успешно завершена", 0,"Пример заголовока", 6);
	
КонецФункции

Функция СформироватьОтвет(Идентификатор, Отчет, НомерИконки=0, Заголовок="", ЦветИконки=0, Фото="")
	
	Запись = Новый Структура;
	Запись.Вставить("result_id", 		Идентификатор);
	Запись.Вставить("result_title", 	Заголовок);
	Запись.Вставить("result_color", 	ЦветИконки);
	Запись.Вставить("result_icon", 		НомерИконки);	
	Запись.Вставить("result_report", 	Отчет);
	Запись.Вставить("result_image", 	Фото);
	Возврат Запись;	
	
КонецФункции

Функция СформироватьОтветHTTP(МассивОтветов)
	
	мЗаписьJSON = Новый ЗаписьJSON;
	мЗаписьJSON.ПроверятьСтруктуру = Ложь;
	мЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON());
	ЗаписатьJSON(мЗаписьJSON, МассивОтветов);
	СтрокаJSON = мЗаписьJSON.Закрыть(); 
		
	Ответ = Новый HTTPСервисОтвет(200);
	Ответ.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
	Возврат Ответ;
	
КонецФункции

Проверяем, что брандмауэр и/или антивирус не мешают подключению к сервису.

 

Подготовка клиентской части

Устанавливаем приложение на мобильное устройство:

Доступно в Google Play

Переходим в настройки и включаем переключатель: "Веб-сервер". Указываем свой сервер в поле "Адрес URL" (в примере выше это был:  "http://192.168.0.1/MyWS/hs/barcode/"). При необходимости вводим логин и пароль от базы 1С. При желании корректируем остальные настройки.

Вы, наверное, удивитесь, но на этом все! Сканируем и радуемся!

 

2. Создание собственного мобильного приложения на 1С

Так как в этом варианте мы самостоятельно разрабатываем и клиентскую, и серверную части, то вольны выбрать любую понравившуюся нам технологию передачи данных. Пример реализации http-сервиса мы рассмотрели выше, поэтому рассмотрим реализацию с использованием web-сервиса.

Подготовка серверной части

На сервере в 1С создаем метод web-сервиса и описываем алгоритм обработки полученного QR-кода. Пример:

                                                 

 

     

Функция SetQR(QRKod)
	
	// Обработка полученного QRKod 
	
	
	// Создание записи в журнале регистрации (при необходимости)
	ЗаписьЖурналаРегистрации("WebService1.SetQR", УровеньЖурналаРегистрации.Ошибка, , QRKod, "Пример описания ошибки");
	
	// Сообщение результатов обработки
	Возврат "Загрузка успешно завершена";

КонецФункции

 

Подготовка клиентской части

У 1С есть встроенные методы по сканированию штрихкодов, что значительно облегчает разработку. Пример:

&НаКлиенте
Процедура Сканировать1С(Команда)

	#Если МобильноеПриложениеКлиент Тогда

	Если СредстваМультимедиа.ПоддерживаетсяСканированиеШтрихКодов() Тогда
		ОбработчикСканирования = Новый ОписаниеОповещения("ОбработкаРаспознанногоШтрихкода", ЭтаФорма);
		СредстваМультимедиа.ПоказатьСканированиеШтрихКодов("Сканируйте", ОбработчикСканирования,,ТипШтрихКода.Двухмерный);
	Иначе
		Сообщить("Не поддерживается сканирование штрихкодов!");
	КонецЕсли;

	#КонецЕсли

КонецПроцедуры

Процедура ОбработкаРаспознанногоШтрихкода(Штрихкод, Результат, Сообщение, ДопПараметр)
	
	Если Результат Тогда
		Сообщение = ОтправитьQRКодНаСервере(Штрихкод);
	КонецЕсли;
	
КонецПроцедуры
	
&НаСервере
Функция ОтправитьQRКодНаСервере(Штрихкод)

	ОписаниеСервиса = Новый WSОпределения("http://192.168.0.1/MyWS/ws/ws1.1cws?wsdl", "Login", "Password");
	Прокси = Новый WSПрокси(ОписаниеСервиса, "http://192.168.0.1/", "WebService1", "WebService1Soap");
	Прокси.Пользователь = "Login";
	Прокси.Пароль       = "Password";
	
	Возврат Прокси.SetCheck(Штрихкод);

КонецФункции

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

Сравнение мобильных технологий сканирования штрихкодов приведены в следующей статье.

 

3. Совмещенный вариант

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

Рассмотрим реализацию на примере того же приложения:

Доступно в Google Play

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

&НаКлиенте
Процедура СканироватьAndroid(Команда)
	
	#Если МобильноеПриложениеКлиент Тогда
	
		Нов = Новый ЗапускПриложенияМобильногоУстройства("com.tamadosky.barcode.SCAN");
		
		РезультатСканирования = Нов.Запустить(Истина);
		
		Если РезультатСканирования = -1 Тогда
			Штрихкод = Нов.ДополнительныеДанные.Получить("SCAN_RESULT").Значение;
			ОтправитьQRКодНаСервере(Штрихкод);
		КонецЕсли;
		
	#КонецЕсли
	
КонецПроцедуры

К недостаткам данного варианта можно отнести необходимость установки двух мобильных приложений и относительно большое занимаемое место на мобильном устройстве.

 

Надеюсь, что изложенный материал ответит на некоторые ваши вопросы и поможет в автоматизации сканирования штрихкодов.

QR-код QR-code Штрихкод Сканер Сканирование http-сервис web-сервис

См. также

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

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

2880 руб.

03.12.2018    55063    139    102    

162

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 9900 руб.

27.12.2021    33809    82    159    

177

Проверка товаров сканером штрихкода/ТСД для УТ11, КА2, ERP2, УНФ, БП3, Розница 2/ 3

Сканер штрих-кода Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Розница 3.0 Управленческий учет Платные (руб)

У вас возникал вопрос - Как быстро и правильно выполнить приемку товара в торговой точке? Как минимизировать ошибки при сборке заказа клиента? Текущая разработка способна помочь в решении данных проблем. Её назначение - проверка с помощью сканера штрих кода поступления и реализации товаров, заказов клиентов, заказов поставщикам, расходных и приходных ордеров, перемещений и возвратов.

2400 руб.

29.07.2020    34276    158    152    

131

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Платформа 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный терминал сбора данных для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    92379    520    186    

297

Подсистема штрихкодирования серий номенклатуры для 1С:УТ 11.4/11.5 КА, ERP 2.4/2.5

Сканер штрих-кода Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Стандартные конфигурации ERP, КА, УТ 11 позволяют работать с штрихкодированием серий. Есть только одно суровое ограничение – на упаковке должна быть этикетка для номенклатуры и отдельно для серии. Во многих случаях это критически неудобно.

12000 руб.

19.04.2021    20912    58    35    

53

Магазин 15 - приемка товара по штрихкодам или инвентаризация в торговом зале

Логистика, склад и ТМЦ Мобильная разработка Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

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

12950 руб.

30.05.2023    3462    2    0    

4

Конфигурация "Информационный киоск". Обработки выгрузки товаров для ТиС 9.2, УТ 10.3, УТ 11 (обмен данными с любой конфигурацией 1С 7.7, 8.х)

Оптовая торговля Розничная торговля Обмен между базами 1C Сканер штрих-кода Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Управленческий учет Платные (руб)

Конфигурация предназначена для организации offline доступа клиента (покупателя) к информации о товарах, услугах или дисконтных картах посредством сканирования штрих-кода. Основная цель – мгновенно предоставить наиболее актуальную информацию о цене, остатках, наименовании товара (услуги) или накоплениях, держателе, состоянии дисконтной карты.

1800 руб.

21.12.2014    59325    8    21    

20
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DERL 11.06.20 11:13 Сейчас в теме
да, похоже сканер от zxing единственный, который может передавать данные в другие приложения, но страшно медленный, после сканирования пару секунд думает прежде чем отправить данные в приложение 1С, еще один глюк - хоть и стоит в настройках галочка "не поворачивать автоматически" все равно переключается в ландшафтный режим при сканировании.

приходится его использовать только из-за того, что во встроенном сканере 1С на некоторых телефонах не срабатывает автофокус и сканировать невозможно (например Redmi Note 5 - автофокус работает шикарно, Mi9 Lite - автофокус не работает ни в какую). пробовал разные релизы, в т.ч. и самый свежий. Кто-нибудь сталкивался с такой проблемой, решили как нибудь?
2. serg33rus 28 11.06.20 16:41 Сейчас в теме
А чем не устраивает СредстваМультимедия? Делал на нем, отлично все работает. Никаких дополнительных приложений, драйверов и прочего. Штатные средства 1С.
6. MaramOyka 48 05.12.20 09:25 Сейчас в теме
(2)
Сравнение мобильных технологий сканирования штрихкодов:
https://infostart.ru/1c/articles/1330670/
Емельянов Алексей; +1 Ответить
3. SirStefan 53 18.06.20 18:35 Сейчас в теме
А почему для п.3 не использовали com.tamadosky.barcode?
4. MaramOyka 48 18.06.20 19:19 Сейчас в теме
(3) Если не ошибаюсь, на момент написания статьи не было этого функционала. Тогда нужно так:

		Нов = Новый ЗапускПриложенияМобильногоУстройства("com.tamadosky.barcode.SCAN");
		
		РезультатСканирования = Нов.Запустить(Истина);
		
		Если РезультатСканирования = -1 Тогда
			Штрихкод = Нов.ДополнительныеДанные.Получить("SCAN_RESULT").Значение;
			ОтправитьQRКодНаСервере(Штрихкод);
		КонецЕсли;
Показать
5. DERL 27.11.20 05:25 Сейчас в теме
com.tamadosky.barcode

кто-нибудь реально использует его? чёт цена у него кусачая да еще и помесячная оплата
7. user635667 138 20.09.21 06:04 Сейчас в теме
А как подключить обычный сканер через OTG????
8. MaramOyka 48 20.09.21 08:41 Сейчас в теме
(7)
Думаю, с подключением кабеля у вас проблем нет.
А далее в зависимости от того, что необходимо делать со штрихкодами, нужно подбирать соответстующее ПО.
Например, в вышеописанном приложении (см. ссылку) нужно перейти в раздел Настройки / Устройство и установить значение "Аппаратный сканер (режим KEYBOARD)":
https://play.google.com/store/apps/details?id=com.tamadosky.barcode
9. Bayker 21.10.21 15:28 Сейчас в теме
Я уж обрадовался, путаешь только людей.
Зачем в заголовке пишешь мобильный клиент, а рассказываешь про мобильное приложение.
10. MaramOyka 48 21.10.21 17:01 Сейчас в теме
Приложение выступает в роли клиента в клиент-серверном взаимодействии.

Из уроков 1 класса:
1. Обращаться к незнакомым взрослым нужно вежливо, на Вы.
2. Некоторые слова имеют несколько значений. Сколько значений имеет слово "Ключ"?
11. NosovRomanStudent 02.03.22 13:08 Сейчас в теме
Доброго времени суток! Впечатлен вашей идеей! Попытался проделать описанные шаги из первого варианта в учебной версии 1с: Предприятие (Платформа: 1С:Предприятие 8.3, учебная версия (8.3.8.1933)). Скажите, пожалуйста, можно ли с вами связаться каким-нибудь образом и взять уроки для решения этой задачи. Мне нужно добавить в свою конфигурацию мобильный сканер qr-кодов, чтобы у каждого документа, который я создаю было "поле" или фото qr-кода о вакцинации
12. MaramOyka 48 02.03.22 14:12 Сейчас в теме
(11)

Боюсь "фото qr-кода о вакцинации" - не получится.

А вот "поле" - вполне. Что в "поле" планируется записывать?
Посмотрите в этом приложении следующие разделы:
* Настройки \ Веб-сервер \ Помощь - это общее описание
* Настройки \ Веб-сервер \ 1С:Предприятие - это пример реализации
Думаю, в них вы найдете все ответы на ваши вопросы.
13. NosovRomanStudent 02.03.22 14:32 Сейчас в теме
(12)Если вы говорите, что фото не получится, тогда ссылку, которую приложение должно передать в 1с. Спасибо за оперативный ответ, буду смотреть!
14. olbu 28.07.22 10:39 Сейчас в теме
Добрый день!
Делаю в 1с Мобильное приложение 1С 8.3.21 вот так:
Нов = Новый ЗапускПриложенияМобильногоУстройства("com.tamadosky.barcode.SCAN");
        
        РезультатСканирования = Нов.Запустить(Истина);
        
        Если РезультатСканирования = -1 Тогда
            Штрихкод = Нов.ДополнительныеДанные.Получить("SCAN_RESULT").Значение;
            ОтправитьQRКодНаСервере(Штрихкод);
        КонецЕсли;
Показать

Запускаю, на экране вышло окно
"Цветная версия
Функции доступные после покупки:
Темная тема..."

внизу кнопки "Отмена" и "Далее". Нажимаю "Далее" - окно не пропадает и висит долго - не смог дождаться его закрытия.
Что нужно еще выполнить?
15. MaramOyka 48 28.07.22 16:30 Сейчас в теме
(14)
Дальше должен открыться процесс покупки. Видимо у вас он не запускается.
Могу порекомендовать следующее:
1. Попробуйте освободить место на устройстве, если оно закончилось. Когда заканчивается место на устройстве, то все приложения начинают работать не корректно.
2. Можете также попробовать перегрузить устройство.
3. Проверьте доступность интернета на устройстве. Оплата проходит через интернет.
16. olbu 02.08.22 13:18 Сейчас в теме
(15) т.е. без покупки - не получиться его использовать? И-нет специально не доступен...
17. user970711 03.08.22 00:16 Сейчас в теме
При попытке купить цветную версию (99 руб), получаю сообщение об ограничениях на территории России. При попытке загрузить и установить apk с AppGallery получаю сообщение "Приложение не установлено". Как можно обойти ограничения?
18. MaramOyka 48 05.08.22 10:00 Сейчас в теме
(17)
При попытке загрузить и установить apk с AppGallery получаю сообщение "Приложение не установлено"

На AppGallery ограничений нет.
Сначала нужно установить приложения магазина "AppGallery", а потом уже из "AppGallery" установить "Штрихкод Коммандер".
Не получается - напишите на почту, вам помогут.
19. user970711 08.08.22 20:15 Сейчас в теме
(18) Не сразу, но получилось. AppGallary (apk) скачал с официального сайта. Штрихкод Командер пришлось сначала удалить, а потом установить снова уже под учетной записью AppGallary. Все прекрасно работает! Спасибо!
20. user1106258 08.12.22 16:50 Сейчас в теме
Добрые люди подскажите, как запустить сканер для массового сканирования?
Пока код такой (однократное сканирование)...
#Если МобильноеПриложениеКлиент Тогда

Приложение = Новый ЗапускПриложенияМобильногоУстройства("com.google.zxing.client.android.SCAN");

Результат = Приложение.Запустить(Истина); // нужен ли результат!@?

СчитанныйШтрихКод = Приложение.ДополнительныеДанные.Получить("SCAN_RESULT").Значение;

Возврат СчитанныйШтрихКод

#КонецЕсли
21. user1965225 03.07.23 13:44 Сейчас в теме
А есть ли возможность использовать сторонний сканер на iOS ? Поделитесь примером пожалуйста
Оставьте свое сообщение