Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Внешние компоненты для ТСД на Android (Zebra)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Хранилище: скачать бесплатно отчеты, обработки, конфигурации, программы, внешние компоненты, литературу > 1С: Предприятие 8 > Программы, внешние компоненты, прочее
vbi
Внешние компоненты для ТСД на 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"); //// це не треба
                
        ШаблонДанных = мКомпонентаОповещений.ПолучитьШаблонОписанияДанных();
        ТипДанные = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "com.symbol.datawedge.data_string", XMLСтрока(Ложь), XMLСтрока(0));          
        
        мКомпонентаОповещений.УстановитьПараметр("CaptureData", ТипДанные);
        
        Если НЕ мКомпонентаОповещений.Подключить() Тогда
            ТекстОшибкиКомпоненты = "";
            КодОшибки = мКомпонентаОповещений.ПолучитьОшибку(ТекстОшибкиКомпоненты);
            СообщениеПользователю = Новый СообщениеПользователю();
            СообщениеПользователю.Текст = "Ошибка: "+ КодОшибки + ", " + ТекстОшибкиКомпоненты;
            СообщениеПользователю.Сообщить();
        КонецЕсли;        
    Иначе        
        СообщениеПользователю = Новый СообщениеПользователю();
        СообщениеПользователю.Текст = "Ошибка подключения компоненты ""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.Значение));   //// Тут наш штрихкод
                                Возврат;
                            КонецЕсли;
                        КонецЕсли;
                КонецЕсли;

            КонецЕсли;
        КонецЦикла;

КонецПроцедуры
Vofka
Опубликовал.
Karatel555
vbi @ 19.05.22, 15:37 необходимо зарегистрироваться для просмотра ссылки ,
А можно узнать пароль к архиву?
vbi
Karatel555 @ 15.06.22, 7:43 необходимо зарегистрироваться для просмотра ссылки ,
Читайте правила форума, там все на счет паролей написано.
lisovliss
vbi @ 07.07.22, 10:52 необходимо зарегистрироваться для просмотра ссылки ,
Большое спасибо!
Richevil
вопрос все заводится все подключается но потом выскакивает ошибка 1 001 - DataWeadge приложение не найдено, но оно есть и профили там тоже есть Zebra TC21
Tiger_77
Richevil @ 09.11.23, 18:16 необходимо зарегистрироваться для просмотра ссылки ,

Можете вручну додати профіль, там нічого складного:

необходимо зарегистрироваться для просмотра ссылки

замість "com.dwexample.ACTION" напишіть "barcode_event"
dave2000
Цитата(Tiger_77 @ 07.02.24, 14:20) необходимо зарегистрироваться для просмотра ссылки
Можете вручну додати профіль, там нічого складного:
необходимо зарегистрироваться для просмотра ссылки
замість "com.dwexample.ACTION" напишіть "barcode_event"


Яка у вас версія Андроїд? Пишуть, що з 11 версії воно вже так не працює.
Додав вручну профіль 1С, все одно помилка "1 001 - DataWeadge приложение не найдено".

Є якісь ще способи?

Profi_1C77
vbi @ 11.07.24, 23:57 необходимо зарегистрироваться для просмотра ссылки ,
Есть ли компонента x64?
gesha2281
dave2000 @ 11.07.24, 22:57 необходимо зарегистрироваться для просмотра ссылки ,
Вдалось знайти спосіб запустити?
dima.kovp@gmail.com
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с-ка, але це тільки після оновлення, в іншому проблем не виникає
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.