Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Внешние компоненты для ТСД на Android (Zebra)          
vbi Подменю пользователя
сообщение 19.05.22, 11:37
Сообщение #1

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

Внешние компоненты для ТСД на 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.Значение));   //// Тут наш штрихкод
                                Возврат;
                            КонецЕсли;
                        КонецЕсли;
                КонецЕсли;

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

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

Прикрепленные файлы
Прикрепленный файл  Component.zip ( 1,6 мегабайт ) Кол-во скачиваний: 106
Прикрепленный файл  ZebraDW.zip ( 1,28 мегабайт ) Кол-во скачиваний: 89
 


Signature
Впроваджую, супроводжую

Спасибо сказали: Vofka,

Vofka Подменю пользователя
сообщение 20.05.22, 10:27
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Опубликовал.

Спасибо сказали: vbi,

Karatel555 Подменю пользователя
сообщение 15.06.22, 6:43
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

vbi @ 19.05.22, 15:37 * ,
А можно узнать пароль к архиву?

vbi Подменю пользователя
сообщение 07.07.22, 10:52
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 0

Karatel555 @ 15.06.22, 7:43 * ,
Читайте правила форума, там все на счет паролей написано.


Signature
Впроваджую, супроводжую

lisovliss Подменю пользователя
сообщение 13.07.23, 13:34
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

vbi @ 07.07.22, 10:52 * ,
Большое спасибо!

Richevil Подменю пользователя
сообщение 09.11.23, 18:16
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

вопрос все заводится все подключается но потом выскакивает ошибка 1 001 - DataWeadge приложение не найдено, но оно есть и профили там тоже есть Zebra TC21

Tiger_77 Подменю пользователя
сообщение 07.02.24, 14:20
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 2 раз
Рейтинг: 2

Richevil @ 09.11.23, 18:16 * ,

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

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

замість "com.dwexample.ACTION" напишіть "barcode_event"

Сообщение отредактировал Vofka - 07.02.24, 19:32

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.04.24, 13:21
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!