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

Публикация № 1248373

Администрирование - Торговое оборудование - Сканер штрих-кода

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

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

Поставлена задача по занесению данных в базу 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,"Демо-режим");
	КонецЕсли;
	
	// Обработка полученного штрих-кода (ОдинКод.barcode) и описания (ОдинКод.description)
	
	// Создание записи в журнале регистрации (при необходимости)
	ЗаписьЖурналаРегистрации("HTTPСервис1.ШаблонURL1", УровеньЖурналаРегистрации.Ошибка, , ОдинКод.barcode, "Описание ошибки");
	
	// Сообщение результатов обработки
	Возврат СформироватьОтвет(ОдинКод.id, "Загрузка успешно завершена", 0,"Пример заголовока", Истина);
	
КонецФункции

Функция СформироватьОтвет(Идентификатор, Отчет, НомерИконки=0, Заголовок="", ЦветнойЗаголовок=Ложь, Фото="")
	
	Запись = Новый Структура;
	Запись.Вставить("result_id", 			Идентификатор);
	Запись.Вставить("result_title", 		Заголовок);
	Запись.Вставить("result_title_color",		?(ЦветнойЗаголовок, "1", "0"));
	Запись.Вставить("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КодНаСервере(Штрихкод);
		КонецЕсли;
		
	#КонецЕсли
	
КонецПроцедуры

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

 

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

Специальные предложения

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

приходится его использовать только из-за того, что во встроенном сканере 1С на некоторых телефонах не срабатывает автофокус и сканировать невозможно (например Redmi Note 5 - автофокус работает шикарно, Mi9 Lite - автофокус не работает ни в какую). пробовал разные релизы, в т.ч. и самый свежий. Кто-нибудь сталкивался с такой проблемой, решили как нибудь?
2. serg33rus 11.06.20 16:41 Сейчас в теме
А чем не устраивает СредстваМультимедия? Делал на нем, отлично все работает. Никаких дополнительных приложений, драйверов и прочего. Штатные средства 1С.
3. SirStefan 42 18.06.20 18:35 Сейчас в теме
А почему для п.3 не использовали com.tamadosky.barcode?
4. maramoyka 17 18.06.20 19:19 Сейчас в теме
(3) Если не ошибаюсь, на момент написания статьи не было этого функционала. Тогда нужно так:

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

См. также

1С Переучет Android Промо

Сканер штрих-кода v8 1cv8.cf Бесплатно (free)

Приложение создано для удобного переучета товаров с помощью Android устройств с выгрузкой в 1С

31.08.2012    43999    bosterua    90    

Инвентаризация весового товара терминалом сбора данных+ ERP 2.4

Сканер штрих-кода Терминал сбора данных v8 ERP2 Россия УУ Бесплатно (free)

Цель - печать этикеток на Штрих Принт (весы с печатью этикеток) весового товара и сбор штрихкодов на ТСД Cipher Lab CP55 в Mobile Smart Магазин 15.

15.05.2020    1464    dy4amaks    0    

Как продавать маркируемый товар (обувь) из 1С:Розница + сканер для маркировки

Розничная торговля Сканер штрих-кода v8 Розница Розничная и сетевая торговля (FMCG) Россия Бесплатно (free)

Маркировка обуви в нашей стране началась с 1 июля 2019 года. Но если в 2019м году от участников рынка требовалось только зарегистрироваться в системе «Честный знак», то теперь уже совсем не за горами дата, когда необходимо будет в обязательном порядке передавать данные о проданных единицах обуви. По графику этот судный день назначен на 1 марта 2020 года. Как все знают, русский человек всегда надеется на лучшее (или на авось, кому как нравится), надеется что правительство передумает. Сейчас в сети ходит информация о возможных сроках переноса судного дня на 1 июля, или, даже, 1 сентября 2020 года, это лишь отсрочки, но никак не отмена обязательной маркировки. В дополнении ко всему вышесказанному надо отметить, что самая популярная программа для розничной торговли, а именно 1С:Розница, как и ее пользователи не смогла заранее подготовиться к нововведениям. Обновление, в котором система стала работать более-менее корректно, вышло лишь 6 февраля 2020 года (менее чем за месяц до судного дня)

22.02.2020    3411    VCPro    7    

Как подключить сканер штрихкода

Сканер штрих-кода v8 Розница Розничная и сетевая торговля (FMCG) Россия Бесплатно (free)

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

11.11.2019    24481    VachKirp    45    

Легкий способ подключения сканера штрих-кодов без установки драйвера Промо

Сканер штрих-кода v8 1cv8.cf Россия Бесплатно (free)

Предлагаемое описание позволит подключить сканер штрих-кодов к любому решению на платформе 8.x - короткая подготовка и быстрое подключение.

21.08.2012    139545    bforce    74    

AltLinux + ККТ Атол 30Ф (55Ф) + сканер штрих-кода

Администрирование данных 1С ККМ Сканер штрих-кода Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 Розница Россия Бесплатно (free)

Описание опыта настройки контура AltLinux + платформа 1С 8.3 + Розница 2.2 базовая + сканер штрих-кода + ККТ 30Ф (55Ф).

14.02.2019    6214    Ceboo    4    

Расширение конструктора мобильного рабочего места для варианта "клиент 1С+RDP" (для любых wi-fi терминалов). Экосистема решений Simple WMS

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Универсальные функции Мобильная разработка Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8::УФ УУ Бесплатно (free)

Развитие проекта «Конструктор мобильного клиента на Android» https://infostart.ru/public/976636/ для устройств не на Андроиде (работающих в режиме RDP). В отличие от варианта Android работа на терминалах происходит в режиме 1С:Предприятие через RDP а конфигурации мобильных клиентов полностью совместимы для обоих версий. Т.е. конфигурация единая, создается один раз и ее может читать как Android -устройство, так и 1С-клиент на RDP без необходимости какой либо переделки.

05.02.2019    12736    informa1555    10    

Подключение сканера штрихкода к Бухгалтерии 3.0

Сканер штрих-кода Оптовая торговля Учет ТМЦ Оптовая торговля Учет ТМЦ v8::БУ БП3.0 Россия БУ УУ Бесплатно (free)

Возникла потребность обеспечить идентификацию номенклатуры по штрихкоду. На складе уже было рабочее место с Бухгалтерией 3.0. Поиск по ключевой фразе «сканер ШК БП 3.0» выдал не так много результатов. На ИС была обнаружена статья от 2013 года, которая сейчас несколько устарела. В 2018 году процесс подключения сканера штрихкода стал существенно проще.

22.11.2018    11788    Dem1urg    23    

Штрих-кодирование без сканера с Barcode to PC

Сканер штрих-кода v8 1cv8.cf Бесплатно (free)

Используйте свой телефон как сканер штрих-кода с бесплатной программой Barcode to PC.

12.11.2018    10648    BuriyLesha    14    

Подключение прайс-чекера ЗНАЙТ Z-Info к 1С в режиме Online

Сканер штрих-кода Розничная торговля Розничная торговля v8 УТ11 Розничная и сетевая торговля (FMCG) Россия Бесплатно (free)

В статье рассматриваются особенности работы с прайс-чекером ЗНАЙТ Z-Info в типовой конфигурации "1С: Управление торговлей" редакция 11.1.2.18 (платформа 1С 8.2.19.80), когда база данных 1С хранится в СУБД Microsoft SQL Server, куда напрямую и подключается прайс-чекер для запроса информации.

06.07.2017    12533    user772738    0    

Сканер штрихкодов на Android смартфоне для 1С

Сканер штрих-кода Розничная торговля Розничная торговля v8 1cv8.cf Бесплатно (free)

Как сделать сканер штрихкодов из обычного Android телефона и привязать его к 1С.

07.05.2017    56103    tjurikov_ivan    26    

Настройка торгового оборудования в конфигурации "Управление торговлей" ред. 10.3 при работе в терминальном режиме

Сканер штрих-кода Терминал сбора данных Фискальный регистратор Розничная торговля Розничная торговля v8::ОУ УТ10 Россия Бесплатно (free)

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

12.04.2017    29617    @lexandr    14    

Настройка сканера штрих-кодов Symbol LS2208 для 1С

Сканер штрих-кода Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 УТ10 Бесплатно (free)

Четкая последовательность действий настройки сканера Symbol LS2208 под windows 7

14.11.2016    81933    ogroup    45    

Подключение сканера к 1С Предприятие 8.3

Сканер штрих-кода v8 1cv8.cf Россия Бесплатно (free)

Подключение сканера к 1С Предприятие 8.3 (обычные и управляемые формы)

19.11.2014    67343    dchumak    27    

Подключаем сканер штрих-кода к 1С 8.2 и 1С 7.7 в режиме эмуляции СОМ-порта

Сканер штрих-кода Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 БП2.0 УТ10 Розница 1С7:ТиС Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Россия БУ Бесплатно (free)

Вы купили новый сканер штрих-кода и теперь перед вами стоит задача подключить его к компьютеру ( кассе) с установленной программой 1С. Разбираемся как это делать.

19.06.2014    88275    alis112358    8    

Подключение сканера штрих-кодов в 1С:Бухгалтерии 3.0

Сканер штрих-кода v8 БП2.0 Бесплатно (free)

Подключение сканера штрих-кодов в Бухгалтерии ред. 3.

11.10.2013    49295    VladC#    61    

Подключение торгового оборудования по rdp.

Розничная торговля ККМ Сканер штрих-кода Розничная торговля v8 КА1 УПП1 Россия УУ Бесплатно (free)

Задача следующая, есть две розничные точки и центральная оптовая. Пользователи работают в терминале на Win Server 2003, база находится на центральной точке, розничные подключаются по интернету. Необходимо подключить сканеры штрих-кода в центральной точке на складе и Сканеры и ФР в розничных точках. При чем в розничных точках один сканер должен переподключаться между кассовым узлом и компьютером в приёмке. Сканеры ШК - Datalogic QuickScan I QM2100 (беспроводной), Honeywell Eclipse 5145, ФР - Штрих-М-ФР-К. Все устройства с интерфейсом USB.

14.08.2013    132033    de0nis    37    

Эмуляция работы сканера штрих-кода. Настройка подключения сканера штрих-кода в 1С 7.7 и 1С 8.

Сканер штрих-кода v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free)

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

21.05.2013    86441    1st    28    

Клавиатурный сканер

Сканер штрих-кода v8 1cv8.cf Россия Бесплатно (free)

Танцы с бубном...

13.03.2013    39685    O-Planet    40    

Подключение нескольких сканеров штрих-кода по rdp (win server 2003, 2008 х64 ) 1Сv8: Управление торговлей 10.3

Сканер штрих-кода v8 УТ10 Россия Бесплатно (free)

Была задача: удаленные филиалы подключить по rdp к одному серваку под управление win 2008 и сканеры штрихкодов тоже, но они никак не хотели работать. То есть если работал один, остальные не работали.Ну и хотелось поделится опытом решения проблемы, вдруг кому то тоже поможет)))) Напишу сразу это решение проблемы для конкретного релиза УТ 10.3.3.3, на остальных не проверял может уже исправили в последующих.Просто конфигурация сильно переписанная и не обновляемая у нас))))

26.02.2013    34672    davlen    18    

Подключение и настройка сканера штрихкодов

Сканер штрих-кода v8 УТ10 Россия Бесплатно (free)

Рассмотрен порядок подключения сканера штрих-кодов с USB интерфейсом (на примере Proton и Honeywell) используя ScanOPOS и обработку обслуживания торгового оборудования "1С: Сканер штрих-кода"

17.02.2012    189840    bodja_84    22    

Обслуживание торгового оборудования после обновления платформы в 1С: УТ 10.3

Тестирование и исправление Сканер штрих-кода v8 УТ10 Россия Бесплатно (free)

Недавно назрела необходимость обновления платформы с 1С: 8.1 на 8.2.(13.219) на конфигурации Управление торговлей 10.3. Конвертация базы затруднений не вызвала, а вот справочник "Обработка обслуживания торгового оборудования" автоматически, разумеется, не отконвертировался. Собственно, из оборудования стоял сканер штрихкодов "Атол" и принтер печати этикеток "Зебра". Вопрос несложный, но вдруг кому-то поможет.

12.09.2011    7180    danny    9    

1С 8 Штрих-кодирование документов

Сканер штрих-кода v8 Россия Бесплатно (free)

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

11.08.2010    31906    mov68    13    

Настройка сканера штрих-кода

Сканер штрих-кода v8 Россия Бесплатно (free)

Как правильно настроить сканер штрих-кода в программах "1С: Предприятие"

06.10.2009    139309    RG-Soft    64