Внешний компонент "1С:Сканер штрихкода" (Native) версия для платформы "1С Предприятие 8.3".

1. simon_simon 1 16.04.23 20:50 Сейчас в теме
Коллеги здравствуйте!
Суть вопроса заключается в использовании внешней компонеты (Версия 10.3.1.2.). Взял ее из "Библиотека подключаемого оборудования для мобильных приложений". В общем проблема работы самого приложения "Библиотека подключаемого оборудования для мобильных приложений" с выбранным сканером на андроид устройстве решена. (Сканер "Netum", использовали разные модели). Решена проблема работы этого сканера в своей конфигурации путем переноса функционала из "Библиотека подключаемого оборудования для мобильных приложений". Но, решение получилось слегка громоздким.

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

Смотрим как зачарованные на реализацию в "Библиотека подключаемого оборудования для мобильных приложений" . Ну используют там модуль сеанса , где устанавливают в этом модуле параметр сеанса, который называется "РабочееМестоКлиента" и тип имеет "СправочникСсылка.РабочиеМеста". Ну и как бы нет ни чего такого. Но, подозрение есть , что без этой штуки не работает связка драйвер - внешнее событие. Есть ли у кого понимание в этом вопросе? Благодарю. Для предвосхищения вопросов типа "Зачем тебе этот новый драйвер? Возьми драйвер постарше и попроще, на котором все работает и не мучайся." Отвечаю, у ряда планшетов на предприятии есть встроенный сканер и там мы результаты сканирования получаем через механизм Broadcast . Вот зачем.

Важное замечание: Содержание лога от внешней компоненты в случае когда мы работаем из функционала БПО и своего упрощенного функционала слегка разный получаю.
В приложенных файлах файл с именем "scan_opos (5)" отвечает не работающей ситуации, файл с именем scan_opos (6) работающей ситуации.
Параметры внешней компоненты в своей реализации устанавливал глядя на то как это все делается в "Библиотека подключаемого оборудования для мобильных приложений". Но в итоге получил не работающий вариант. Все это тестировал в рамках одного и того же мобильного клиента, внешнюю компоненту брал из одного и того же макета.

Заранее благодарю за содействие.
Прикрепленные файлы:
scan_opos (5).txt
scan_opos (6).txt
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. serg33rus 28 17.04.23 17:27 Сейчас в теме
Я тоже брал этот драйвер. И у меня работал он сам по себе, без БПО. Могу дать APK на пробу. Заработает или нет.
3. simon_simon 1 18.04.23 11:17 Сейчас в теме
(2)Если можно, дайте, пожалуйста, попробую.

Еще просьба: взгляните на код подключения, ни чего ли не упущено при подключении ВК?

Procedure ConnectingExternalComponentForScanToMC()
	//If Attached Then
		//ExternalComponent = New("AddIn.InputDevice.InputDevice");  
		
		OK = ПодключитьВнешнююКомпоненту("CommonTemplate.Драйвер1ССканерШтрихкода", "InputDevice", ТипВнешнейКомпоненты.Native);
        ExternalComponent = Новый ("AddIn.InputDevice.InputDevice");

		//P1 = "";
		//P2 = "";
		//P3 = "";
		//P4 = "";
		//P5 = "";
		//P6 = "";
		//P7 = "";
        
		//ExternalComponent.GetDescription(P1, P2, P3, P4, P5, P6, P7); // получаем описание
		
		
        
		
		ExternalComponent.SetParameter("EquipmentType", "УстройствоВвода"); 
		ExternalComponent.SetParameter("Action", "android.intent.action.DEFAULT");
		ExternalComponent.SetParameter("BluetoothDevice", "DEV_KEYBOARD"); // устанавливаем тип сканера блютус девайЗ
		ExternalComponent.SetParameter("COMEncoding", "UTF-8"); 
		ExternalComponent.SetParameter("Category", "");
		ExternalComponent.SetParameter("DataBits", 8);
		ExternalComponent.SetParameter("Extra", "android.intent.extra.STREAM");
		ExternalComponent.SetParameter("ExtraType", "String");   
		//ExternalComponent.SetParameter("GSSymbolKey", 7); 
		ExternalComponent.SetParameter("GSSymbolKey", 7); 
		ExternalComponent.SetParameter("LogFilePath", "/storage/emulated/0/Download/scan_opos.txt");  
        ExternalComponent.SetParameter("LogType", 0); // Логируем в файл  
        ExternalComponent.SetParameter("OutputDataType", 0); // тип данных выходных  
        ExternalComponent.SetParameter("Parity", 0); //   
        ExternalComponent.SetParameter("Prefix", -1); //  
        ExternalComponent.SetParameter("Speed", 9600); // 
        ExternalComponent.SetParameter("StandardAction", "NONE"); // 
        ExternalComponent.SetParameter("StandardCategory", "NONE"); // 
        ExternalComponent.SetParameter("StandardExtra", "NONE"); // 
        ExternalComponent.SetParameter("StopBits", 0); //
        ExternalComponent.SetParameter("Suffix", 3338); //
        ExternalComponent.SetParameter("Timeout", 75); //
		//ExternalComponent.SetParameter("AppType", 6); //
		IDParametr = "";
        OK = ExternalComponent.Open(IDParametr); // подключаем компоненту  
		РезультатТеста       = "";
		АктивированДемоРежим = "";
		
		РезультатТеста = ExternalComponent.ТестУстройства(РезультатТеста, АктивированДемоРежим);
        Сообщить(ExternalComponent.ПолучитьНомерВерсии());
		
        Параметры1 = "";
        ExternalComponent.ПолучитьПараметры(Параметры1); // получаем параметры
        СтрокаПараметры = Параметры1;   
		
		ОписаниеДрайвера = "";
		ExternalComponent.ПолучитьОписание(ОписаниеДрайвера);
		
        If Not OK Then
			Message(ExternalComponent.GetLastError(P7));
        EndIf;
	//EndIf;
	
EndProcedure
Показать
4. simon_simon 1 18.04.23 11:27 Сейчас в теме
Предлагаю, наверное так: если ваш МК запустится, то за стартмани хотели бы с Вами проконсультироваться в каком-то виде (устно, с подключением к нам на сервер для указания наших ошибок.)
5. serg33rus 28 18.04.23 11:58 Сейчас в теме
(4) Написал в личку.
Там от БПО вообще нет ничего кроме самого драйвера. Зато получилось довольно компактно. Правда кроме сканера ШК там нет ничего :-).
6. simon_simon 1 18.04.23 16:37 Сейчас в теме
Коллеги, важное замечание. Как-то я немного не четко, видимо, в самом вопросе написал. Используя эту внешнюю компоненту именно для подключения внешнего блютуз-сканера.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот