Внешние компоненты для ТСД на Android. Работает на ТСД Zebra MC33
Компонента ZebraDW - для Зебровской програмулины DataWedge - создает и активирует нужный профиль на ТСД для того чтобы могла работать компонента перехвата событий и направлять в 1С.
Компонента Component - это компонента UniversalBroadcast, которая перехватывает широковещательные сообщения Android и направляет в 1С как внешние события.
Компоненты в архивах (под паролем разумеется) - их распаковываем, а те уже архивы (архивы в архиве) после распаковки, их НЕ распаковываем это и есть ВК.
Создаем новые общие макеты типа ВнешняяКомпонента и загружаем туда распакованные внутренние файлы.
Переходим к коду:
Использовать 32х битную мобильную платформу или моб. приложение (одна из компонент поддерживает только 32)
// Вначале обявляем переменные где будут хранится компоненты, иначе ничего не заработает
Если ПодключитьВнешнююКомпоненту("ОбщийМакет.ZebraDW", "DWSetup", ТипВнешнейКомпоненты.Native) Тогда мКомпонентаНастройки = Новый ("AddIn.DWSetup.ZebraDW"); мКомпонентаНастройки.УстановитьПараметр("ProfileName", "1C"); мКомпонентаНастройки.УстановитьПараметр("EventName", "barcode_event");
Если НЕ мКомпонентаНастройки.Подключить() Тогда ТекстОшибкиКомпоненты = ""; КодОшибки = мКомпонентаНастройки.ПолучитьОшибку(ТекстОшибкиКомпоненты); СообщениеПользователю = Новый СообщениеПользователю(); СообщениеПользователю.Текст = "Ошибка: "+ КодОшибки + ", " + ТекстОшибкиКомпоненты; СообщениеПользователю.Сообщить(); КонецЕсли; Иначе СообщениеПользователю = Новый СообщениеПользователю(); СообщениеПользователю.Текст = "Ошибка подключения компоненты ""ZebraDW"""; СообщениеПользователю.Сообщить(); КонецЕсли;
Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда мКомпонентаОповещений = Новый ("AddIn.Broadcasts.UniversalBroadcast"); мКомпонентаОповещений.УстановитьПараметр("FilterName", "barcode_event"); //мКомпонентаНастройки.УстановитьПараметр("Category", "android.intent.category.DEFAULT"); //// це не треба
Если НЕ мКомпонентаОповещений.Подключить() Тогда ТекстОшибкиКомпоненты = ""; КодОшибки = мКомпонентаОповещений.ПолучитьОшибку(ТекстОшибкиКомпоненты); СообщениеПользователю = Новый СообщениеПользователю(); СообщениеПользователю.Текст = "Ошибка: "+ КодОшибки + ", " + ТекстОшибкиКомпоненты; СообщениеПользователю.Сообщить(); КонецЕсли; Иначе СообщениеПользователю = Новый СообщениеПользователю(); СообщениеПользователю.Текст = "Ошибка подключения компоненты ""UniversalBroadcast"""; СообщениеПользователю.Сообщить(); КонецЕсли;
КонецПроцедуры
&НаКлиенте Процедура ВнешнееСобытие(Источник, Событие, Данные) //Сообщить("+" + Источник + " - "+ Событие + " - " + Данные); ///// Далее можно просто раскоментировать и видеть XML который пришел
Если Событие = "UniversalBroadcastEvent" Тогда ОбробкаВводуШтрихкода(Данные); КонецЕсли;
КонецПроцедуры
&НаКлиенте Процедура ОбробкаВводуШтрихкода(Данные) ЧтениеXML = Новый ЧтениеXML(); ЧтениеXML.УстановитьСтроку(Данные);
Пока ЧтениеXML.Прочитать() Цикл //Цикл по структуре Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "MessageData" Тогда ЧтениеXML.Прочитать(); // Поч. елемента ЧтениеXML.Прочитать();//Знач Если ЧтениеXML.Значение = "barcode_event" Тогда ЧтениеXML.Прочитать();// Кін. елемента ЧтениеXML.Прочитать();// Поч. елемента Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "FilterData" Тогда //Определяем начало элемента ЧтениеXML.Прочитать(); Если ЧтениеXML.ТипУзла=ТипУзлаXML.Текст Тогда Сообщить(СокрЛП(ЧтениеXML.Значение)); //// Тут наш штрихкод Возврат; КонецЕсли; КонецЕсли; КонецЕсли;
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0
вопрос все заводится все подключается но потом выскакивает ошибка 1 001 - DataWeadge приложение не найдено, но оно есть и профили там тоже есть Zebra TC21
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Tiger_77 @ 07.02.24, 14:20)
Можете вручну додати профіль, там нічого складного: [необходимо зарегистрироваться для просмотра ссылки] замість "com.dwexample.ACTION" напишіть "barcode_event"
Яка у вас версія Андроїд? Пишуть, що з 11 версії воно вже так не працює. Додав вручну профіль 1С, все одно помилка "1 001 - DataWeadge приложение не найдено".
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0
gesha2281 @ 04.10.24, 0:06
, При підключенні драйвера необхідно закоментити пункт із підключенням "ZebraDW" та налаштувати профыль вручну
Із важливого в налаштуваннях профілю необхідно: в Applications вказати 1с*, Keystroke output зняти ознаку Enabled, Intent output поставити галку Enabled, Intent action прописати barcode_event, Intent delivery обрати Brodcast intent, та у розділі Basic data formatting зняти галку у Send ENTER key.
Також у налаштуваннях самої DataWedge дати доступ на відображення поверх інших програм, через це буде трохи не зручно користуватися пристроєм тому що значок сканування буде на екрані та доведеться постійно його кудись рухатии щоб не заважав, але без цього мені не вдалося налаштувати сканування. Також інколи при оновленні 1с на ТСД при першому скануванні вилітає 1с-ка, але це тільки після оновлення, в іншому проблем не виникає
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!