Каталог решений - 1Scan. Интеграция веб-клиента 1С с устройством Android (смартфон, планшет, ТСД)

1Scan. Интеграция веб-клиента 1С с устройством Android (смартфон, планшет, ТСД)

1Scan. Интеграция веб-клиента 1С с устройством Android (смартфон, планшет, ТСД)

В наличии

Получение из Android устройства данных сканера штрихода, камеры, GPS, широковещательных сообщений и передача в код модуля формы 1С для дальнейшей обработки.

Категория:

Описание

Общие требования к интеграции:

  • Android 5.0 (API 21) и выше.
  • 1С Платформа 8.3.16 и выше.
  • Прикладное решение 1C должно предоставлять доступ с помощью веб-клиента (опубликовано на веб-сервере).
  • Опубликованная база должна быть доступна на устройстве через веб-клиент.

Доступно в Google Play 1Scan

Установить бесплатно 1Scan

Преимущества: 

  • Кроме указания адреса базы опубликованного веб-клиента, в приложении никаких настроек не требуется.
  • Вся разработка происходит средствами 1С.

Возможности:

  • Запуск веб-клиента 1С в приложении Android.
  • Сканирование штрихкода, QR-кода. Получение данных со сканера штрихкода, камеры, Intent событий в коде модуля формы 1С для дальнейшей обработки.
  • Фото с камеры, получение двоичных данных в 1С.
  • Способы получения данных: Event listener (событие ввода), Data Intent (настраиваемая подписка на широковещательные сообщения), библиотека устройства Honeywell SDK (список моделей будет дополнятся по мере доступности устройств для разработки) 
  • Запуск на весь экран в режиме "встроенное рабочее место".

 ЗапускПримеры обработки

 

Разработка:

Обработка полученных данных происходит в модуле формы. Требуется подключение обработчика сообщений при открытии и отключение при закрытии формы:

&НаКлиенте
Процедура ПриОткрытии(Отказ) 
    
    //Подключение обработчика сообщений внешнего сайта    
    Если ОкноВнешнегоСайта.Доступно Тогда
        ОбработчикСобытия = Новый ОписаниеОповещения("ПриПолученииСообщенияОтВнешнегоСайта", ЭтотОбъект);
        ОкноВнешнегоСайта.ПодключитьОбработчикСообщений(ОбработчикСобытия);
    КонецЕсли;   
    
КонецПроцедуры   

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы) 
    
    //Отключение обработчика сообщений внешнего сайта
    Если ОкноВнешнегоСайта.Доступно Тогда
        ОбработчикСобытия = Новый ОписаниеОповещения("ПриПолученииСообщенияОтВнешнегоСайта", ЭтотОбъект);
        ОкноВнешнегоСайта.ОтключитьОбработчикСообщений(ОбработчикСобытия);
    КонецЕсли;    
    
КонецПроцедуры

 

В примере из обработки Examples1Scan.epf при получении данных с устройства Android в коде 1С срабатывает процедура ПриПолученииСообщенияОтВнешнегоСайта(Сообщение, ДополнительныеПараметры), которая в свою очередь вызывает процедуру ПриПолученииСообщенияОтУстройства(Данные), где параметр "Данные" — структура содержащая сообщение.

// Обработка сообщения полученного от устройсва
//
&НаКлиенте
Процедура ПриПолученииСообщенияОтУстройства(Данные)
	
	//Ваш код...  	
	СтруктураДанные = JsonВСтруктуру(Данные);
	
	Если ЗначениеЗаполнено(СтруктураДанные) И ТипЗнч(СтруктураДанные) = Тип("Структура") Тогда
		
		//Обработка данных по событиям
		Если СтруктураДанные.Event = "scanResult" Тогда //результат сканирования  
			
			Штрихкод = СтруктураДанные.data; 
			ЭтотОбъект.ПолученныеДанные = Штрихкод; 
			
		ИначеЕсли СтруктураДанные.Event = "getAndroidID" Тогда //результат запроса уникального идентификатора приложения  
			
			AndroidID = СтруктураДанные.data;
			ЭтотОбъект.ПолученныеДанные = AndroidID;     
			
		КонецЕсли;	                                         
		
	КонецЕсли;
	
	//
	ЭтотОбъект.ПолученныйJson = Данные;		
	ПоказатьОповещениеПользователя(,,Данные, БиблиотекаКартинок.Информация32);

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

 

Так же есть возможность отправлять сообщения команды устройству. Например, запустить камеру, получить уникальный идентификатор устройства и тп:


&НаКлиенте
Процедура ОткрытьКамеру(Команда)   
	
	Сообщение = "startScanCamera"; //Запускает камеру для сканирвания
	ОтправитьСообщениеУстройству(Сообщение);
	
КонецПроцедуры

&НаКлиенте
Процедура ПоказатьКнопкуКамеры(Команда)
	Сообщение = "enableScanCameraButton"; //Отображает кнопку камеры для сканирования
	ОтправитьСообщениеУстройству(Сообщение);
КонецПроцедуры

&НаКлиенте
Процедура СкрытьКнопкуКамеры(Команда)
	Сообщение = "disableScanCameraButton"; //Скрывает кнопку камеры для сканирования
	ОтправитьСообщениеУстройству(Сообщение);
КонецПроцедуры

&НаКлиенте
Процедура СообщитьToast(Команда) 
	ТекстСообщения = "Привет, toast!";
	Сообщение = "toast:" + ТекстСообщения; //Всплывающее сообщение, короткий период
	//Сообщение = "toastLong:" + ТекстСообщения; //Всплывающие сообщение, длинный период	
	ОтправитьСообщениеУстройству(Сообщение);
КонецПроцедуры  

&НаКлиенте
Процедура СообщитьSnackbar(Команда)   
	ТекстСообщения = "Привет, snackbar!";
	Сообщение = "snackbar:" + ТекстСообщения; //Всплывающее сообщение, короткий период 
	//Сообщение = "snackbartLong:" + ТекстСообщения; //Всплывающее сообщение, длинный период	
	ОтправитьСообщениеУстройству(Сообщение);
КонецПроцедуры   

&НаКлиенте
Процедура ОткрытьНастройки(Команда) 
	ОтправитьСообщениеУстройству("openSettings");
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьAndroidID(Команда) 
	ОтправитьСообщениеУстройству("getAndroidID");	
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьДанныеПоGPS(Команда)
	ОтправитьСообщениеУстройству("getLocation");
КонецПроцедуры

&НаКлиенте
Процедура ЗакрытьПриложение(Команда)
	ОтправитьСообщениеУстройству("closeApplication");
КонецПроцедуры

 

Настройки:

НастройкиСканирование через камеру

Для подключения к базе 1С следует указать "Адрес веб-сайта" (пример. http://192.168.0.100) и "Имя публикуемой базы" (пример. DemoSSL/ru_RU/). Для явного указания языка запуска следует прописать "/ru_RU/", знак "/" обязателен в конце. Так же можно заполнить Пользователь и Пароль для автоматического входа.

Удалять непечатаемые символы при сканирование — очищает данные полученные при сканирование.

Режим запуска: встроенное рабочее место — база запускается в полноэкранном режиме без возможности пользователем закрывать окна и выбирать разделы.

Отображать кнопку настройки — кнопка настройки всегда будет отображатся. Так же настройки можно открыть через долгое или 7 частых нажатий кнопки Назад (Back button) устройства. 

 

Методы сканирования:

Event listener — получает событие ввода данных возникшее на экране. Универсальный метод, работает практически на всех устройствах.

Data intent — в настройках Intent устройства можно прописать в Action свое ключевое слово по которому можно получать данные. Extra Key — имя свойства которое находится в Intent, например для Honeywell это "data". При указание intent обычно другие методы перестают работать.

Honeywell SDK — родная библиотека устройств Honeywell (тестировалось на CN51). Если у вас ТСД этой фирмы — то рекомендуется использовать данный метод сканирования, так как данные всегда получаются корректно независимо какие настройки указаны в самом устройстве.

Сканирование через камеру — используется библиотека сканирования штрих-кода для Android с использованием ZXing для декодирования.

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

 

Полезные ссылки:
Как опубликовать веб-сервера Apache или IIS. Публикация базы 1С.
Пример обработки полученных данных на форме 1C Examples1Scan.epf

Приложение в Google Play: 1Scan

Опубликовано как бета-версия (ранний доступ). По возможности прошу отписаться в комментариях.

has been added to your cart:
Оформление заказа