Многофункциональная компонента для мобильной платформы: широковещательные сообщения (broadcasts), буфер обмена (clipboard), Bluetooth

10.11.25

Разработка - Разработка внешних компонент

Компонента получает широковещательные оповещения, может получать/помещать текст и отслеживать изменения буфера обмена, а также осуществляет связь с bluetooth устройствами с последовательным доступом. Рекумендуется для использования с лазерными и bluetooth сканерами терминалов сбора данных. Предназначена для ОС Андроид.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Конфигурация с компонентой и примером ее использования (рел. 1.3.6)
.cf 6,06Mb ver:1.3.6
591 6 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Новое в релизе 1.3.6

Добавлена поддержка API 35. При запуске компоненты на версиях андроид начиная с Tiramisu в API registerReceiver введен дополнительный параметр, а с Upside down cake он обязателен. Поэтому компонента старых релизов на новых версиях ОС не может работать.

Новое в релизе 1.3.4

С момента публикации прошло несколько лет. Чтобы поддержать новые выпуски ОС Андроид выпущен этот релиз компоненты. Никаких функциональных изменений он не содержит, код просто перекомпилирован новыми инструментами и сделаны косметические изменения для удовлетворения измененным стандартам API Андроида. Рекомендуется новым пользователям или у кого есть проблемы после перехода на новые версии Андроида.

Новое в релизе 1.3.3

Исправлена ошибка повторной генерации внешнего события при использовании XML формата.

Новое в релизе 1.3.2

В сообщение внешнего события о получении широковещательного сообщения добавлена возможность вывода данных в формате json (см. параметр OutputFormat). В более ранних релизах использовался xml, который иногда не читался (по отзывам отдельных пользователей) средствами 1С (ЧтениеXML) из-за представления некоторых символов в виде &...;.

Новое в релизе 1.3

  1. Теперь все компоненты сборки поддерживают стандарт 1С требований по разработке драйверов 3.3 поскольку фирма 1С выпустила библиотеку подключаемого оборудования для мобильных приложений, поддерживающую этот стандарт. Изменения коснулись, в основном, общих требований к разрабатываемым драйверам. Удален метод ПолучитьНомерВерсии. Вместо него необходимо использовать ПолучитьРевизиюИнтерфейса. Метод ПолучитьОписание содержит только один параметр, который возвращает структуру xml (см. здесь). Состав и параметры общих методов мобильных драйверов приведены к аналогичному составу и параметрам драйверов для стационарной платформы.
  2. Интерфейс компоненты буфера переработан с целью приближения к стандарту устройства ввода. Удалены свойство СодержимоеБуфера и метод УстановитьСодержимое. Вместо них следует использовать параметр Content и дополнительные действия GetClipboard и PutInClipboard.
  3. Добавлена компонента работы с bluetooth: поиск и подключение устройств, взаимодействие по протоколу последовательного доступа (com over bluetooth).
  4. Демострационная конфигурация сделана более наглядной. Теперь для показа работы каждой компоненты используется отдельная форма:

 

Замечание об архитектуре

Стандарт подключаемых драйверов 1С требует, чтобы поставка драйвера отдельным архивом содержала только один драйвер и, соответственно, один объект AddIn. Цитата из документации: "Внешняя компонента для работы с подключаемым оборудованием должна содержать только один объект, реализующий расширение встроенного языка". В моей практике создания мобильных приложений такой подход часто приводил к катастофическому разрастанию размера приложения. Добавление функциональности к существующей компоненте обычно увеличается ее суммарный размер (apk+so файлы) на 10-20%, в то время как следование правилам стандарта приводит к линейному росту от числа компонент. Исходя из этого, данная разработка нарушает стандарт для удобства применения и развертывания приложений с представленной компонентой.

Широковещательные оповещения

Продолжение статьи автора о внешних компонентах для мобильных приложений, в которой представлен развернутый пример компоненты получения широковещательных оповещений в андроиде (broadcasts). Идею ее создания подсказала работа //infostart.ru/public/587908/, в которой был предложен универсальный получатель сообщений от сканеров, но решение выполнено через сервис, хотя ничто не мешает оформить его в виде компоненты. Архитектурный выигрыш несомненный, но главные удобства получает пользователь, которому нужно будет установить только приложение 1С без дополнительного ПО.

Для подключения компоненты используем стандартный код:

// Component - имя макета, в котором находится компонента

ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native);
Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");

Так как решение полностью выполнена по стандарту 1С (устройство ввода), установка параметров выполняется методом "УстановитьПараметр", включение и выключение - "Подключить" и "Отключить" соответственно. Параметр, который обязательно нужно установить - "FilterName", это имя оповещения. Для сканеров его необходимо взять из документации. Также можно использовать любые системные броадкасты, например отсюда. В примере конфигурации к статье представлен способ получения информации о батарее устройства. Следующий важный параметр - "CaptureData". В него следует передать XML строку с описанием извлекаемых дополнительных данных оповещения. Для удобства ее можно получить, вызвав метод "ПолучитьШаблонОписанияДанных", который возвращает строку:

<?xml version="1.0" encoding="utf-8"?>
<dataExtra name="%1" arrayToString="%2" dataType="%3" />

Она содержит три параметра в формате %n, чтобы ее было удобно использовать в методе "ПодставитьПараметрыВСтроку" из БСП. Первый параметр - имя дополнительных данных. Второй должен иметь значения true или false и используется только для обработки массива байт или символов (см. ниже). Третий параметр - число, тип извлекаемых данных в соответствии с таблицей:

Значение параметра Тип данных
0 строка
1 массив строк
2 short
3 массив типов short
4 long
5 массив типов long
6 int
7 массив типов int
8 float
9 массив типов float
10 double
11 массив типов double
12 символ
13 массив символов
14 байт
15 массив байтов
16 булево
17

массив типов булево

18

неподдерживаемый тип данных

19

Пустые данные (null)

(Типы последних двух строк могут возвращаться, если параметр CaptureData не задан, об этом режиме работы см. ниже).

Для массивов типов байт или символ параметр attayToString может быть установлен в true. В этом случает при получении дополнительных значений, они будут преобразовываться в строку. Это может пригодится для работы с некоторыми сканерами, которые возвращают результат в виде набора байтов. Покажем код установки параметров перед включением компоненты:

ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
health = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"health",XMLСтрока(Ложь),XMLСтрока(6));
Компонента.УстановитьПараметр("CaptureData",health);
tech = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"technology",XMLСтрока(Ложь),XMLСтрока(0));
Компонента.УстановитьПараметр("CaptureData",tech);
present = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"present",XMLСтрока(Ложь),XMLСтрока(16));
Компонента.УстановитьПараметр("CaptureData",present);
level = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"level",XMLСтрока(Ложь),XMLСтрока(6));
Компонента.УстановитьПараметр("CaptureData",level);

Какие данные необходимо получить мы определяем последовательными вызовами установки параметра CaptureData. Удалить или изменить этот набор после установки невозможно, для этого необходимо пересоздать объект компоненты.

Параметр "Category" позволяет добавить к намерению отбор по категориям. Его также можно устанавливать перед стартом отслеживания броадкастов несколько раз, если требуется отбор по нескольким категориям. Очистка набора категорий возможна только при пересоздании объекта компоненты.

Параметр "OutputFormat" управляет форматом вывода данных внешнего события, информирующего о приеме оповещения. Он числовой и может принимать значения: 0 - вывод в виде xml (значение по умолчанию) или 1 - json.

После включения компонента, как и любое устройство ввода, возвращает данные через внешнее событие 1С. Первый параметр события - серийный номер устройства, второй параметр имеет значение "UniversalBroadcastEvent", а третий - строка в выбранном формате. Вывод в XML имеет примерно такой вид:

<?xml version="1.0" encoding="utf-8"?>
<MessageData>
<FilterName>Имя оповещения, заданного параметром FilterName</FilterName>
<FilterData name="имя очередного параметра CaptureData">Значение дополнительных данных</FilterData>
<FilterData name="имя очередного параметра CaptureData">
<ArrayValue>элемент 1 массива данных</ArrayValue>
<ArrayValue>элемент 2 массива данных</ArrayValue>
</FilterData>
</MessageData>

Пример аналогичного вывода в формате JSON:

{
"FilterName":"Имя оповещения, заданного параметром FilterName",
"FilterData":
[{"имя очередного параметра CaptureData":"Значение дополнительных данных"},
{"имя очередного параметра CaptureData":["элемент 1 массива данных","элемент 2 массива данных"]}]
}

Как можно догадаться из примера, значения одиночных дополнительных данных возвращаются в тексте элемента <FilterData>, а массивов элементами <ArrayValue>.

Начиная с релиза 1.1.4 компонента поддерживает автоматическое определение всех возможных фильтров и возвращаемых типов данных. Чтобы включить такой режим, необходимо оставить параметр CaptureData пустым. В демонстрационном приложении перейдите на закладку "Фильтры событий" и оставьте категорию пустой. При возникновении события xml тэг MessageData не будет возвращать значений, но будет включать числовой атрибут datatype в соответствии с приведенной выше таблицей. Если событие будет иметь данные с пустым значением, тип которого невозможно определить, атрибут будет равен 19. Сложным типам, необрабатываемым компонентой, будет присвоен индекс 18.

<?xml version="1.0" encoding="utf-8"?>
<MessageData>
<FilterName>Имя оповещения, заданного параметром FilterName</FilterName>
<FilterData name="имя очередного параметра CaptureData" datatype="число - индекс типа из таблицы"/>
<!-- любое число тэгов FilterData -->
</MessageData>
{
"FilterName":"Имя оповещения, заданного параметром FilterName",
"FilterData":
[{"name":"имя очередного параметра CaptureData","datatype":число - индекс типа из таблицы},
...
]}

Приведем пример xml, возвращаемого батареей (android.intent.action.BATTERY_CHANGED) в режиме определения фильтров:

 

И в режиме определения заряда батареи:

 

Пользователи могут использовать конфигурацию из статьи для определения значений фильтров любых событий, если вручную отредактируют имя намерения и вызовут событие.

Буфер обмена

В версии 1.1 компоненты добавлена работа с буфером обмена Андроида (clipboard). Буфер позволяет выполнять операции вставки и извлечения (Copy/Paste) и может содержать данные типов текст, гиперссылка и намерение. Компонента содержит следующие параметры и дополнительные действия:

Для помещения текста в буфер обмена установите параметры Content и Label и вызовите дополнительный метод PutInClipboard. Компонента также в состоянии передать в 1С оповещение об изменении буфера любой программой или службой.

Подключение объекта буфера:

КомпонентаБуфер = Новый("AddIn.Broadcasts.Clipboard");

Объект Clipboard реализован по стандарту устройства ввода. Соответственно, имеет методы Подключить и Отключить. Получение содержимого буфера выполняется с помощью дополнительного действия GetClipboard. Сразу после его вызова компонента порождает внешнее событие ClipboardEvent. В третьем параметре оповещения находится текст из буфера обмена.

Работа с Bluetooth

Драйвер поддерживает следующие операции:

  • программное включение bluetooth, получение списка подключенных устройств, обнаружение доступных неподключенных устройств и их подключение;
  • работу с устройствами через последовательные чтение/запись (com over bluetooth). Чтение данных может выполняться синхронно, в этом случае приложение ожидает данные, пока они не появятся от устройства, а приложение останавливается. Либо асинхронно в двух режимах - по запросу и в фоне. В первом случае компонента проверяет наличие данных и если их нет, возвращает ошибку, во втором ответ от устройства проверяется постоянно в отдельном потоке и при появлении данных в 1С возникает внешнее событие. Последний режим удобен для работы со сканерами, например такими. Работа с блютуз добавлена в представленную компоненту, чтобы расширить область ее применения в отношение сканеров.

Рассмотрим сценарии использования bluetooth драйвера. Подключение объекта выполняется стандартно:

КомпонентаBluetooth = Новый("AddIn.Broadcasts.BluetoothCommunication");

Включение или выключение булевого параметра DiscoveryMode определяет в каком режиме мы будем подключать компоненту. Вначале рассмотрим режим поиска устройств (DiscoveryMode = Истина). В этом режиме после вызова метода Подключить компонента в фоновом процессе будет выполнять поиск всех доступных устройств и при их обнаружении передавать внешнее событие с именем DeviceDiscovered:

Данные об устройстве возвращаются в строке xml вида:

<BluetoothDevice Name="Any device" Address="01:01:01:01:01:01"/>

содержащей имя и mac-адрес устройства. О включении и завершении режима поиска дополнительно сигнализируют внешние события DiscoveringStarted и DiscoveringStopped. Когда DiscoveryMode установлен в Истина, прочие параметры не оказывают возвдействие на работу компоненты, кроме одного - AutoEnable. Он также содержит булево значение. Если его включить, а в настройках вашего устройства блютуз окажется выключенным, компонента попытается его включить, запросив разрешение у пользователя через стандартный диалог. Аналогичным образом блютуз может включатся и в режиме обмена данными.

Примечание: К сожалению, архитектура внешних компонент 1С для Андроид не позволяет оповещать мобильное приложение об ответах пользователя в стандартных диалогах. В данной работе это относится как к упомянутому диалогу активации блютуз, так и к выводимым компонентой запросам на дополнительное права администратора блютуз и диалогам на сопряжения устройств. В таких случаях компонента в методе Подключить возвращает ошибки с кодом 2001 или 1002. Разработчик мобильного приложения должен будет предложить пользователю подключиться повторно или реализовать какой-нибуть цикл с задержкой для повторной проверки результата подключения.

При работе драйвера в режиме коммуникации (DiscoveryMode=False) обязательна установка параметра Device (строка). Это может быть как mac-адрес, так и имя устройства. Несопряженные устройства при подключении будут вызывать стандартный системный диалог:

После подтверждения пользователя устройство будет добавлено в список сопряженных и подключено. Разрабочик мобильного приложения может также воспользоваться списком сопряженных устройств, который читается и возвращается в 1С при получении параметров (метод ПолучитьПараметры) в подчиненных элементах ChoiceList элемента Parameter с именем Device. Если устройство доступно и поддерживает коммуникацию по com-протоколу, после вызова метода Подключить, драйвер открывает потоки на запись и чтение.

Для записи (передачи данных) от мобильного приложения на устройство разработчик может воспользоваться

  • подходом, соответствующим стандарту внешних компонент: данные записываются в параметр InputData в формате строки Base64; передача происходит при вызове дополнительного действия SendData
  • более быстрым способом: вызвать метод ЗаписатьДанные (WriteData), который принимает два аргумента - номер устройства (возвращаемый при вызове Подключить, строка) и сами данные для записи с типом 1С ДвоичныеДанные. При частой коммуникации, понятно, что в этом случае скорость достигается за счет экономии в преобразованиях из base64 и обратно

Чтение данных, как было упомянуто выше, может выполняться в трех режимах, определяемых установкой параметра ReadMode. Если он равен 0, компонента будет ожидать данные от устройства бесконечно долго, и если их нет, блокировать основной поток. Если он равен 1, компонента проверяет наличие данных в потоке чтения. Если они есть, данные читаются, если нет - возвращается ошибка 2013 (в методе ReadData). Установка параметра в значение 2 включает асинхронный режим чтения, когда появление данных будет вызывать внешнее событие DataReceived, а сами данные возвращатся в третьем параметре события в виде строки base64. В асинхронном режиме последовательность чтения и записи не определена, то есть невозможно гарантировать, что данные, отправленные на устройство окажутся там раньше или позже прочитанных данных. Технически чтение инициализируется методом ПрочитатьДанные (ReadData). Первый параметр, как обычно, логический номер устройства, во второй возвращаются данные в виде двоичных данных 1С. Добавленные в платформу в последних релизах мощные средства работы с двоичными данными в виде потоков, позволят разработчику перекодировать их в строки с любыми кодировками при необходимости. Параметр DirectRead (булево) во включенном состоянии указывает драйверу порождать внешние события DataReceived при каждом получении данных. Понятно, что он имеет смысл для режимов 0 и 1. В асинхронном режиме внешнее событие возникает в любом случае. Его установка как и при чтении немного замедляет работу драйвера, если Вы работаете с синхронным устройством в режиме 0, внешние события будут лишними. Для режима 0 используется еще один параметр BufferSize. Это число - размер буфера чтения в байтах. Если размер данных превышает установленный размер буфера, чтение будет успешно выполнено несколько раз до исчерпания данных.

В режиме последовательной коммуникации (ReadMode=0), с помощью этой компоненты можно запрограммировать работу многих синхронных устройств, например, кассовых аппаратов. В моем багаже имееется несколько компонент для мобильной платформы 1С, предназначенных для ККМ, поддерживающих технологию блютуз. Командный протокол для них "зашит" в код самой компоненты, но я не вижу препятствий для реализации команд устройств, используя саму 1С платформу и эту внешнюю компоненту.

О примере

Макет компоненты из конфигурации, прилагаемой, к статье не содержит дополнительных разрешений (permissioms). Если они требуются для получения конкретных оповещений, их можно добавить в архив макета компоненты (включить файл android_manifest_permissions.xml) и собрать приложение.

Конфигурация и внешняя компонента предназначены для работы с релизом мобильной платформы не ниже 8.3.15.59.  Допускается также работа с релизами, начиная с 13-го, но для этого необходимо вручную отредактировать манифест компоненты в архиве и удалить поддержку 64-битный платформ.

Вступайте в нашу телеграмм-группу Инфостарт

Оповещения Broadcasts Буфер обмена Clipboard Блютуз Bluetooth

См. также

Мобильная разработка Сканер штрих-кода Терминал сбора данных 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3050 руб.

03.12.2018    72927    250    108    

191

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Разработчик Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически. Решение предназначено для считывания штрихкодов, а не для их создания и печати.

3050 руб.

22.04.2019    124923    739    207    

391

Разработка внешних компонент Телефония, SIP Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

5246 руб.

04.05.2018    52186    128    68    

72

Разработка внешних компонент Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

5084 руб.

12.05.2020    34941    147    100    

103

Мобильная разработка 1С:Предприятие 8 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

"МРМ:Маркировка" для работы с конфигурациями 1С - готовое решение, позволяющее быстро автоматизировать работу учетной системы 1С на ордерном и безордерном складе при работе как с товарами, подлежащими обязательной маркировке, так и с товарами, учет которых построен на базе линейных штрих-кодов. Решение поддерживает большинство распространенных складских документов, необходимых для работы кладовщику на терминале сбора данных. Для начинающих пользователей имеется подробная инструкция по работе с приложением в разрезе видов документов.

19000 руб.

24.06.2025    4088    26    0    

4

Разработка внешних компонент Системный администратор Разработчик Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    8216    bayselonarrend    17    

54

Разработка внешних компонент Разработчик 1С:Предприятие 8 Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    13793    kovalevdmv    29    

84
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. efin 02.03.18 23:47 Сейчас в теме
Спасибо!
А исходники этой ВК можно увидеть?
Pozd; Flok; vasiliy_b; user1041486; PROF1L; +5 – Ответить
2. greyhedgehog 2 17.05.18 12:51 Сейчас в теме
Игорь, спасибо! Очень помогла компонента для работы со встроенным сканером в ТСД Honeywell EDA50K.
10. s.neumyvakin_2015 09.06.18 13:24 Сейчас в теме
(2)Добрый день! Напиши пожалуйста как ты настраивал компоненту. Четвертый день ума не могу дать ТСД Honeywell EDA50K
11. greyhedgehog 2 09.06.18 15:08 Сейчас в теме
(10) Там основные настройки надо на ТСД производить:

в ТСД:
Настройки --> Scan Settings --> Internal Scanner --> Default profile --> Data Processing Settings -->
Поставить галку Scan to Intent. Ткнуть в поле Data Intent (Именно в строку, а не в галку), откроются настройки Data Intent. Там поставить галку Data Intent и в поле Action вбить произвольное уникальное имя действия. Я ввел: "scan.rcv.message" (без кавычек).

Дальше, в конфигурации-примере Игоря, надо немного код изменить с батарейки на ШК:

В конфигурации, в общей форме FormMain можно прям в ПриСозданииНаСервере() прописать ИмяСобытия = "scan.rcv.message"; (этот имя события, которое задал в настройках ТСД, у меня это "scan.rcv.message").
А в процедуре ПриОткрытии() вместо строк с получением состояния батареи прописать поле "data", из которого получать данные:
barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"data",XMLСтрока(Ложь),XMLСтрока(0));
Компонента.УстановитьПараметр("CaptureData",barcode);
ka3a4ok; wild83; Nrk; konyashkingn; tricolor; temsan; +6 – Ответить
66. temsan 17.01.19 12:42 Сейчас в теме
(11) Заработало на ТСД Honeywell EDA50K. Спасибо! До этого были сомнения, т.к. другой сервис для Android? работающий чкерез локальные уведомления не взлетел на 8.3.13.50
390. konyashkingn 2 08.08.23 09:13 Сейчас в теме
(11) Привет из 23 года)

ТСД Honeywell EDA51 работает благодаря компоненте и твоим доработкам. Спасибо огромное!
400. Nrk 10 22.11.23 13:43 Сейчас в теме
Добрый день. Не смотря на время, ваш комментарий помогает! Спасибо автору и вам)))
3. greyhedgehog 2 17.05.18 16:41 Сейчас в теме
Поторопился похвалить. На мобильной платформе 8.3.11.61 на указанном выше устройстве (Android 4.4.4) после подключения компоненты (именно после нажатия кнопки "Старт" в форме) даже на чистом примере с определением состояния батареи непредсказуемо начинает жутко тормозить интерфейс или вообще "падает" приложение в течение нескольких десятков секунд. До подключения все работает. Не подскажете, возможно ли это исправить? Очень нужна стабильная работа на устройстве.
Спасибо.
4. IgorKissil 366 17.05.18 22:22 Сейчас в теме
Проверил на указанной платформе и 8-м андроиде - все ОК. Проверить на 4-м сейчас не могу. Но вполне допускаю, что могут быть проблемы. Я до сих пор держу два сборщика мобильных приложений под рукой, один "свежий", другой с платформой 8.3.9, ибо ТСД у одного клиента с 4м андроидом работают только с этой платформой.
5. greyhedgehog 2 17.05.18 23:47 Сейчас в теме
(4) Спасибо. Да, похоже дело в версии Андроида, на телефоне с 6-м работает, а на телефоне с 4-м такое же поведение. К сожалению ТСД на 4-м и ее не обновить, попробую с платформой 8.3.9 поэкспериментировать.
7. IgorKissil 366 29.05.18 07:44 Сейчас в теме
(5) Проверил на эмуляторе 4-го андроида - пример к статье работает. Увы, физических устройств с этой версией у меня нет. На терминале с 5-м адроидом тоже все в порядке.
8. IgorKissil 366 02.06.18 19:47 Сейчас в теме
(5) Обновил пример для новой мобильной платформы
70. KostyaBu 20 30.01.19 17:04 Сейчас в теме
Сканер использует datawedge, Сканер LPT82
В настройках datawedge стоит send Barcode data - clipboard (Есть еще keyboard )

пример с батарейкой работает превосходно.
Но совершенно не могу поймать Шк, Событие есть, а шк в XML нет. Прошу подсказки.

ИмяСобытия = "DATA_SCAN";
имя поля как написано выше "com.symbol.datawedge.data_string"

barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"com.symbol.datawedge.data_string",XMLСтрока(Ложь),XMLСтрока(8));
Компонента.УстановитьПараметр("CaptureData",barcode);

пожалуйста подскажите, что не так.
150. Meteorage 20 12.09.19 11:03 Сейчас в теме
(70) Приветствую! Ты решил свою проблему при помощи этой компоненты?
151. KostyaBu 20 12.09.19 14:43 Сейчас в теме
(150) и да и нет. сейчас часть терминалов использует эту обработку а часть самописную (написанную тоже благодаря бесплатной статье автора).Но насколько мне известно автор доработал функционал с буфером и все работает.
71. KostyaBu 20 30.01.19 17:56 Сейчас в теме
Сканер использует datawedge, Сканер LPT82
В настройках datawedge стоит send Barcode data - clipboard (Есть еще keyboard )

пример с батарейкой работает превосходно.
Но совершенно не могу поймать Шк, Событие есть, а шк в XML нет. Прошу подсказки.

ИмяСобытия = "DATA_SCAN";
имя поля как написано выше "com.symbol.datawedge.data_string"

barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"com.symbol.datawedge.data_string",XMLСтрока(Ложь),XMLСтрока(8));
Компонента.УстановитьПараметр("CaptureData",barcode);

пожалуйста подскажите, что не так.
6. IgorKissil 366 18.05.18 08:33 Сейчас в теме
попробуйте собрать под sdk ниже 25
9. greyhedgehog 2 09.06.18 09:38 Сейчас в теме
Спасибо. Обновленная версия примера работает стабильно, по крайней мере на имеющемся у меня телефоне с Android 5.0.1 и на ТСД с Android 7.1.1 проблем больше нет. На ТСД перенастроил компоненту на событие от сканера штрихкода, ШК перехватываются замечательно. Специально проверил на предмет описанных в некоторых статьях пропусков при сканировании ШК, у меня на ТСД не получилось заставить пример пропускать сканирования, даже при очень интенсивной работе, при последовательном сканировании нескольких ШК, все работало.
12. rem2222 28.06.18 13:56 Сейчас в теме
Добрый день, помогите пожалуйста. Установил на ТСД с андроид 4.4, интент ловит и батарейки и сканШК, но данных в них нет. Что можно с этим сделать? Прилагаю скан на Андр8 и на 4.4
Прикрепленные файлы:
286. 1cspec 125 05.02.21 00:29 Сейчас в теме
(12) Вы разобрались как отловить Штрихкод? Аналогичная проблема.
13. hobi 620 16.07.18 16:52 Сейчас в теме
Отличная компонента, на Honeywell EDA50 работает без проблем !
14. IgorKissil 366 16.07.18 18:11 Сейчас в теме
В версии 1.0.2 исправлена ошибка в компоненте, которая в редких случаях может вызвать утечку памяти
15. hobi 620 18.07.18 16:10 Сейчас в теме
Странное поведение компоненты.
Связь ТСД с компьютером через кабель (ADB.exe, Интернет тоже через кабель)

Сценарий 1:
Добавляю на мобильной платформе мобильное приложение, оно загружается на ТСД, сразу вхожу
пользовательский режим.
ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native)
отрабатывает успешно и впоследствии работает в этом приложении.

Сценарий 2:
После загрузки мобильного приложения на ТСД отключаю кабель, затем вхожу в пользовательский
режим.
ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native)
не отрабатывает ! И впоследствии не запускается.

Сценарии 1 и 2 запускал несколько раз, поведение не меняется, именно такое, как описано.
Такое ощущение, что при первом подключении компонента обращается к внешнему интернет-ресурсу
и начинает затем работать, только если этот ресурс был доступен.

Если доступ к сети интернет перекрыт службой безопасности, то использовать компоненту проблематично (
16. hobi 620 18.07.18 17:50 Сейчас в теме
(15)
Странное поведение компоненты

Такое поведение наблюдается и в собственном приложении и в приложении, загруженном из конфигурации broadcast.cf, размещенной в публикации.
17. IgorKissil 366 18.07.18 21:24 Сейчас в теме
(15) Никаких обращений к внешним ресурсам через интернет компонента не выполняет. Собирайте приложение сборщиком. Но если хотите запускать через платформу, для приложений с внешними компонентами есть нюансы, приложение должно быть опубликовано на сервере отладки и тогда действительно идет обращение в интернет.
TreeDogNight; user1021675; +2 – Ответить
18. hobi 620 19.07.18 06:43 Сейчас в теме
(17) Спасибо за ответ. Буду с нюансами бороться.
175. Azamatex 13 30.10.19 07:55 Сейчас в теме
(17)Я настроил сервер отладки (проверил, отладка идет), но ошибка компонента не подключена все равно выходит. Можно как-нибудь отключить этот нюанс?
TreeDogNight; kyzen1c; dmitry.jakunin; +3 – Ответить
387. TreeDogNight 22 04.05.23 13:44 Сейчас в теме
(175) Добрый день! Вам удалось решить эту проблему?

Уже неактуально, нашёл решение в (162)
67. pushking 9 21.01.19 10:29 Сейчас в теме
ТСД Caribe PL-40L (Android 7.0)

ИмяВнешнегоСобытия = "scan.rcv.message";

РезультатПодключенияВК = ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканераUniversalBroadcast", "Broadcasts", ТипВнешнейКомпоненты.Native);
Если РезультатПодключенияВК = Истина Тогда
	
	Попытка
		глВнешняяКомпонентаUniversalBroadcast = Новый("AddIn.Broadcasts.UniversalBroadcast")
	Исключение
		СтруктураОтвета.Вставить("Ошибка", "Ошибка создания класса ""UniversalBroadcast""!");
	Конецпопытки;
	
	Если НЕ глВнешняяКомпонентаUniversalBroadcast = Неопределено Тогда
		Попытка
			глВнешняяКомпонентаUniversalBroadcast.УстановитьПараметр("FilterName", ИмяВнешнегоСобытия);
			глВнешняяКомпонентаUniversalBroadcast.УстановитьПараметр("CaptureData", ОбщийМодульКлиентСервер.ПодставитьПараметрыВСтроку(глВнешняяКомпонентаUniversalBroadcast.ПолучитьШаблонОписанияДанных(), "barocode", XMLСтрока(Истина), XMLСтрока(15)));
		Исключение
			СтруктураОтвета.Вставить("Ошибка", "Ошибка при установке параметра ""CaptureData""!");
		Конецпопытки;
	КонецЕсли;
	
Иначе
	СтруктураОтвета.Вставить("Ошибка", "Ошибка подключения компоненты ""UniversalBroadcast""!");
КонецЕсли;
Показать
Mayak; chemezov; alexex; markers; +4 – Ответить
114. markers 279 20.06.19 13:53 Сейчас в теме
(67) Большое спасибо! Работает!
250. chemezov 50 21.07.20 14:17 Сейчас в теме
(114)Подскажите пожалуйста. Этот код вы исполняете где то при запуске 1с мобильного приложения или при открытии приложения у вас программно запускается форма и при открытии этой формы уже исполняется код?
248. chemezov 50 21.07.20 11:07 Сейчас в теме
(67) Подскажите пожалуйста. Этот код вы исполняете где то при запуске 1с мобильного приложения или при открытии приложения у вас программно запускается форма и при открытии этой формы уже исполняется код?
251. pushking 9 21.07.20 14:35 Сейчас в теме
(248)
ПередНачаломРаботыСистемы - вызывается инициализация и помещается в глобальную переменную.
ПриЗавершенииРаботыСистемы - устройство отключается.

Не забудьте что компоненты работают лишь в скомпилированном приложении.
252. chemezov 50 21.07.20 16:04 Сейчас в теме
(251) Большое спасибо, сейчас буду пробовать.
253. chemezov 50 21.07.20 16:35 Сейчас в теме
(251) А правильно ли я понял, что после инициализации, где нибудь в форме в которой мы будем находиться во время сканирования, мне надо слушать событие "ОбработкаОповещения" с именем события "scan.rcv.message"?
254. chemezov 50 21.07.20 16:46 Сейчас в теме
(251) Правили ли вы какой-нибудь манифест, как некоторые коллеги?
242. alexex 44 19.03.20 05:44 Сейчас в теме
Автору спасибо!

Caribe PL-55L

ИмяВнешнегоСобытия = "com.action.SCAN_RESULT";
	
	Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
		Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
		Компонента.УстановитьПараметр("FilterName",ИмяВнешнегоСобытия);
		ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
		barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"scanContext", XMLСтрока(Истина), XMLСтрока(15));
		Компонента.УстановитьПараметр("CaptureData",barcode);
		
		Если не Компонента.Подключить(НомерУстройства) Тогда
			ТекстОшибки = "";
			КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
			ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
		КонецЕсли;
				
	Иначе
		ПоказатьПредупреждение(,"Компонента не подключена",5);
		ЗавершитьРаботуСистемы(Ложь);
	КонецЕсли;
Показать
321. пользователь 16.07.21 12:54
Сообщение было скрыто модератором.
...
322. BALGAR 16.07.21 13:03 Сейчас в теме
(242)Добрый день! У меня тоже ТСД Caribe PL55L, но не могу поймать broadcast. Может проконсультируете меня как вы настроили свой ТСД. Напишите мне пожалуйста на почту dima.stanchevskiy@gmail.com
323. alexex 44 05.08.21 10:37 Сейчас в теме
(322) Просто режим сканирования broadcast. Вопрос, приложение собранное?
329. BALGAR 31.08.21 14:06 Сейчас в теме
(323)Приложение не собрано, будет ли оно работать если его опубликовать как мобильное приложение?
331. alexex 44 01.09.21 04:54 Сейчас в теме
(329) будет работать, только надо сконфигурировать веб сервер. см 162 сообщение
TreeDogNight; +1 – Ответить
332. BALGAR 01.09.21 07:27 Сейчас в теме
333. BALGAR 01.09.21 14:57 Сейчас в теме
(331) У меня веб сервер Apache, добавил в mime.types параметры (so apk dylib a). Опубликовал мобильное приложение, подключаюсь к нему, все нормально. Но при выполнении кода "Компонента.Подключить()" выдает код ошибки "0". Не получали такой ошибки? А если собрать APK файл. всё работает нормально).
19. NecroJew 07.08.18 13:19 Сейчас в теме
Добрый день!

Пробовал установить демонстрационное приложение на два устройства (в обоих случаях мобильная платформа 8.3.12.64, согласно вашей рекомендации):
1. ТСД Urovo V5100, Android 4.3
2. Чистый телефон Nexus 5, голый андроид 6.0.1

При выполнении команды Компонента.Подключить() приложение вылетает. На Андроиде 4.3 без отображения информации об ошибке, в 6.0.1 выдает следующий текст:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Intent android.content.Intent.addFlags(int)' on a null object reference
at com.iksoftware.unimes.BroadcastMessage$2.run(BroadcastMessage.java:283)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Не подскажете, в чем может быть проблема?
Спасибо.
s.neumyvakin_2015; +1 – Ответить
20. s.neumyvakin_2015 08.08.18 08:02 Сейчас в теме
(19) Добрый день!

У меня на ТСД Honeywell тоже самое, хотя на прошлой версии компоненты все работало.
21. IgorKissil 366 08.08.18 08:10 Сейчас в теме
(19) (20) Попробуйте эту версию компоненты, если она рабочая, обновлю пример в статье: https://1drv.ms/u/s!AnW7yKDG1JDfh8J5DM1-VL_mHAdDqg
22. s.neumyvakin_2015 08.08.18 10:25 Сейчас в теме
(21) Добрый день!
К сожалению ошибка осталась:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Intent android.content.Intent.addFlags(int)' on a null object reference
at com.iksoftware.unimes.BroadcastMessage$2.run(BroadcastMessage.java:283)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6130)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
NecroJew; +1 – Ответить
247. chemezov 50 20.07.20 06:26 Сейчас в теме
(19) Для Urovo есть нормальный драйвер. Можно на сайте скачать, либо в конфигурации 1С Мобильная касса в макетах. Я дл Urovo 5100 делал приложение в прошлом году, драйвер рабочий.
23. IgorKissil 366 08.08.18 11:13 Сейчас в теме
Тогда все сложнее. Я ошибку воспроизвести не могу, на доступных мне устройствах все работает. В моем коде даже нет такого места Intent.addFlags(int). Максимум что могу, это позже попробовать на эмуляторе nexusa.
107. s.neumyvakin_2015 03.06.19 08:01 Сейчас в теме
(23)
(105)
Добрый день!
К сожалению нет. Что то я наверное не так делаю раз у всех работает а у меня нет.
24. hobi 620 21.08.18 10:23 Сейчас в теме
Результат в виде XML-строки - это здорово.
Но недавно наткнулся на проблему обработки XML-строки платформой 1С.
Вот XML, полученный при считывании штрихового кода на образце упаковки сигарет:
<?xml version="1.0" encoding="UTF-8"?><MessageData><FilterName>com.android.server.scannerservice.broadcast</FilterName><FilterData name="m3scannerdata">010460026601181721"Nv>vM-91ffd0929ysTNw==24010053940</FilterData><FilterData name="m3scanner_code_type">DataMatrix</FilterData></MessageData>

В этом примере кода последовательность символов & # 2 9 ; при вставке кода в данном сообщении автоматически была заменена на собственно сам спецсимвол. Внешняя компонента возвращает именно представление спецсимвола & # 2 9 ; ( без пробелов, если пробелы убрать, получится  )

Код
	ЧтениеXML = Новый ЧтениеXML;
		ЧтениеXML.УстановитьСтроку(ТекстXML);
		Пока ЧтениеXML.Прочитать() Цикл
...
	

выбрасывает исключение. Спецсимвол с кодом 29 (представление
& # 2 9 ;
) платформой не обрабатывается.
Приходится вставлять "костыль" СтрЗаменить перед УстановитьСтроку.

Это просто константация факта, особенности обработки XML-представления данных, возвращаемых компонентой.
25. hobi 620 22.08.18 10:28 Сейчас в теме
Вопрос к Автору:
В связи с тем, что в составе данных широковещательного сообщения
может быть строка, содержащая символы, не обрабатываемые
платформой 1С (символ с кодом 29) в том случае, если строка
размещена в XML-формате, можно ли доработать компоненту
следующим образом:
- добавить параметр с типом булево: HexСтрокиВXML или Base64СтрокиВXML.
Чтобы при установке параметра в значение "Истина", компонента
возвращала в XML, в котором строчные значения преобразованы
в Hex или Base64.

Такая доработка позволила бы обойти текущую ошибку платформы 1С -
исключение при вызове ЧтениеXML.Прочитать() , если для ЧтениеXML
установлена строка, содержащая последовательность символов & # 2 9 ;
И, кроме того, для остальных символов с кодом, меньшим 32
(например символ ">") не придется обрабатывать значения строчных полей
СтрЗаменить(Поле, "& g t ;", ">"). Лучше уж один раз обработать и преобразовать
из Hex или Base64 в оригинальную строку.

?

Для иллюстрации проблемы - изображение этикетки на блоке сигарет.
Обработка строки XML, возвращаемой компонентой при чтении
кода DataMatrix с этикетки, вызывает исключение в платформе 1С
( ЧтениеXML.Прочитать() )
Прикрепленные файлы:
26. IgorKissil 366 22.08.18 13:44 Сейчас в теме
(25) Можно. По срокам пока ничего не скажу
user598655_ilia-bers; hobi; +2 – Ответить
27. PaulSharkoff 28.08.18 17:38 Сейчас в теме
Игорь, спасибо. Компонента отлично завелась на Zebra MC3300 (Andriod 7) на мобильном клиенте 8.3.12 для перехвата сообщений от DataWedge
34. user1024947 19.10.18 13:55 Сейчас в теме
(27)Добрый день

Помогите разобраться у нас оборудование почти как у Вас:
сбора данных: Zebra TC-20 на 7 андроиде

При сканирование ШК в обработчике "Внешнее событие" в переменную данные возвращается XML строка которая не содержит Штрих код

В обработчике при открытии barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"data",XMLСтрока(Ложь),XMLСтрока(8));
Компонента.УстановитьПараметр("CaptureData",barcode);
46. ared20 02.11.18 12:37 Сейчас в теме
(34) Вам удалось разобраться? У меня Zebra MC40. Тоже событие ловит, а данные пустые. Может поле должно не "data" называться?
48. user1024947 02.11.18 15:54 Сейчас в теме
(46) Да, удалось. Имя переменной для баркода "com.symbol.datawedge.data_string" , для типа баркода "com.symbol.datawedge.label_type".
50. ared20 02.11.18 16:14 Сейчас в теме
(48) Ну ничего себе имя... Заработало! Спасибо огромное!
57. adt 16.11.18 11:11 Сейчас в теме
(50) Добрый день, такая же проблема - подскажите, где и как задать имя переменной для для баркода и для типа баркода, никак не могу сообразить.
61. ared20 19.11.18 16:15 Сейчас в теме
(57) В обработчике при открытии barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"data",XMLСтрока(Ложь),XMLСтрока(8));
Компонента.УстановитьПараметр("CaptureData",barcode);

Вот здесь вместо "data" нужно написать то самое длинное имя "com.symbol.datawedge.data_string". Если нужен еще тип кода, то нужно установить еще один параметр и вместо "data" указать "com.symbol.datawedge.label_type".
TreeDogNight; adt; +2 – Ответить
100. vita8383 08.05.19 09:06 Сейчас в теме
(61) А вы манифест не правили? У меня при следующем коде, ШК не перехватывается:

Процедура ПриОткрытии(Отказ)

ИмяСобытия = "scan.rcv.message";

Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
		Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
		Компонента.УстановитьПараметр("FilterName",ИмяСобытия);
		ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"com.symbol.datawedge.data_string",XMLСтрока(Ложь),XMLСтрока(0)); 
		Компонента.УстановитьПараметр("CaptureData",barcode);
	Иначе
		ПоказатьПредупреждение(,"Компонента не подключена",5);
		ЗавершитьРаботуСистемы(Ложь);
	КонецЕсли;

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


Показать
28. SergeyPodolniy 12.09.18 09:24 Сейчас в теме
Добрый день!
Пытаюсь настроить компоненту на ТСД Zebra MC36, Android 4.4. Данные с батареи ловит, а со сканера - нет. Имя события в 1С прописал такое же, как в настройках сканера. Может ли проблема заключаться в том, что я неверное имя данных указываю в CaptureData? В документации к ТСД этой информации нет, разные варианты перепробовал и пока ничего не получается.
29. SergeyPodolniy 13.09.18 11:19 Сейчас в теме
(28) Нашел причину. Оказалось, что intent формируется с определенной категорией и чтобы его отловить нужно в фильтре эту категорию явно указать. Вопрос к автору, можно ли добавить в настройки компоненты параметр "FilterCategory" по аналогии с "FilterName"?
30. IgorKissil 366 17.09.18 11:31 Сейчас в теме
(29) В релиз 1.0.4 добавил параметр Category
31. Гость 18.09.18 07:40
47. ared20 02.11.18 15:44 Сейчас в теме
(29)А какая категория по умолчанию формируется? Или вы в Datawedge категорию указали? У меня тоже событие ловится, а данные не передаются.
32. SenFeron 02.10.18 19:19 Сейчас в теме
Добрый день.
После запуска приложения. Выдается сообщения "Компонента не подключена".
Подскажите пожалуйста, кто то встречался с данной проблемой?
Может кто подсказать как запустить компоненту?

ТСД Honeywell EDA50K
Android 7.1.1
Платформа 8.3.12.67

Пробовал сначала все выполнить по комментарию greyhedgehog (номер комментария - 11)

Потом поставил оригинальный из темы Cf , проблема осталась.
TreeDogNight; dbetsik; kyzen1c; chemezov; +4 – Ответить
43. menen 25.10.18 09:33 Сейчас в теме
(32) Вопрос не решили? Также не подключается ни на ТСД (PL-40 Android 7), ни на планшете (Huawei Andr 7) ...
TreeDogNight; dbetsik; kyzen1c; chemezov; +4 – Ответить
33. user1024947 19.10.18 13:37 Сейчас в теме
Добрый день

Подскажите пожалуйста что сделать.
Наше оборудование Терминал сбора данных: Zebra TC-20 android ver 7.1

В обработчике по открытии
Добавлено
barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"data",XMLСтрока(Ложь),XMLСтрока(0));
Компонента.УстановитьПараметр("CaptureData",barcode);

При сканирование ШК в обработчике "Внешнее событие" в переменную данные возвращается XML строка которая не содержит Штрих код
330. BALGAR 31.08.21 19:15 Сейчас в теме
(33) у Вас СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"data",XMLСтрока(Ложь),XMLСтрока(0));
а вы попробуйте СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"data",XMLСтрока(Истина),XMLСтрока(15));
35. menen 25.10.18 07:05 Сейчас в теме
Здравствуйте!
Игорь, пытаемся опубликовать скаченную конфигурацию (платформа 8.3.12.1685 32x в 64 WinОС) для проверки на ТСД - не получается - выдается ошибка следующего содержания:

"Ошибка разбора манифеста внешней компоненты Component: отсутствует обязательный атрибут name"

В чем может быть проблема?
36. IgorKissil 366 25.10.18 07:30 Сейчас в теме
(35) Я думаю, Вы пытаетесь собрать приложение на Windows 64? Взял cf из статьи и пересобрал сборщиком в Win10 64bit - все ОК.
41. menen 25.10.18 08:18 Сейчас в теме
(36) Платформа 1С 8.3.12 развернута на ноуте 64 Windows 7. Это как-то влияет?
42. menen 25.10.18 09:03 Сейчас в теме
(41) Развернул 1С на Win10 ошибка ушла.
Однако как и у (32) - компонента на ТСД НЕ подключается.

ТСД PL-40L (Caribe)
Android 7.0
Платформа 8.3.12.67
37. IgorKissil 366 25.10.18 07:33 Сейчас в теме
(35) Как Вы ее пытаетесь публиковать? На http сервере? Разобраться как это делать для приложений с компонентами у меня не хватило времени/терпения. Я все делаю через adb install
alexex; user1021675; +2 – Ответить
38. menen 25.10.18 07:57 Сейчас в теме
Из конфигуратора - Публикация мобильного приложения - на Веб-сервере (Apache 2.2)
39. menen 25.10.18 08:00 Сейчас в теме
(37) Игорь, пока планировали работать на мобильной платформе без сборки
40. menen 25.10.18 08:08 Сейчас в теме
(39) даже при записи конфигурации мобильного приложения в файл (для сборщика) выходит это сообщение
162. alexex 44 17.10.19 13:47 Сейчас в теме
(37)
Разобраться как это делать для приложений с компонентами у меня не хватило времени/терпения.


Во время публикации приложения в настройках http-сервера необходимо добавить типы MIME для следующих расширений: .so, .apk, .dylib, .a. Тип MIME: application/octet-stream.


рестарт web сервера
Прикрепленные файлы:
neyasytyf; TreeDogNight; SkorikA; +3 – Ответить
62. SagittariusA 23.11.18 11:45 Сейчас в теме
(35)
Платформа 8.3.12.1685
"Ошибка разбора манифеста внешней компоненты бла-бла..."
Такая ошибка вываливается почти на каждой компоненте.

В проблемных манифестах добавлял атрибут
<?xml version="1.0" encoding="UTF-8"?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle" name="com_1c_MobileBarcodeScanner">
  <component os="Android" path="libcom_1c_MobileBarcodeScanner_i386_1_0_3_2.so" codeType="c++" type="native" arch="i386" name="com_1c_MobileBarcodeScanner"/>
  <component os="Android" path="com_1c_MobileBarcodeScanner_1_0_3_2.apk" codeType="java" type="native" arch="i386" name="com_1c_MobileBarcodeScanner"/>
  <component os="Android" path="libcom_1c_MobileBarcodeScanner_ARM_1_0_3_2.so" codeType="c++" type="native" arch="ARM" name="com_1c_MobileBarcodeScanner"/>
  <component os="Android" path="com_1c_MobileBarcodeScanner_1_0_3_2.apk" codeType="java" type="native" arch="ARM" name="com_1c_MobileBarcodeScanner"/>  
</bundle>


По аналогии, как в комментарии (56)
44. Rokstedi 19 31.10.18 18:03 Сейчас в теме
Не срабатывает внешнее событие, хотя компонента подключается. Подскажите, приложение обязательно нужно собирать или можно опубликовать и подключиться с мобильной платформы?
45. Rokstedi 19 01.11.18 11:57 Сейчас в теме
(44)Все разобрался. Собрал приложение, заменил по инструкции интент фильтр и сообщения начали приходить.
160. volchica 4 16.10.19 12:13 Сейчас в теме
(45) можно подробнее.. у меня такая же ситуация, компонента подключается, а событие не срабатывает. Я публикую конфу и запускаюсь с моб.платформы (если это важно в данном случае).
"заменил по инструкции интент фильтр" - поясните что вы сделали..
161. Rokstedi 19 16.10.19 15:50 Сейчас в теме
(160)
нструкции интент ф

Нужно обизательно сборщиком приложение собрать и сборщику подсунуть платформу откорректированную. Иначе 1с морозится от этих броадкаст сообщений!
388. TreeDogNight 22 04.05.23 14:19 Сейчас в теме
(161) Неужели в режиме работы через публикацию никак не получится запустить? У нас архитектура базы такая, что для каждого отдельного пользователя / склада нужно создавать отдельную базу в списке баз мобильной платформы.
49. ared20 02.11.18 15:59 Сейчас в теме
Здравствуйте! ТСД Motorola MC40 на андоиде 5.1.1. На нем работа идет через Datawedge. Событие ловится, но в данные ничего не возвращает. А для батарейки все норм передает. Может ему имя поля "data" не подходит для этого ТСД? Подскажите в чем может быть причина.
51. ared20 02.11.18 16:49 Сейчас в теме
(49) Разобрался с помощью(46)
Да, удалось. Имя переменной для баркода "com.symbol.datawedge.data_string" , для типа баркода "com.symbol.datawedge.label_type".
TreeDogNight; +1 – Ответить
52. hobi 620 02.11.18 17:14 Сейчас в теме
Добрый день.
На платформе 1С:Предприятие 8.3.12.1685 перестала работать загрузка мобильного приложения через сервер.
Сообщение при попытке публикации мобильного приложения.
Ошибка разбора манифеста внешней компоненты Component: отсутствует обязательный атрибут
name

На предыдущих версиях 8.3.12 публикация завершается нормально.
53. ared20 02.11.18 18:49 Сейчас в теме
(52)Это наверное не через сервер, а если в конфигураторе по пути Конфигурация/Мобильноеприложение/Опубликовать . У меня тоже такая ошибка в этом случае. Но на web-сервере все публикуется без ошибок
54. hobi 620 09.11.18 09:47 Сейчас в теме
Манифест изменил, всё заработало.
SagittariusA; +1 – Ответить
55. kosten 68 14.11.18 10:53 Сейчас в теме
(54) Здравствуйте. Подскажите что необходимо изменить в манифесте, чтобы исправить ошибку "Ошибка разбора манифеста внешней компоненты Component: отсутствует обязательный атрибут name"?
56. hobi 620 15.11.18 16:59 Сейчас в теме
Это вариант у меня заработал:

<?xml version="1.0" encoding="UTF-8"?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle" name="com_iksoftware_unimes">
  <component os="Android" path="libcom_iksoftware_unimes_ARM.so" codeType="c++" type="native" arch="ARM" name="com_iksoftware_unimes"/>
  <component os="Android" path="unimes.apk" codeType="java" type="native" arch="ARM" name="com_iksoftware_unimes"/>
  <component os="Android" path="libcom_iksoftware_unimes_x86.so" codeType="c++" type="native" arch="i386" name="com_iksoftware_unimes"/>
  <component os="Android" path="unimes.apk" codeType="java" type="native" arch="i386" name="com_iksoftware_unimes"/>
</bundle>
swenzik; comptr; KAV2; SagittariusA; +4 – Ответить
58. adt 16.11.18 15:53 Сейчас в теме
Здравствуйте.
ТСД symbol mc32n0, Андроид 4.1.1
события приходят, но доп поля, указанные в параметрах CaptureData - в XML отсутствуют.
Тот же пример прогнал на телефоне с Андроид 5.1 - все пришло с параметрами.
Получается, что дело в версии андроида? У кого-нибудь заработало на 4.1.1?
59. IgorKissil 366 16.11.18 17:14 Сейчас в теме
(58) Думаю это потому что компонента собрана для андроида начиная с 19й версии (4.4). Будет время сделаю ребилд с 16-й.
92. arancheev.s 03.04.19 18:03 Сейчас в теме
59. IgorKissil 185 16.11.18 17:14
(58) Думаю это потому что компонента собрана для андроида начиная с 19й версии (4.4). Будет время сделаю ребилд с 16-й


Подскажите, еще ребилд с 16-ой не делали ? Очень нуно.
Спасибо.
93. IgorKissil 366 04.04.19 06:47 Сейчас в теме
(92) Сделан в последнем релизе около двух месяцев назад
94. arancheev.s 04.04.19 07:52 Сейчас в теме
(93)

Я прошу прощение. Не посмотрел информации перед тем как писать.
У меня Android 4 (API Level 14 насколько я понял). Вот с него есть возможность собрать компоненту. А то два ТСД есть с 4 и 4.1, события отлавливаются, а данные приходят пустые. Хотелось бы все терминалы на единую Вашу компоненту посадить.
(На 5.1 все норм)

Заранее большое спасибо.
95. IgorKissil 366 04.04.19 14:34 Сейчас в теме
(94) Если нет ограничений по используемому функционалу (в компоненте) сделаю
96. arancheev.s 04.04.19 15:46 Сейчас в теме
(95) Очень хочется использовать последние релизы 1с и одну компоненту на своих разных терминалах. Спасибо большое, буду ждать.
97. IgorKissil 366 09.04.19 10:25 Сейчас в теме
(96) Только что выложил релиз 1.1.1 под андроид API 14. После обновления публикации пробуйте.
102. vita8383 11.05.19 11:41 Сейчас в теме
(58) Добрый день, удалось победить проблему на данном устройстве?
60. Xershi 1566 16.11.18 18:08 Сейчас в теме
Добрый день!
Подскажите материалы как самому написать компоненту для андроида?
Вот в этой теме изучаю вопрос:
https://forum.infostart.ru/forum15/topic202825/
63. hobi 620 03.12.18 11:28 Сейчас в теме
Добрый день.
Можно ли каким-то образом использовать сборку из нескольких конфигураций, в каждую из которых встроена компонента сканирования ?
Пока только с одной конфигурацией в сборке заработало...
64. koupny 12.12.18 17:20 Сейчас в теме
Добрый день. А у кого то получалось отловить нажатия на встроенной клавиатуре?
249. chemezov 50 21.07.20 11:12 Сейчас в теме
(64)Не при помощи этой компоненты, да получилось.
256. AneJIbcuH 39 21.08.20 05:19 Сейчас в теме
(249) подскажите, с помощью какой ?
257. chemezov 50 21.08.20 10:36 Сейчас в теме
(256) https://infostart.ru/public/1039819/
Правда это не компонента. Это сервис в виде отдельного приложения, но все с ним работает.
65. koks17v 10 27.12.18 15:12 Сейчас в теме
Прекрасно, спасибо, работает идеально! А можно получить исходники?
68. Cube_krsk 34 28.01.19 11:21 Сейчас в теме
Спасибо! Классная компонента!
Использовал для сканирования штрихкодов на следующих ТСД: Honeywell EDA50 и HT380K.
На обоих ТСД проверил работоспособность под платформой 8.3.10.84 и 8.3.13.45 - работает на обоих. Поэтому, просьба автору: поставь режим совместимости в cf в значение "8.3.10" - проверено, работает.
69. IgorKissil 366 28.01.19 12:32 Сейчас в теме
(68) на всех релизах платформы до 12го была утечка памяти при генерировании внешних событий из внешних компонент а также приложение не выгружалось при закрытии. Если у Вас такого нет, наверное повезло с устройствами
72. WellMaster 106 01.02.19 09:09 Сейчас в теме
Шикарная компонента. Завелось практически сразу. Надо только разобраться в передаваемых параметрах.
Спасибо.
73. Cube_krsk 34 12.02.19 10:38 Сейчас в теме
Столкнулся с проблемой: компонена не умеет передавать русский шрифт в сообщениях. Приходят крякозябры.
Через другие приложения на ТСД русский текст сканируется со штрихкодов, а вот через компоненту приходят крякозябры.
76. IgorKissil 366 13.02.19 10:55 Сейчас в теме
(73) Кодировка XML устанавливается по дефолту из настроек ОС. Т.е. если у вас андроид настроен на русскую локаль все должно быть ОК (проверил). Другое дело если стоит английская или другая локализация. Возможно в будущих версиях добавлю программную настройку
87. Cube_krsk 34 26.02.19 09:13 Сейчас в теме
(73) В настройках сканера EDA50 стояла кодировка ISO 8859-1. Поставил UTF-8 и русский шрифт начал сканироваться нормально.
74. Cube_krsk 34 12.02.19 10:41 Сейчас в теме
Также неплохо было бы получать со сканера XML без обработки компонентой, так как я не знаю, как называются поля в XML, чтобы подставить их в ПолучитьШаблонОписанияДанных()...
guevara74; +1 – Ответить
75. IgorKissil 366 12.02.19 11:03 Сейчас в теме
(74) Что значит без обработки? XML формируется в компоненте
81. Cube_krsk 34 25.02.19 11:44 Сейчас в теме
(75) Немного не так выразился.
Неплохо было бы, чтобы компонента имела функцию, возвращающую массив имен доступных полей интента.
Вот тут есть пример: http://forum.infostart.ru/forum92/topic166842/message2034308/#message2034308

Имея такой массив, можно было бы заполнить им список выбора у поля на форме, чтобы пользователь не вбивал имя поля с клавиатура, а выбирал из списка.
83. IgorKissil 366 25.02.19 21:43 Сейчас в теме
(81) Но для этого необходимо вначале получить броадкастовое событие
84. Cube_krsk 34 26.02.19 04:44 Сейчас в теме
(83) Пусть хоть так. Сейчас вообще нет возможности получить список полей, доступных для отслеживания. Например, на ТСД EDA50 я никак не могу найти в интернете имя поля, возвращающего тип штрихкода (EAN13, EAN8, DataMatrix и т.д.). Занимаюсь брутфорсом... Причем безуспешно.
Поэтому я и писал в (74), что неплохо было бы получить XML, содержащий список всех возможных полей. А, если, этот список будет ещё и значения этих полей содержать - вообще будет шикардос!
Можно сделать в виде служебного поля "AllData" и при получении XML, она будет содержать всевозможные поля интента с их значениями.
77. z3dsd3ad 21.02.19 17:02 Сейчас в теме
Сканер АТОЛ Smart.Lite, не отлавливает событие сканирования, имя оповещения взял из настроек сканера, возможно неправильно указал категорию, можно уточнить в каком виде передается параметр категории?
78. z3dsd3ad 22.02.19 13:49 Сейчас в теме
Вопрос решен, не ловит оповещение, если неверно указан формат данных. Для АТОЛ SMART.LITE:
Компонента.УстановитьПараметр("FilterName", "com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST");
Компонента.УстановитьПараметр("CaptureData",СтрокаПараметров, "EXTRA_BARCODE_DECODING_DATA",
XMLСтрока(Ложь), XMLСтрока(0)));
user1021675; +1 – Ответить
79. Cube_krsk 34 25.02.19 07:14 Сейчас в теме
Наткнулся на нехорошую ошибку, которую научился воспроизводить со 100% результатом: если мобильное приложение удалить, заново установить и запустить, то стабильно через раз приложение падает с ошибкой:

java.lang.UnsatisfiedLinkError: dalvik.system.DexClassLoader[DexPathList[[zip file "/data/user/0/com.e1c.mobile/files/1C/1cem/76624a6c-6eb9-516e-b5f4-9ad5799f6cb6/ExtCompT/com_iksoftware_unimes.apk"],nativeLibraryDirectories=[/data/user/0/com.e1c.mobile/files/1C/1cem/76624a6c-6eb9-516e-b5f4-9ad5799f6cb6/ExtCompT, /system/lib, /vendor/lib]]] couldn't find "libcom_iksoftware_unimes.so"
	at java.lang.Runtime.loadLibrary0(Runtime.java:984)
	at java.lang.System.loadLibrary(System.java:1530)
	at com.iksoftware.unimes.BroadcastMessage.run(BroadcastMessage.java:46)
	at android.os.Handler.handleCallback(Handler.java:751)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6130)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Показать


Через раз - имеется ввиду, что каждый раз приложение удаляется и устанавливается заново из того же файла 1cema.xml, то есть каждый раз происходит первый запуск мобильного приложения.

Приложение простое с единственным кодом (закомментированный кусок оставил для наглядности, для воспроизведения ошибки он не нужен):

Процедура ПриНачалеРаботыСистемы()
	
	Если ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаШироковещательныхСообщений", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
		КомпонентаШироковещательныхСообщений = Новый("AddIn.Broadcasts.UniversalBroadcast");
		КомпонентаШироковещательныхСообщений.УстановитьПараметр("FilterName", "scan.rcv.message");
		//ШаблонОписанияДанных = КомпонентаШироковещательныхСообщений.ПолучитьШаблонОписанияДанных();
		//КомпонентаШироковещательныхСообщений.УстановитьПараметр("CaptureData", ОбщегоНазначенияКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияДанных, "data", XMLСтрока(Ложь), XMLСтрока(0)));
		//Если НЕ КомпонентаШироковещательныхСообщений.Подключить() Тогда
		//	ТекстОшибки	= "";
		//	КодОшибки	= КомпонентаШироковещательныхСообщений.ПолучитьОшибку(ТекстОшибки);
		//	ПоказатьПредупреждение(, "Компонента широковещательных сообщений не подключена по причине: " + КодОшибки + ", " + ТекстОшибки);
		//КонецЕсли;
		ПоказатьПредупреждение(, "Компонента широковещательных сообщений успешно подключена");
	Иначе
		ПоказатьПредупреждение(, "Компонента широковещательных сообщений не подключена");
	КонецЕсли;
	
КонецПроцедуры
Показать


При последующих запусках приложения (не первых), всё работает стабильно и ошибок нет.

Проверял на платформах 8.3.13.45 и 8.3.10.84, ТСД EDA50 (android 7.1.1) и HT380K (android 6.0) - в любых комбинациях ТСД и платформы поведение одинаковое.
80. Cube_krsk 34 25.02.19 08:06 Сейчас в теме
(79) После продолжительных тестов, выяснил, что если перед удалением мобильного приложения закрывать мобильную платформу и выгружать её из памяти через диспетчер приложений, то ошибок нет.

Теперь наиболее вероятным я вижу сценарий, что при ПодключитьВнешнююКомпоненту() создаётся временный файл, куда сохраняется компонента из макета и при закрытии приложения платформа остаётся запущенной и не освобождает этот файл, поэтому после удаления приложения, его установки и запуска, происходит крах платформы и она закрывается, освобождая этот несчастный файл.
Поэтому и падает приложение через раз: после падения платформы, она выгружается из памяти и файл освобождается, что позволяет один раз удалить приложение, установить его и запустить, а последующий удаление, установка и запуск приводят к краху платформы и всё повторяется.
82. IgorKissil 366 25.02.19 21:41 Сейчас в теме
(80) На 8.3.10 такое поведение действительно наблюдалось, вот почему я рекомендую использовать с внешними компонентами платформу не ниже 12-й. Но описанная ошибка связана не с этим. Если перед деинсталляцией приложения Вы очистите его данные - проблема исчезнет. Подозреваю, что платформа компоненты не считает составной частью приложения и оставляет их в файловом кэше. Новая установка вызывает конфликт, и компонента коррекно не разворачивается.
85. Cube_krsk 34 26.02.19 04:45 Сейчас в теме
Ну, и раз пошла такая пьянка, то совсем не понятны телодвижения с методом компоненты "ПолучитьШаблонОписанияДанных" - зачем он нужен? Что, нельзя было для параметра "CaptureData" сделать так же, как для параметра "FilterName" - передаешь значение и всё, остальные телодвижения делает компонента внутри?
86. Cube_krsk 34 26.02.19 06:42 Сейчас в теме
(85) Прошу прощения за сей пост - забыл, что компонента общая для любых бродкастов, а не только для сканера штрихкодов...
88. koks17v 10 12.03.19 15:53 Сейчас в теме
Добрый день. Несколько FilterName и CaptureData нельзя указать?
89. koks17v 10 13.03.19 07:48 Сейчас в теме
(88) Опытным путем понял, что устанавливается только последний FilterName. Вышел из ситуации ухищрениями с разными CaptureData при одинаковом Action. Не планируется ли это развитие?
90. IgorKissil 366 13.03.19 10:54 Сейчас в теме
(89) FilterName может быть только один. Но ничто не мешает создать несколько экземпляров AddIn.UniversalBroadcast
91. bashinsky 156 26.03.19 07:59 Сейчас в теме
Добрый день!
В чем может быть ошибка при создании объекта?
Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");

Пишет
Тип не определен (AddIn.Broadcasts.UniversalBroadcast)

Версия мобильного приложения 8.3.14.53
Версия андроида 7.1.1
355. TryToRun 01.11.21 16:22 Сейчас в теме
(91)Как удалось обойти ошибку?
98. arancheev.s 09.04.19 12:46 Сейчас в теме
Добрый день. Есть у кого-нибудь возможность проверить версию 1.1.1 на Android 4 ?
События отлавливаются, но данные пустые.

Спасибо заранее.
99. user1041486 22.04.19 03:50 Сейчас в теме
А можно получить исходники ВК?
101. shmel78 11 08.05.19 14:56 Сейчас в теме
Выражаю огромную благодарность автору разработки!
Успешно завелся ТСД - ZEBRA MC36 Android 4.4
Мобильная платформа 8.3.13.64

Для тех кто будет пользоваться -
ИмяСобытия - можно настроить в ScanConfig (стандартная утилита настройки сканера)
Category - можно настроить в ScanConfig (стандартная утилита настройки сканера)

ИмяСобытия = "com.symbol.scanconfig.SCANDEMO";
Компонента.УстановитьПараметр("FilterName",ИмяСобытия);
Category = "com.symbol.category.DEFAULT";
Компонента.УстановитьПараметр("Category",Category);
barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"com.symbol.scanconfig.decode_data",XMLСтрока(Ложь),XMLСтрока(0));
Компонента.УстановитьПараметр("CaptureData",barcode);

Респект автору!
103. s.neumyvakin_2015 15.05.19 16:33 Сейчас в теме
Добрый день!

ТСД Honeywell EDA50K
Версия мобильного приложения 8.3.12.64
Версия андроида 7.1.1

При запуске приложения из примера пишет компонента не подключена. В чем может быть причина? Подскажите пожалуйста.
105. user1041486 31.05.19 11:04 Сейчас в теме
(103)Разобрались в проблеме?
108. s.neumyvakin_2015 03.06.19 16:40 Сейчас в теме
104. Evgeniy_gnedov 22.05.19 14:03 Сейчас в теме
Развернул cf, опубликовал конфигурацию на apache сервере и подключил ТСД Атол smart lite. Использую мобильный клиент. Платформа 8.3.14.53

При запуске ошибка:
"Файл не обнаружен \data\user\0\com.e1c.mobile.client\files\1cem\-------\ExtCompT\libcom_iksoftware_unimes.so.cfl"

Пробовал выдернуть из конфигурации компоненту и установить ее через apk, но ошибка не уходит, хотя компонента устанавливается.

Что и где подкрутить, чтобы заработало?
210. HAMAZ 8 17.12.19 15:22 Сейчас в теме
(104)После некоторых танцев с бубном, жертвоприношений и групповых молитв было обнаружено следующее поведение в мобильном клиенте на андроид 8 -
подключаем ВК первый раз на базе1 - все работает. Пытаемся подключить ВК на базе 2 и ловим ошибку:"Файл не обнаружен \data\user\0\com.e1c.mobile.client\files\1cem\-------\ExtCompT\libcom_iksoftware_unimes.so.cfl"
Теперь компонента будет работать только с базой1. Чтобы заработало в базе2 - сносим платформу, устанавливаем и подключаем ВК в базе2.
База1 в таком случае не сможет установить компоненту. Полагаю, что дело в самой платформе (8.3.15.1656)
A7758735; toxilamer; scherbyna; +3 – Ответить
223. comptr 57 27.01.20 15:08 Сейчас в теме
(104) (210) решение описано в (56) - поправить манифест, добавив атрибут "name" в каждую запись "component", т.е.
было
<component os="Android" path="unimes.apk" codeType="java" type="native" arch="ARM"/>

стало
<component os="Android" path="unimes.apk" codeType="java" type="native" arch="ARM" name="com_iksoftware_unimes"/>

На всякий случай, если кто не знает, как поправить манифест - выгружаете компоненту из конфигурации в файл в виде архива, например, "component.zip", распаковываете полученный архив, правите файл "MANIFEST.XML", собираете файлы обратно в архив и загружаете его обратно в конфигурацию.
ka3a4ok; SuperMuper; +2 – Ответить
225. HAMAZ 8 28.01.20 08:54 Сейчас в теме
106. mega 77 01.06.19 20:11 Сейчас в теме
Спасибо за труд! очень помогли. взлетело без проблем. АТОЛ Smart.Lite . Платформа 8.3.14.53. Android 7.0
109. herfis 525 04.06.19 11:42 Сейчас в теме
Успешно получаю сканирование с Zebra TC25 через extra data "com.symbol.datawedge.data_string", автору респект.
110. user598613_svp_gamma 33 05.06.19 00:40 Сейчас в теме
Спасибо за труд! Очень помогла компонента. Сканер ТСД Honeywell EDA50K работает. Не подскажете, почему при сканировании штрихкода отсекается последний символ... Подозреваю, что где то в настройках, но не могу найти. Заранее признателен
111. herfis 525 06.06.19 12:42 Сейчас в теме
Поторопился похвалить :( При работе через мобильный клиент с файловой базой опубликованной на веб-сервере все отлично.
При попытке же работы с этой же базой, но клиент-серверной - падает при подключении к внешней компоненте с ошибкой
Файл не обнаружен
'\data\user\0\com.e1c.mobile.client\files\1C\1cem\595d4e06-1d25-fa92-0dea-9b19560ed6b4\ExtCompT\libcom_iksoftware_unimes.so.cfl'.2 (0x00000002)
112. IgorKissil 366 06.06.19 12:55 Сейчас в теме
(111) Внешняя компонента взаимодействует с мобильным движком 1С. Если все ее файлы корректно развернуты в папке ExExtCompT, то ей абсолютно без разницы, работает ли приложение или клиент. Следовательно, в Вашем случае скорее всего проблемы либо с 1С либо с конфигурацией вашей системы. Сообщение говорит, что библиотека компоненты недоставлена по назначению.
113. herfis 525 06.06.19 13:25 Сейчас в теме
(112) Ура! Помогло исправление манифеста как в (56). Релиз платформы - 12.
Подозреваю, это неочевидные багофичи интерпретации манифеста на разных версиях платформы.
Т.е, пока не был прописан атрибут name для конкретной платформы, почему-то именно в клиент-сервере мобильный клиент сохранял библиотеку не под этим именем.
115. bavkyz 4 21.06.19 12:01 Сейчас в теме
Для АТОЛ SMART.LITE:
Компонента.УстановитьПараметр("FilterName", "com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST");
Компонента.УстановитьПараметр("CaptureData",СтрокаПараметров, "EXTRA_BARCODE_DECODING_DATA",XMLСтрока(Ложь), XMLСтрока(0))

Не могу понять почему не работает , сборщик не использую, Платформа 8.3.64
116. bavkyz 4 24.06.19 08:53 Сейчас в теме
1.
(115)
Платф

Сам себе отвечу

ИмяСобытия = "com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST"
		
		Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
		Компонента.УстановитьПараметр("FilterName", ИмяСобытия);
		
		ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();		
		
		CaptureData = "EXTRA_BARCODE_DECODING_DATA";
		barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,CaptureData,XMLСтрока(Ложь),XMLСтрока(0));
Показать


работает на Атол Smart Lite начиная с версии 8.3.11 и выше (ниже не пробовал), обязательно надо собрать приложение в APK.

2. у меня есть еще один аппарат Атол Smart Droid, проверка батарейки работает. Не могу поймать событие по ScanWedge
ИмяСобытия = "DATA_SCAN";
CaptureData = "DATA_STRING";
, может кто разобрался ....
user831148; +1 – Ответить
148. WellMaster 106 29.08.19 14:58 Сейчас в теме
(116) Для чего обязательная сборка в APK?
167. Azamatex 13 28.10.19 18:00 Сейчас в теме
(116) с Атол Smart Droid смогли разобраться?
172. bavkyz 4 30.10.19 04:41 Сейчас в теме
(167)
атьс


Я через буфер обмена сделал.
174. Azamatex 13 30.10.19 07:10 Сейчас в теме
(172)попробуйте "com.hht.emdk.datawedge.data_string" у меня на АТОЛ Smart.Touch получилось.
117. bavkyz 4 26.06.19 06:18 Сейчас в теме
118. ared20 28.06.19 15:27 Сейчас в теме
Добрый день! Кто знает имя переменной для ТСД CipherLAB RK25. Не могу событие поймать.
119. bavkyz 4 01.07.19 04:58 Сейчас в теме
(118)
erLAB RK

Посмотрите в настройках сканера.
120. ared20 01.07.19 11:26 Сейчас в теме
(119) В тот то и дело, что нет там таких настроек
121. bavkyz 4 01.07.19 14:53 Сейчас в теме
(120) у меня есть один аппарат, там тже нет настроек , пока незнаю что делать. Попробую найти apk которая отвечает за настройки и декомпелировать, может что и получится
122. tricolor 159 15.07.19 11:27 Сейчас в теме
(121)удалось найти имя события для cipherlab?
123. tricolor 159 15.07.19 13:54 Сейчас в теме
Может кому пригодится, сам разбирался полдня, для CipherLab 9700A:
ИмяСобытия = "com.cipherlab.barcodebaseapi.PASS_DATA_2_APP";
barcodeCipher = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"Decoder_Data",XMLСтрока(Ложь),XMLСтрока(0));
Компонента.УстановитьПараметр("CaptureData",barcodeCipher);
user831148; eeeio; eaa; dbachinsky; +4 – Ответить
180. dbachinsky 358 01.11.19 23:59 Сейчас в теме
(123)
barcodeCipher = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"Decoder_Data",XMLСтрока(Ложь),XMLСтрока(0));
Компонента.УстановитьПараметр("CaptureData",barcodeCipher);


Спасибо тебе добрый человек. Тоже пол дня убил пока не нашел твой комментарий!
366. eaa 21.04.22 12:03 Сейчас в теме
(123)
Decoder_Data

Спасибо! Заработало на CipherLab RK25
Спасибо всем кто оставляет свои полезные комментарии!
Спасибо автору за труд!
(123)
124. herfis 525 22.07.19 13:02 Сейчас в теме
Есть огромное пожелание по развитию компоненты - добавить возможность не только перехватывать интенты, но и посылать их.
В 1С есть для посылки интентов ЗапускПриложенияМобильногоУстройства(), но насколько я понял через него можно послать не любой интент. У тех же ТСД Zebra есть DataWedge API, позволяющий с помощью интентов управлять сканером. Ни один из этих интентов не получилось послать через ЗапускПриложенияМобильногоУстройства(), в то время как из простейшего андроид-приложения это делается элементарно.
125. bavkyz 4 24.07.19 04:43 Сейчас в теме
(123) Как получилось добыть данные?
128. IgorKissil 366 08.08.19 16:45 Сейчас в теме
(124)Для управления Zebra посмотрите https://infostart.ru/public/1043267/ Отправку интентов как будет время возможно добавлю
130. herfis 525 09.08.19 09:30 Сейчас в теме
(128) Ооо! Спасибо огромное!
126. Pim 190 03.08.19 20:08 Сейчас в теме
Добрый день.
Хорошая компонента. Я прикрутил её к мобильному клиенту. Платформы (моб. и серверная) 8.3.14. ТСД Honeywell EDA50. Но есть 2 вопроса.
1. Настроил всё на тестовой базе. Всё хорошо. При подключении 2-ой базы появляется ошибка "Файл не обнаружен..." на моменте подключить внешн. компоненту (см. картинку).
2. Никак не могу завести на 2-м терминале Zebra. Я попробовал, как написано в комментариях, но ничего не вышло. Может быть, проблема с настройкой Data wedge...
Прикрепленные файлы:
127. Pim 190 08.08.19 12:56 Сейчас в теме
(126).
2-ой вопрос снят.
Для тех, кто как я не сразу "въехал" то, о чём писали коллеги, выкладываю полный текст для Зебры:
Компонента.УстановитьПараметр("FilterName", "scan.rcv.message");
if модельТСД = ПредопределенноеЗначение("Справочник.DCT_МоделиТСД.Zebra_TC8000") then
/// Zebra TC8000
Компонента.УстановитьПараметр("Category", "android.intent.category.DEFAULT");
ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
ТипМетки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "com.symbol.datawedge.label_type", XMLСтрока(Ложь), XMLСтрока(0));
barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "com.symbol.datawedge.data_string", XMLСтрока(Ложь), XMLСтрока(0));
Компонента.УстановитьПараметр("CaptureData", ТипМетки);
/// ---
else///If модельТСД = ПредопределенноеЗначение("Справочник.DCT_МоделиТСД.Honetwell_EDA50") then
/// Honeywell EDA50
ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "data", XMLСтрока(Ложь), XMLСтрока(0));
/// ---
endIf;

Компонента.УстановитьПараметр("CaptureData", barcode);
129. mrAndy 09.08.19 08:31 Сейчас в теме
Подскажите, будет ли работать эта компонента в связке Bluetooth сканер + смартфон/планшет? Если да, то есть ли какие-то требования к сканеру?
131. Grivba 15 12.08.19 15:22 Сейчас в теме
Уточните,
Что делать для устройств с процессором ARM64?

По какой то причине не подключается компонента при запуске 1с "1cem-arm64".

Как решить эту проблему?
132. IgorKissil 366 12.08.19 15:53 Сейчас в теме
(131)Поддержка 64 бит появилась в релизе платформы 8.3.15, который вышел меньше недели назад
133. Grivba 15 12.08.19 16:23 Сейчас в теме
(132) Все верно. Вот только Гугл требует в публикациях наличие 64. Потому и вопрос.
Т.к. на 64 битной 1с компонента не запускается
134. IgorKissil 366 13.08.19 06:13 Сейчас в теме
(131)Компоненты под 64 бит перекомпилил. Но 1С как всегда "радует". Сборщик мобильных приложений 15-го релиза не работает с приложениями, содержащими внешние компоненты. Не создаются папки в темпах для 64-разрядных версий компоненты. (Справочник MobileConfigurations, форма ItemForm, строка 311 - там нужно наверное дописать вроде

CreateDirectory(ComponentFolder + "Android\ARM64\");
CreateDirectory(ComponentFolder + "Android\x86_64\");

Не исправлял и не факт, что не будет проблем дальше. Подождем рабочего релиза.
135. Grivba 15 13.08.19 16:42 Сейчас в теме
(134) Принято. Вы обновляли публикацию?
На данный момент это не критично, необходим запуск и тестирование в разработке. Будем ждать нормального сборщика. С 1с будем уже разбираться.

Сейчас гугл отказывается выкладывать АПК без х64
137. Grivba 15 19.08.19 11:14 Сейчас в теме
(134) Игорь, Как можно получить перекомпелированную версию компоненты?
138. IgorKissil 366 19.08.19 17:46 Сейчас в теме
(137)Выложу позже как вернусь из отпуска. Вы можете дать ссылку на ваше приложение в макете?
139. Grivba 15 22.08.19 18:01 Сейчас в теме
(138) Да конечно. Думаю тут выкладывать на форуме нельзя (вдруг реклама), в личку отправить не получается.
141. Grivba 15 22.08.19 18:03 Сейчас в теме
(138) На проверке у модератора
136. asdfgcom 450 14.08.19 13:05 Сейчас в теме
Великолепно!
Работает на моб. платформе 8.3.14.78
Настройки для сканеров ZKC. Они же Vioteh.
Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда

ИмяСобытия = "com.zkc.scancode";

Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
Компонента.УстановитьПараметр("FilterName",ИмяСобытия);
ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
code = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"code",XMLСтрока(Ложь),XMLСтрока(0));
Компонента.УстановитьПараметр("CaptureData",code);


Теперь пытаюсь отловить нажатия на кнопки. Знаю, что должен кидать broadcast нажатий и отпусканий. Неясно что ставить в фильтр.
142. Grivba 15 27.08.19 09:21 Сейчас в теме
(136) Тут лучше через лог просмотреть в отладчике.
143. asdfgcom 450 27.08.19 09:42 Сейчас в теме
(142) LogCat имеется в виду? Да. Так и сделаю. Не ясно можно ли в этой ВК ставить 2 фильтра на разные broadcast'ы.
К примеру
ИмяСобытия1 = "com.zkc.scancode";
ИмяСобытия2 = "android.view.KeyEvent"; //это неправильно. Просто для примера.
144. IgorKissil 366 27.08.19 18:47 Сейчас в теме
В релизе 1.1.3 добавлена поддержка 64-битных платформ
145. Grivba 15 28.08.19 13:17 Сейчас в теме
(144) Спасибо. Будем тестировать.
Игорь, присоединюсь к вопросу "asdfgcom". Возможно ли поддержание нескольких фильтров??
147. Grivba 15 28.08.19 16:42 Сейчас в теме
(144) Черт не могу скачать............
146. adapter 463 28.08.19 13:54 Сейчас в теме
Всем привет, посмотрел различные решения по теме сканера для Андроид - кажется это лучшее. Попробовал на ТСД dsic-ax (DS5), там уже встроена утилита Barcode Tray - заработало идеально, спасибо!
149. Vladimir45 90 03.09.19 10:05 Сейчас в теме
Игорь, мы можем пообщаться по поводу добавления ещё двух режимов работы в компоненту?
152. Tlrd 16.09.19 11:18 Сейчас в теме
При добавлении в сборщике, платформа 8.3.15.1489, система ругается на ошибку перемещения файлов из папки temp пользователя com_iksoftware_unimes.apk
Подскажите, где исправить
Версия сборщика 2.0.10.55
Прикрепленные файлы:
153. Tlrd 17.09.19 12:19 Сейчас в теме
154. Vortigaunt 102 01.10.19 15:31 Сейчас в теме
Скачал последнюю версию компоненты. При подключении все равно выдает ошибку, как будто она не поддерживает 64 бит.
155. IgorKissil 366 01.10.19 16:15 Сейчас в теме
(154)Ну как-бы текст ошибки обо всем говорит правильно (пытаемся загрузить 32bit компоненту, причем для x86 :) вместо нужной). А почему так? А потому что 1С издевается как ей вздумается. Сборщик приложений 15-го релиза тасует файлы как хочет, файлы компонент все перепутаны. (посмотрите apk как zip - по размеру все поймете). Более того, перепутаны иконки, тексты конфигураций из apk теперь можно свободно читать. Такое впечатление, что элементарное тестирование у них отсутствует.
Я уже плюнул на это, перешел на xamarin.
156. пользователь 03.10.19 22:31
Сообщение было скрыто модератором.
...
157. Bertruger 04.10.19 12:21 Сейчас в теме
Подскажите FilterName на acode a420, не могу на него найти документацию.
158. Bertruger 04.10.19 13:42 Сейчас в теме
Пробую стандартный пример по батарейке на 8.3.13. Делаю:
Если не Компонента.Подключить(НомерУстройства) Тогда
ТекстОшибки = "";
КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
Сообщить(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
КонецЕсли;

По отладчику заходит в это условие, но Код ошибки и текст ошибки пустые. как определить проблему ?
159. Bertruger 04.10.19 22:18 Сейчас в теме
Выше я описывал способ установки базы через публикацию (Ранее я всегда так делал, внешняя компонента rsdriver всегда нормально становилась). Пробовал на 3х устройствах ТСД acode a420 ( Андроид 4.1), ТСД UROVO (Андроид 5) Планшет Huawei (Андроид 7).
И везде Компонента.Подключить = Ложь.

Сейчас всё переделал под 1с сборщик apk. Создал приложение. Приложение стало вылетать на
Компонента.УстановитьПараметр("CaptureData" - Просто вылетает на экран андроида. Только комментируешь, всё запускается без ошибок и Компонента.Подключить дает истину.
163. asdfgcom 450 25.10.19 10:52 Сейчас в теме
Приветствую. Качал компоненту 14.08.19
Были ли изменения с того момента? При запуске на МП 8.3.14.78 Андроид 7.1 ругается на ошибку формата потока. На Андроид 5.1 загружается и работает без проблем.
164. Azamatex 13 26.10.19 15:27 Сейчас в теме
Добрый день. АТОЛ Smart.Touch. Не могу решить проблемку).
При использовании "AddIn.Broadcasts.UniversalBroadcast" событие сканирования у меня перехватывается, но самого штрихкода я не вижу. Что нужно прописать чтобы вышел штрихкод?
При использовании "AddIn.Broadcasts.Clipboard" событие тоже отрабатывает, и даже показывает штрихкод, но там не отрабатывает FilterName, и соответственно попадает весь мусор. Вопрос как все таки наложить фильтр?
Из двух способов для меня конечно предпочтительнее чтобы заработал первый).
165. Azamatex 13 27.10.19 14:02 Сейчас в теме
"FilterName", "DATA_SCAN"
"CaptureData", ? - что тут нужно написать?
173. Azamatex 13 30.10.19 07:08 Сейчас в теме
(165)Может кому пригодится, для АТОЛ Smart.Touch - "com.hht.emdk.datawedge.data_string"
302. Virsy 22.03.21 12:09 Сейчас в теме
(173)
Спасибо. На АТОЛ Smart.PRO тоже получилось.
Intent: "DATA_SCAN"
Scan Data Label: "com.hht.emdk.datawedge.data_string"
guevara74; +1 – Ответить
305. guevara74 08.04.21 16:04 Сейчас в теме
(302)
Scan Data Label: "com.hht.emdk.datawedge.data_string"

Спасибо тебе человечище!!!
После перепрошивки эти поделки имени Атола перестали работать с com.hht.datawedge.data_string

Вопрос: а как я должен был догадаться, что надо emdk добавить? может кто-то поделиться сакральными знаниями?
166. НовенькийЯ 28.10.19 17:35 Сейчас в теме
Добрый день.
Пытаюсь настроить ТСД, в логе вижу картинку, но не понимаю что писать в настройках компоненты.

10-28 16:50:27.181   767 10111 E ActivityManager: 	at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:20019)
10-28 16:50:27.181   767 10111 E ActivityManager: 	at android.app.ContextImpl.sendBroadcast(ContextImpl.java:971)
10-28 16:50:27.181   767 10111 E ActivityManager: 	at com.android.server.ScanService.SendScanData(ScanService.java:826)
10-28 16:50:27.181   767 10111 E ActivityManager: 	at com.android.server.ScanService.-wrap1(Unknown Source:0)
10-28 16:50:27.181   767 10111 E ActivityManager: 	at com.android.server.ScanService$Task.run(ScanService.java:1409)


пробовал FilterName="com.android.server.ScanService"
И FilterName="com.android.server.ScanService.SendScanData"
По похоже это все не то.
Запросил у китайцев информацию, может они что подскажут - но это маловероятно.
А вообще может кто настраивал вот такие ктайЦкие ТСД - ни в коем случае не реклама, просто нарвался на такие и уже вторые сутки не могу их с 1С подружить.
171. НовенькийЯ 29.10.19 16:36 Сейчас в теме
(166)
В обще сам спросил и сам отвечу.
С данной ВК не смог разобраться. Точнее в какой то момент смог получить внешнее событие, но без данных, просто XML с именем моего инвента.
В общем плюнул на эту затею и пошел искать дальше тут нашел как вызвать внешнее событие в 1С, ну то есть тупо поймать 1 интен и отправить другой.
а вот тут описание, как подправить манифест мобильной платформы.
Все заработало, единственная проблема, что я использую 3 разных вида оборудования, терминалы двух видов и блюпупные сканеры ШК.Поэтому 3 apk разные приходится держать под рукой
Осталось теперь найти прогера, который соберет все 3 компоненты в одну ВК для мобильной платформы.
280. pa_dima 07.12.20 23:10 Сейчас в теме
(166) Разобрался с этими аппаратами, у них FilterName scan.rcv.message, FilterData barocode, datatype = 15, тогда ШК получает

<?xml version="1.0" encoding="UTF-8"?><MessageData>
<FilterName>scan.rcv.message</FilterName>
<FilterData name="barocode">
<ArrayValue>49</ArrayValue>
<ArrayValue>49</ArrayValue>
<ArrayValue>48</ArrayValue>
<ArrayValue>48</ArrayValue>
<ArrayValue>48</ArrayValue>
<ArrayValue>48</ArrayValue>
<ArrayValue>49</ArrayValue>
<ArrayValue>55</ArrayValue>
<ArrayValue>50</ArrayValue>
<ArrayValue>48</ArrayValue>
<ArrayValue>56</ArrayValue>
<ArrayValue>51</ArrayValue>
<ArrayValue>53</ArrayValue>
</FilterData>
</MessageData>

Только еще нужно декодировать из ASCII, но это просто
168. Azamatex 13 29.10.19 11:06 Сейчас в теме
Народ, подскажите пожалуйста, как мне узнать имя параметра для установки в CaptureData?
169. Flok 3 29.10.19 13:57 Сейчас в теме
(168) попробуйте EXTRA_BARCODE_DECODING_DATA
170. Azamatex 13 29.10.19 13:59 Сейчас в теме
(169)пробовал, не помогает(
176. IgorKissil 366 30.10.19 16:58 Сейчас в теме
Учитывая сложности при работе с недокументированными устройствами, добавил возможность анализа фильтров событий из компоненты
181. asdfgcom 450 07.11.19 20:16 Сейчас в теме
(176) Уточните, пожалуйста по поводу анализа фильтров. Это значит, что не зная наперед фильтры, такие как "health, technology, present..." из примера с батареей, можно получить их при инициализации компоненты?
Бьюсь с очередным устройством, где
			Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
			ИмяСобытия = "com.bw.scanservice";
			Компонента.УстановитьПараметр("FilterName",ИмяСобытия);


Точно работает, но, не зная фильтров - непонятно как поймать событие.
177. Flok 3 01.11.19 10:23 Сейчас в теме
Коллеги , кто нибудь знает , может ли данная компонента отлавливать нажатия аппаратных клавиш терминала сбора данных - Например F1,F2, ENTER , ESC ?
Эти сообщения так же передаються как Broadcast Event или другим способом ?
178. IgorKissil 366 01.11.19 14:36 Сейчас в теме
179. Flok 3 01.11.19 16:36 Сейчас в теме
(178) Понятно , компонента , значит не подойдет .
Буду искать компоненту перехвата клавиш.
231. AneJIbcuH 39 13.02.20 12:31 Сейчас в теме
(179) вы случайно не нашли компоненту перехвата клавиш?
232. Flok 3 13.02.20 13:39 Сейчас в теме
(231) Готовой насколько помню не нашел, надо писать свою. Задача притормозилась и я не продолжал поиски .
182. termo 13.11.19 15:10 Сейчас в теме
Есть 2 практически одинаковых ТСД Zebra. На первом стоит 7-й Андроид, на втором 8.1. И на Андроиде 7 все работает, а на Андроиде 8.1 нет. Внешнее событие в 1С не вызывается. Причем перестала работать и эта внешняя компонента и мой простенький "перехватчик" событий сканера который передавал данные в 1С. Я подозреваю что это произошло из-за того что в Андроид 8.1 запрещена регистрация приемников широковещательных сообщений в манифесте. Помогите пожалуйста решить проблему !
183. Ivan093 13.11.19 20:51 Сейчас в теме
Господа, а будет эта компонента (и вообще нативные компоненты 1с) работать на мобильном клиенте 1с под андроид (не платформе!), никто не пробовал?
186. herfis 525 18.11.19 18:17 Сейчас в теме
(183) Эта будет. Я пробовал.
209. Flok 3 09.12.19 10:12 Сейчас в теме
(183) Я использовал именно для этого , у меня работает на мобильном клиенте
184. asdfgcom 450 14.11.19 17:53 Сейчас в теме
Скачал 1.1.4
Мобильная платформа 8.3.15.62
Андроид 5.1.1
Размер файла компоненты 1.1.4 1644Кб
Код:
		
ИмяСобытия = "android.intent.action.BATTERY_CHANGED";

		Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Макет", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
			Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
			Компонента.УстановитьПараметр("FilterName",ИмяСобытия);
			НомерУстройства = Неопределено;
			Если не Компонента.Подключить(НомерУстройства) Тогда
				ТекстОшибки = "";
				КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
				ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
			Иначе
				ID_BarcodeScanner = НомерУстройства;
			КонецЕсли;
		Иначе
			ПоказатьПредупреждение(,"Компонента не подключена",5);
			ЗавершитьРаботуСистемы(Ложь);
		КонецЕсли;
Показать


Внешнее событие возвращает:
<?xml version="1.0" encoding="UTF-8"?><MessageData><FilterName>android.intent.action.BATTERY_CHANGED</FilterName></MessageData>


Планировал получить значения фильтров.
185. asdfgcom 450 17.11.19 15:25 Сейчас в теме
(184) Для ТСД Global POS GP-C5000.
			ИмяСобытия = "com.android.scanservice.scancontext";
			Компонента.УстановитьПараметр("FilterName",ИмяСобытия);
			ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
			Scan_context = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"Scan_context",XMLСтрока(Ложь),XMLСтрока(0));
			Компонента.УстановитьПараметр("CaptureData",Scan_context);


3 дня. Все перепробовал. Component 1.1.4 - не заработал ни под 8.3.14, ни под 8.3.15. Пробовал и на Андроид 5, и на Андроид 7.
Пришлось слить ScanService.APK, Развернуть в Андроид Студии и методично просматривать код.
Всем, кому интересно, вот, примерно, так ищутся интенты.
Прикрепленные файлы:
195. plutonii 03.12.19 22:45 Сейчас в теме
(185) Приветствую. По подробнее не расскажешь, как нашел? так же открыл свой demo.apk не могу найти(
187. Alien_job 194 20.11.19 17:54 Сейчас в теме
Спасибо, заработало!
188. ildar_muh 26.11.19 13:40 Сейчас в теме
Добрый день! ТСД Атол Smart Lite не перехватывает событие полный код обработки:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	Если не ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
		ПоказатьПредупреждение(,"Компонента не подключена",5);
		ЗавершитьРаботуСистемы(Ложь);
	КонецЕсли;
	
	ИмяСобытия = "com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST";
        
    Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
    Компонента.УстановитьПараметр("FilterName", ИмяСобытия);
    ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();        
    CaptureData = "EXTRA_BARCODE_DECODING_DATA";
    barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,CaptureData,XMLСтрока(Ложь),XMLСтрока(0));
	Компонента.УстановитьПараметр("CaptureData", barcode);
	Если Не Компонента.Подключить() Тогда
		Сообщить("Не удалось подключить компоненту");
	КонецЕсли;

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

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)

	Сообщить("Событие вызвано");
	Сообщить(Данные);
	
КонецПроцедуры

Показать


Платформа 8.3.16.1063,мобильная платформа 8.3.15.62. Пробовал и мобильное приложение и мобильный клиент. Отдельно устанавливал на ТСД com_iksoftware_unimes.apk. В настройках сканирования установил Data Receive Method BROADCAST_EVENT. Кроме этого ничего не делал.

Также пробовал реализовать через буфер обмена следующим образом:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	

	ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native);
	Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
	КомпонентаБуфер = Новый("AddIn.Broadcasts.Clipboard");
	КомпонентаБуфер.Подключить();
	
КонецПроцедуры

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)

	Сообщить("Событие вызвано");
	Сообщить(Данные);
	
КонецПроцедуры

Показать


В настройках сканирования установил Data Receive Method CLIPBOARD_EVENT. При сканировании приложение завершается с ошибкой. также если просто любой текст скопировать вылетает с ошибкой. Но если не подключать компоненту, свойство СодержимоеБуфера отражается корректно.

Прошу помочь разобраться
189. plutonii 29.11.19 17:04 Сейчас в теме
Здравствуйте.
Попробовал запустить компоненту под мобильной платформой мобильная - 8.3.13.45.
ОС - Винда 7 х64
Сборщик - релиз 2.0.8.19 под платформой 8.3.13.1690 (32 разряда)
мобильная - 8.3.13.45
Терминал Атол Смарт Дройд
В архиве компоненты как автор говорит удалил строки для 64 разрядной и в манифесте тоже такие же строки удалил, залил в макет двоичный в конфе
написал строки при открытии формы на клиенте

Если Не ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
			ПоказатьПредупреждение(,"Компонента не подключена",5);
			ЗавершитьРаботуСистемы(Ложь);
		КонецЕсли;
		
		//ИмяСобытия = "com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST"; //смарт лайт
		ИмяСобытия = "com.hht.emdk.datawedge.data_string"; //смарт дройд
		
		Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
		Компонента.УстановитьПараметр("FilterName", ИмяСобытия);
		ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();        
		//CaptureData = "EXTRA_BARCODE_DECODING_DATA"; //смарт лайт
		CaptureData = "DATA_STRING"; //смарт дройд
		barcode = ОбщегоНазначения.ПодставитьПараметрыВСтроку(ШаблонДанных,CaptureData,XMLСтрока(Ложь),XMLСтрока(0));
		Компонента.УстановитьПараметр("CaptureData", barcode);
		Если Не Компонента.Подключить() Тогда
			//Сообщить("Не удалось подключить компоненту");
			ТекстОшибки = "";
			КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
			ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
		КонецЕсли;
Показать


Приложение при открытии вываливается в ошибку "Ошибка формата потока"...
Я вижу тут есть, у кого под 13 платформой работай, не поделитесь - какие манипуляции надо делать?

Если закомментировать подключение компоненты - то приложение открывается.
190. asdfgcom 450 03.12.19 12:14 Сейчас в теме
(189) Попробуйте загрузить компоненту не через двоичные данные, а Макет - Внешняя компонента
191. asdfgcom 450 03.12.19 13:13 Сейчас в теме
(189) И еще. Не уверен, что это Ваш вариант, но все-же...
Ранее использовал Компоненту 1.1.2, которая работала. Попробовал подгрузить 1.1.4. Она не заработала у меня ни на 14, ни на 15 платформе.
Вернул компоненту 1.1.2. Она тоже перестала работать.
ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native)

Возвращала Ложь с обеими компонентами.
Не знаю, что помогло из этих действий:
- Снес IIS, поставил Apache (удобнее, быстрее)
- Переустановил платформу 14 на Андроид.
- Установил Платформу 14 на ПК.
- Переопубликовал приложение.
Черт его знает. Мне кажется ВК где-то кэшируется на Андроиде. Непонятно как, но 1.1.2 после 1.1.4 снова заработала только после всех этих действий.
192. plutonii 03.12.19 14:21 Сейчас в теме
(191) я поставил сборщик 15 мобильной платформы, засунул последнюю компоненту через механизм внешних компонент. Скомпилировал и ошибка эта пропала, но и компонента не отрабатывает. Вы не знаете, как выяснить "имя события" и "CaptureData" для терминала АТОЛ SMART.DROID?
Как поймать эти события, те которые тут писали не подходят, внешнее событие не срабатывает. А конфигурация автора на этом терминале работает по аккумуляторной батарее, у него событие внешнее срабатывает.
И буфер при сканировании приложения автора отрабатывает, туда сканируемый штрихкод попадает.
193. asdfgcom 450 03.12.19 17:28 Сейчас в теме
(192) На форуме было для Атола. Поищите в этой ветке. Для Атол находил здесь, работало!
А почему сборщиком? Ведь в отладке ничего не видно. Непонятно, работает внешнее событие или нет.
Вам удалось запустить 1.1.4?
194. plutonii 03.12.19 21:41 Сейчас в теме
(193) Да, мне удалось на 15 платформе запустить. Атол атолу рознь, тут только для Смарт Лайт есть, для смарт дройд не канает, что тут выкладывали.
Зачем отладка, на ТСД через сообщить всё прекрасно видно. Я не разбирался, как с ТСД в отладку входить(
196. plutonii 04.12.19 11:44 Сейчас в теме
Смотрю по поддержке эта ветка похоже умерла( хотя направление перспективное.... жаль. Но вдруг разработчик почтит своим внимание всё же... подружил я Атол Смарт Дройд с этой ВК.
Использовал мобильную платформу 15 и соответственного её сборщика.
Через "UniversalBroadcast" на штрихкодах типа "code128", где помимо цифр и латиницы используются спецсимволы - ВК определила "<" как "& lt;" и ">" как "& gt;" (пробелы вставил, так как веб страница их тут же переводит в знаки больше и меньше) - на фото видно что это за символы. Хотя через буфер отработала ВК в читабельном виде. Но это я думаю уже особенности xml и назначения имен в этой среде. Поэтому надо будет кто использует такие штрихкода помимо парсинга в функции учитывать такого рода символы и разбирать их самому, чтобы получить строковое значение самого штрихкода.
В прикрепленном файле штрихкод <EMP>-1 и видно как его отработала ВК.
И еще остался вопрос, почему если используешь два фильтра "FilterName" и "CaptureData" - через "Данные" сразу не возвращать значение? ПО аналогии с типовой компонентой для сканера штрихкода? Чтобы строковое значение xml потом не парсить?
Прикрепленные файлы:
197. IgorKissil 366 04.12.19 12:43 Сейчас в теме
(196) Сообщения в этой ветке я периодически просматриваю. Иногда, благодаря пользователям, реализую хорошие идеи как в (176). Но как я могу оказывать поддержку по любым устройствам? У меня их физически нет.
199. plutonii 04.12.19 15:52 Сейчас в теме
(197) (176) идею уже заценил, мне помогло.
198. IgorKissil 366 04.12.19 12:48 Сейчас в теме
(196) Если Вы получаете xml, работать с ним необходимо с помощью ЧтениеXML или DOM. Парсить вывод как текст не совсем корректно.
200. plutonii 04.12.19 15:59 Сейчас в теме
(198) в том то и дело, что я не могу понять, внешнее событие в "данные" возвращает тип - xml или строковое представление в структуре XML? а на счет символов html - то это от устройства не зависит, если вы сгенерируете code128 с символами, например, больше или меньше - (< ил >) - то ваша компонента вернет их как на фото в посте (196).

Я на примере просто выводил "Сообщить" на ТСД, так как не смог попасть в отладку.
201. asdfgcom 450 04.12.19 18:54 Сейчас в теме
(200) Вот мой разбор штрихкода из XML.
Поставил его в общий модуль ОбщегоНазначенияКлиент. Вызываю из любой формы по внешнему событию для расшифровки ШК.

&НаКлиенте
Функция РасшифроватьСообщение(Данные) Экспорт
	Струк = Новый Структура("Источник,Данные");
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(Данные);
	ПостроительDOM = Новый ПостроительDOM;
	ДокументDOM  = ПостроительDOM.Прочитать(ЧтениеXML);
	Для Каждого Элемент Из ДокументDOM.ЭлементДокумента.ДочерниеУзлы Цикл
		Если Элемент.ИмяЭлемента = "FilterData" Тогда
			Для Каждого Атрибут Из Элемент.Атрибуты Цикл
				Если Атрибут.Значение = "Scan_context" Тогда
					ШК = Элемент.ПервыйДочерний.Данные;
					Струк.Вставить("Источник", "СканерШтрихкода");
					Струк.Вставить("Данные", ШК);
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
	КонецЦикла;
	Возврат Струк;
КонецФункции
Показать


Внимание на:
Если Атрибут.Значение = "Scan_context" Тогда
Вместо "Scan_context" ставите свой интент-фильтр!
202. plutonii 04.12.19 22:01 Сейчас в теме
(201) спасибо за функцию - тоже через DOM в своё время делал загрузку с сайта. Если используете штрихкод code128 c символами типа "больше" или "меньше", то надо будет прикручивать еще функцию перевода из символов xml в читабельный вид
203. plutonii 05.12.19 00:16 Сейчас в теме
(202) если разбирать через DOM xml, то символы корректные. Проверил на code128
204. asdfgcom 450 05.12.19 09:39 Сейчас в теме
(202) Если будете использовать для чтения DataMatrix, в штрихкодах на лекарственных препаратах используется спецсимвол, вызывающий ошибку разбора xml. Надо будет делать проверку извлекать его и вставлять обратно по окончании разбора.
205. plutonii 05.12.19 11:53 Сейчас в теме
(204) Лекарства нет, а вот обувь предстоит еще. А что за символ можно по подробнее? Можно в личку, чтобы тут эфир не засорять не по теме
206. komubata 05.12.19 15:31 Сейчас в теме
Добрый день. Помогите, пожалуйста, разобраться. Есть bluetooth сканер urovo r70. Не знаю где искать имя события его сканирования, чтобы заполнить FilterName
207. пользователь 06.12.19 15:21
Сообщение было скрыто модератором.
...
208. user766222 06.12.19 15:25 Сейчас в теме
Как подключить данную компоненту на термнале сбора данных Zebra MC33?
Помогите, плз...
211. Turbokey 53 30.12.19 06:15 Сейчас в теме
Большое спасибо автору за компоненту и статья. Очень актуально, в свете платных продуктов для ТСД.
Вопрос по ТСД ATOL Smart.lite. Пробовал чистый пример от автора запустить на ТСД в режиме мобильной платформы. Не собирал конфигурацию с apk. Установил платформу, опубликовал конфигурацию для мобильной платформы. На ТСД конфигурация запускается, но выдает ошибку «Компонента не подключена».
В комментариях выше видел, что есть какая-то тонкость запуска примера без сборки.
Поделитесь хитростью. Пожалуйста.
P.S. При сборка в apk компонента подключается и ловит события.
212. HAMAZ 8 02.01.20 15:20 Сейчас в теме
(211) Имеете ввиду, что запускаете мобильный клиент? Если да, то компонента подключается на 32-х битном клиенте без проблем. Но! работает только с одной базой, в которой компонента была установлена первой. В других отказывается, ссылаясь на то, что не может найти файлы по пути из манифеста. Лечится удалением и повторной установкой мобильного клиента
214. FaithNoMore 11.01.20 19:38 Сейчас в теме
(211) Согласен. Автор - велик, идея и реализация - супер!
Герман, если хотите, могу кинуть работающую на указанном ТСД конфигурацию. Только как-то сообщите мне почту или ещё какой-то контакт. Мож это как-то Вам поможет.
user1041486; +1 – Ответить
215. user1041486 22.01.20 12:13 Сейчас в теме
(214) Можете и со мной поделиться работающей конфигурацией на указанном ТСД?
216. FaithNoMore 22.01.20 18:47 Сейчас в теме
(215)Да, почту давайте. Или ещё какой контакт.
217. user1041486 23.01.20 08:53 Сейчас в теме
218. IgorKissil 366 24.01.20 13:43 Сейчас в теме
213. ASK7 09.01.20 21:28 Сейчас в теме
Коллеги у меня тсд atol smart droid, версия андройд 4.4.2. Внешнюю компоненту подключить не удается метод ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) возвращает ЛОЖЬ. У кого нибудь работает на данном тсд подключить компоненту?
Кому нужно, у меня на данный момент у меня работает по этому сценарию http://infostart.questa.ru/public/587908/. Имя broadcast "DATA_SCAN". в утилите ScanWedge настройку Send barcode dataставим "off". Работает на платформе не выше 8.3.11.
Прикрепленные файлы:
broadcast_apk.cf
219. Mahon83 15 27.01.20 06:27 Сейчас в теме
Имеется промышленный планшет ISBC-RFID Tablet PC, возможно ли используя эту компоненту получать данные с RFID модуля, встроенного в планшет?
221. IgorKissil 366 27.01.20 13:11 Сейчас в теме
(219) С метками все сложнее. В общем случае данная компонента не работает с nfc или uhf. Возможно в вашем устройстве есть какие-то утилиты производителя, на которых можно настроить broadcastы. Тогда можно попробовать.
222. Mahon83 15 27.01.20 13:20 Сейчас в теме
(221) никаких настроек не нашел, есть только ПО от производителя GetTag, считывает метки и пишет в json
220. Mahon83 15 27.01.20 12:31 Сейчас в теме
Подскажите как можно получить имя оповещения для планшета "ISBC-RFID Tablet PC", в данном планшете встроен модуль считывания меток RFID, никакой документации к сожалению найти не могу.
224. gorevg 38 27.01.20 23:23 Сейчас в теме
Протестировал работу сканера на АТОЛ СМАРТ - все работает.

Настроил сканер через Буфер(ScanWenge - Send barcode data - clipboard).

Версия платформы 8.3.15.86
282. guevara74 28.01.21 18:28 Сейчас в теме
(224)Не подскажете, на смарте lite или pro удалось завести?
226. mishag 28.01.20 22:50 Сейчас в теме
Автору большое спасибо за эту разработку
227. DD63 30.01.20 07:24 Сейчас в теме
Было бы совсем круто, если бы компонента могла передавать коды аппаратных кнопок. Получилось бы законченное решение для ТСД.
233. IgorKissil 366 17.02.20 11:12 Сейчас в теме
(227) (230) (232) По поводу перехвата событий клавиш. Мне кажется, универсальное решение в виде одной цельной компоненты создать нельзя. Но можно сделать многокомпонентный драйвер в соответствии с архитектурой: https://its.1c.ru/db/metod8dev#content:5922:hdoc Насколько интересно будет вам такой вариант компоненты?
234. AneJIbcuH 39 17.02.20 12:06 Сейчас в теме
(233) Если цельная компонента никак, то конечно я за такой вариант!
228. gorevg 38 06.02.20 22:11 Сейчас в теме
Кому нужно для АТОЛ СМАРТ(не через буфер обмена):
Если не ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
			ПоказатьПредупреждение(,"Компонента не подключена. Сканер работать не будет");
		КонецЕсли;
		Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
		Компонента.УстановитьПараметр("FilterName", "DATA_SCAN"); 		
		Шбл=Компонента.ПолучитьШаблонОписанияДанных();
		
		Компонента.УстановитьПараметр("CaptureData", 
				СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					Шбл, 
					"com.hht.emdk.datawedge.data_string", 
					XMLСтрока(Ложь), 
					XMLСтрока(0) 
				)
		);              		

		
		Если Не Компонента.Подключить(НомерУстройства) Тогда
		    Сообщить("Не удалось подключить компоненту");
		    ТекстОшибки = "";
		    КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
		    ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
		КонецЕсли;
		


Показать


Результат придет в виде xml. А разобрать xml - дело техники.
Virsy; dynnikov; +2 – Ответить
229. user1041486 10.02.20 11:19 Сейчас в теме
Подскажите, при загрузке конфигурации появляется данная ошибка. В чем Может быть проблема?
Прикрепленные файлы:
236. user1041486 25.02.20 10:40 Сейчас в теме
(229) Никто не может помочь по данному вопросу? Хочу собрать мобильное приложение, но в сборщике при загрузке конфигурации появляется ошибка указанная в (229)
237. IgorKissil 366 25.02.20 10:44 Сейчас в теме
(236)Это ошибка в сборщике 1С. Когда добавили поддержку 64-бит напутали с временными папками. Где-то на Инфостарте было, что нужно исправить в коде.
239. TigroKot 15.03.20 16:15 Сейчас в теме
(236)Скажите удалось решить проблему?
240. TigroKot 15.03.20 17:24 Сейчас в теме
(239)Не актуально. Разобрался
230. AneJIbcuH 39 12.02.20 06:15 Сейчас в теме
Здравствуйте! Подскажите, можно ли перехватить как-то нажатие аппаратных кнопок с цифрами на ТСД (Атол смарт Лайт) ?
С помощью данной компоненты или ещё как? Сканер ШК работает отлично.
235. valafan 121 21.02.20 02:53 Сейчас в теме
для Urovo i6300:
Компонента.УстановитьПараметр("FilterName", "android.intent.ACTION_DECODE_DATA");
barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Компонента.ПолучитьШаблонОписанияДанных(),"barcode_string",XMLСтрока(Ложь),XMLСтрока(0)); 
Компонента.УстановитьПараметр("CaptureData", barcode);
238. alexinnnn 15.03.20 15:18 Сейчас в теме
Ошибка "Компонента не подключена" как и у многих здесь
Caribe PL-50L
8.3.16
241. edem911 4 18.03.20 10:14 Сейчас в теме
Спасибо автору! очень помогла компонента - на атол smart.lite все работает отлично.
267. temrmal 27.10.20 00:03 Сейчас в теме
(241) Можно подробней про параметры, которые меняли в конфигурации?
278. edem911 4 12.11.20 11:37 Сейчас в теме
(267)
вот весь код, главное найти нужное название события на ТСД
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)

	//Сообщить(Событие);
	//Сообщить(Данные);

	Если Событие = "UniversalBroadcastEvent"  Тогда
		Протокол = Данные;
		
		Часть1=Сред(Данные,СтрНайти(Данные,"_DATA"">")+7,СтрДлина(Данные)-(СтрНайти(Данные,"_DATA"">")+7));
		Штрихкод= Лев(Часть1,(СтрНайти(Часть1,"<")-1));
		Свойства = Новый Структура();
		Свойства.Вставить("Данные",   Штрихкод);
		
		Если СтрДлина(Штрихкод)= 13 тогда 
			Оповестить("ВнешнееСобытие",Свойства,);
		ИначеЕсли 	СтрДлина(Штрихкод)= 11 тогда
			ОбщегоНазначенияКлиент.СоздатьСборку(Свойства);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

Процедура ПриНачалеРаботыСистемы()
	//СоОбщить("1");
	#Если НЕ ТолстыйКлиент И НЕ ТонкийКлиент И НЕ Вебклиент тогда  
		ИмяСобытия="com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST";
		Если не ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
			ПоказатьПредупреждение(,"Компонента не подключена",5);
			ЗавершитьРаботуСистемы(Ложь);
		Иначе
			Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
			Компонента.УстановитьПараметр("FilterName", "com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST");
			ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
			
			tech = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"EXTRA_BARCODE_DECODING_DATA",XMLСтрока(Ложь),XMLСтрока(0));
			
			Компонента.УстановитьПараметр("CaptureData",tech);
			
		КонецЕсли;
		
		Если не Компонента.Подключить() Тогда
			ТекстОшибки = "";
			КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
			ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
		КонецЕсли;
	#КонецЕсли
	
КонецПроцедуры
Показать
243. hrom 69 24.03.20 09:59 Сейчас в теме
День добрый не можем запустить компоненту на Memor 10, вот такая ошибка:
Прикрепленные файлы:
244. TigroKot 07.04.20 22:05 Сейчас в теме
(243)Попробуйте собрать через сборщик (2.0.11.36)
246. hrom 69 27.04.20 15:03 Сейчас в теме
(244) (245)
спасибо за ответы.
В нашем случае была устаревшая версия компоненты
245. TigroKot 09.04.20 17:07 Сейчас в теме
(243) mobile_8_3_13_64 на данной версии МП работает.
255. dynnikov 11.08.20 16:12 Сейчас в теме
Добрый день!

ТСД Атол Smart.Pro

Версия мобильной платформы 8.3.16.142

Загрузил в мобильное приложение через конфигуратор.
При нажатии на Старт выдается ошибка 0.
Аналогично для сканера при вызове метода Подключить() выдает ошибку компонента не подключена, код ошибки 0.

Для сканера пробовал вводить разные строки для ИмяСобытия , изначально пробовал из настроек в intent

ИмяСобытия = "com.hht.scanwedge";
ИмяКатегории = "android.intent.category.DEFAULT";
		
ScanDataLabel = "com.hht.datawedge.data_string";
ScanTypeLabel = "com.hht.datawedge.label_type";


Кто-то победил подобную проблему и каким образом?
283. guevara74 28.01.21 18:29 Сейчас в теме
(255) Удалось Вам победить? аналогичная проблема.
287. ivan453 09.02.21 09:10 Сейчас в теме
(283) скажите, удалось решить проблему?)
294. guevara74 09.02.21 15:58 Сейчас в теме
(287) Да. Приобрел эту компоненту, Вообщем все заработало :)
258. AneJIbcuH 39 24.08.20 07:27 Сейчас в теме
Подскажите, есть ли системный броадкаст для получения IP адреса wi-fi по аналогии с батареей ?
259. L1ght_Inoy 23.09.20 11:35 Сейчас в теме
Если у кого-то компонента подключается, но внешнее событие не ловится. Попробуйте переменную Компонента объявить в модуле формы или в модуле приложения.
260. vovchai 13.10.20 15:46 Сейчас в теме
Опыт использования:
Мобильная платформа 8.3.17.67
ТСД: Honeywell EDA60K-0

1. Опубликованное приложение на вебсервере не подключает компоненту при старте. Ни 64х, ни 32х. Так и не осилил
2. Подключается только у собранного приложения
3. Добавил в настройках ТСД Data Intent, как указано в (11)
4. Добавил там же Category
5. Использовал указанные интент и категорию (тип возвращаемых данных 15 (массив байтов)):
	
ИмяСобытия = "android.intent.action.scan";
ИмяКатегории = "barcode";
	
Компонента.УстановитьПараметр("FilterName",ИмяСобытия);
ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
	
dataBytes = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"dataBytes",XMLСтрока(true),XMLСтрока(15)); //массив байтов
Компонента.УстановитьПараметр("CaptureData",dataBytes);
Показать

Работает
261. dynnikov 16.10.20 12:02 Сейчас в теме
Автору спасибо за компоненту для Атол Smart.Pro сильно выручила, в связи с отсутствием драйверов для 1С на этот девайс.

Образовалась теперь одна проблема:

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

Ребят , подскажите в какую сторону копать?
263. IgorKissil 366 23.10.20 13:27 Сейчас в теме
(261)На Атоле похоже стоит сканер Zebra. Если ли в его ПО DataWedge? Если да, то возможно подойдет https://infostart.ru/public/1043267/
264. alkozel 23.10.20 13:52 Сейчас в теме
(263) Сканер Zebra, установлено ПО ScanWedge. Вашу компоненту еще не использовал, взял другую, не взлетело. Включил в службе ScanWedge BroadcastIntent=true. Настройки как в 255 посте. Скачал Broadcast Monitor. В нем не нашел широкополосных сообщений от сканера. Вот не знаю в какую сторону копать. Если не возникает событий, то ваша компонента тоже не поможет, может конечно Broadcast Monitor кривой. Занимаюсь настройкой второй день, может что-то еще не досмотрел. Планируется использовать с мобильной платформой 8.3.17.76. Android 9.0 Pie. Есть ли смысл попробовать компоненту из 263 поста?
272. PrinzOfMunchen 84 28.10.20 10:31 Сейчас в теме
(261) а можете скинуть скрин с настройками datawedge и компоненты? Ни внешнее событие, ни обработка оповещения не работают. Intent включил, а событий так и нет. Компонента без проблем подключается.
Мобильная платформа 8.3.17.67.
275. dynnikov 30.10.20 02:34 Сейчас в теме
(272)
#Если МобильноеПриложениеКлиент ИЛИ МобильноеПриложениеСервер ИЛИ МобильныйКлиент Тогда

		ИмяСобытия = "DATA_SCAN";
		ИмяКатегории = "android.intent.category.DEFAULT";
		
		ScanDataLabel = "com.hht.emdk.datawedge.data_string";
		ScanTypeLabel = "com.hht.emdk.datawedge.label_type";
		
		Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
			
			Попытка
			
				Компонента = Новый ("AddIn.Broadcasts.UniversalBroadcast");
				Компонента.УстановитьПараметр("FilterName",ИмяСобытия);
				Компонента.УстановитьПараметр("Category",ИмяКатегории);
				ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
				Barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,
															ScanDataLabel,
															XMLСтрока(Ложь),
															XMLСтрока(0));
				Компонента.УстановитьПараметр("CaptureData",BarCode);
				
				Если Не Компонента.Подключить(НомерУстройства) Тогда
				    Сообщить("Не удалось подключить компоненту");
				    ТекстОшибки = "";
				    КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
				   	Сообщить("Код ошибки:" + Строка(КодОшибки) + ", " + ТекстОшибки);
					Возврат Ложь;
				Иначе
				//	Сообщить("Компонента Broadcasts подключена!");
				//	глКомпонентаВключена = Истина;
					Возврат Истина; 
				КонецЕсли;
				  		 
			Исключение
				Сообщить(ОписаниеОшибки());
		  		Сообщить("Ошибка создания класса Component");
			Конецпопытки;
			
		Иначе
			Сообщить("Компонента Component не загружена");
		КонецЕсли;

  	#КонецЕсли
  
  Возврат Ложь;

КонецФункции
Показать

Настройки в Scanwedge ставил аналогичные как в коде и чтобы пошустрей работал отключил все типы шк с которыми не работаю.

Есть глюк периодически "заикается" ловит предпоследний отсканированный штрихкод. Этот глюк победить не смог.
Андроид на аппарате какой-то сильно обрезанный, даже vpn не дает настроить, просит настройку блокировки экрана, а в нее не заходит вываливает ошибку.

Хочется сменить прошивку, но что-то очкую
277. alkozel 30.10.20 15:29 Сейчас в теме
(275) Получил от Атол последнюю прошивку. ScanWedge апнулся до 6.0. Глюк с предпоследним ШК исчез
dynnikov; +1 – Ответить
273. alkozel 28.10.20 15:20 Сейчас в теме
(261) Скачал компоненту. Возникла такая же проблема как и у вас. Иногда выдает предпоследний считанный штрихкод. Вот что еще меня смущает. Сканер работает только тогда, когда запущена ScanWedge, но события из настроек не ловит вообще.

Взлетело только когда отлавливаю событие "DATA_SCAN"
Компонента.УстановитьПараметр("FilterName", "DATA_SCAN");

Причем оно отрабатывает даже когда в ScanWedge отключен Broadcast Intent.

Вы тоже отлавливаете "DATA_SCAN"?
274. dynnikov 30.10.20 02:23 Сейчас в теме
(273) Да, тоже ловлю DATA_SCAN

Это первый и последний тсд АТОЛ который брал. Сейчас смотрю в сторону UROVO, там хотя бы драйвера бесплатные для 1С есть и поддержка нормальная.
276. alkozel 30.10.20 11:46 Сейчас в теме
(274) Попытался сделать через буфер, но SendBarcodeData=Clipboard работает аналогично Keyboard. В буфер ничего не помещается. На форуме АТОЛ создана тема http://forum.atol.ru/index.php?showtopic=39601 в мае месяце. Тишина...
262. alkozel 23.10.20 13:07 Сейчас в теме
(261) Добрый день! Добавил вас в друзья. Имеется терминал Atol Smart.Pro, тоже пытаюсь его побороть.
265. dynnikov 26.10.20 18:00 Сейчас в теме
(262)

В обработке оповещения ловишь:

	Если Источник = "ПодключаемоеОборудование" Тогда
		
               Если ИмяСобытия = "UniversalBroadcastEvent" Тогда
			НайденныйШК = ОбщегоНазначенияКлиент.ПолучитьШтрихКодИзXML(Параметр);
               КонецЕсли;
        КонецЕсли;

Функция ПолучитьШтрихКодИзXML(СтрокаXML) Экспорт 
	
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(СтрокаXML);
	ПостроительDOM = Новый ПостроительDOM;
	ДокументDOM  = ПостроительDOM.Прочитать(ЧтениеXML);
	СписокУзлов = ДокументDOM.ДочерниеУзлы;
	
	ТекстШК = Строка(СписокУзлов[0].ПоследнийДочерний.ТекстовоеСодержимое);
	
	
	Возврат ТекстШК;

	
КонецФункции
Показать
266. temrmal 26.10.20 21:10 Сейчас в теме
Добрый день!
А где инструкция? скачался cf-ник. Загрузил. Опубликовал. Не подключается.
Потом прочел что надо сборщиком и что то еще подменять. ГДЕ ИНСТРУКЦИЯ?
268. IgorKissil 366 27.10.20 08:28 Сейчас в теме
(266)https://its.1c.ru/ Если хотите запустить конфигурацию из статьи, на 17-м релизе мобильной платформы ничего подменять не нужно. Все развертывается и устанавливается стандартно, как любая конфигурация мобильного приложения, содержащая внешние компоненты.
269. temrmal 27.10.20 21:12 Сейчас в теме
Атол Смарт LITE
Barcode utility 1.1.2

Вот мой код
ИмяСобытия = "com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST";
	
	Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
	Компонента.УстановитьПараметр("FilterName", ИмяСобытия);
	ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();		
	
	CaptureData = "EXTRA_BARCODE_DECODING_DATA";
	barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,CaptureData,XMLСтрока(Ложь),XMLСтрока(0));
	
	Если не Компонента.Подключить(НомерУстройства) Тогда
		ТекстОшибки = "";
		КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
		ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
	КонецЕсли;
Показать

Сканер в настройках в режиме Broadcast event

При сканировании внешнее событие отлавливается, Данные содержат XML строку

Но в ней нет штрихкода((((

В форме "Получение оповещений" то же самое.
Если делаю через clipboard (буфер), то работает в форме "Работа с буфером обмена". Кто сталкивался?
271. temrmal 28.10.20 10:12 Сейчас в теме
(269)

Атол смарт лайт в итоге получилось только через буфер получить данные. Broadcast возвращает xml без ШК. есть только filtername и filterdataname и datatype="0"
270. askkostya 28.10.20 08:11 Сейчас в теме
Здравствуйте.
Скажите удалось ли запустить данную компоненту для Atol Smart Pro ?
284. guevara74 29.01.21 09:23 Сейчас в теме
279. sergey512 36 18.11.20 21:06 Сейчас в теме
Вот такая ошибка во время вызова ПодключитьВнешнююКомпоненту. На одном ТСД с одной базой работает нормально, с копией этой же базы выдает ошибку.
Прикрепленные файлы:
281. temrmal 15.12.20 16:06 Сейчас в теме
Хорошая новость: у 1с выходит компонента версии 10 сканер ШК, которая в мобильном приложении имеет все необходимые настройки для работы с broadcast. Видел тестовую версию, работает на ура
285. nikatysel 29.01.21 14:45 Сейчас в теме
В благодарность за эту компоненту и все комментарии к этой публикации, публикую свою процедуру подключения компоненты под разные модели ТСД:

МодельТСД = Разработка.ПолучитьМодельТСД();
Если НЕ ЗначениеЗаполнено(МодельТСД) Тогда
	Возврат;
КонецЕсли;

#Если МобильноеПриложениеКлиент Тогда
Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
	глКомпонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
	ШаблонДанных = глКомпонента.ПолучитьШаблонОписанияДанных();
	Если МодельТСД = ПредопределенноеЗначение("Перечисление.МоделиТСД.Caribe_PL_45L")
		ИЛИ МодельТСД = ПредопределенноеЗначение("Перечисление.МоделиТСД.Caribe_PL_40L") Тогда
			ИмяСобытияСканирования = "scan.rcv.message";
			barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "barocode", XMLСтрока(Истина), XMLСтрока(15));
	ИначеЕсли МодельТСД = ПредопределенноеЗначение("Перечисление.МоделиТСД.Caribe_PL_55L") Тогда
		ИмяСобытияСканирования = "com.action.SCAN_RESULT";
		barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "scanContext", XMLСтрока(Истина), XMLСтрока(15));
	ИначеЕсли МодельТСД = ПредопределенноеЗначение("Перечисление.МоделиТСД.Urovo_i6300")
		ИЛИ МодельТСД = ПредопределенноеЗначение("Перечисление.МоделиТСД.Urovo_i6310") Тогда
			ИмяСобытияСканирования = "android.intent.ACTION_DECODE_DATA";
			barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "barcode_string", XMLСтрока(Ложь), XMLСтрока(0));
	ИначеЕсли МодельТСД = ПредопределенноеЗначение("Перечисление.МоделиТСД.Newland_MT65_Beluga")
		ИЛИ МодельТСД = ПредопределенноеЗначение("Перечисление.МоделиТСД.Newland_MT90") Тогда
			ИмяСобытияСканирования = "nlscan.action.SCANNER_RESULT";
			barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "SCAN_BARCODE1", XMLСтрока(Ложь), XMLСтрока(0));
	КонецЕсли;
	глКомпонента.УстановитьПараметр("FilterName", ИмяСобытияСканирования);
	глКомпонента.УстановитьПараметр("CaptureData", barcode);
	Если НЕ глКомпонента.Подключить(глНомерУстройства) Тогда
		ТекстОшибки = "";
		КодОшибки = глКомпонента.ПолучитьОшибку(ТекстОшибки);
		Сообщить("Ошибка: "+КодОшибки+", "+ТекстОшибки);
	КонецЕсли;
Иначе
	Сообщить("Компонента сканирования не подключена");
КонецЕсли;
#КонецЕсли
Показать
eeeio; dir_ea; bavkyz; +3 – Ответить
288. ivan453 09.02.21 09:19 Сейчас в теме
подскажите, в чем может быть дело? развернули мобильное приложение у себя...все работает отлично. перенесли базу на другой сервер. Компонента вроде подключается, но отображается ошибка на моменте:

Если не Компонента.Подключить(НомерУстройства) Тогда
			ТекстОшибки = "";
			КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
			ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
КонецЕсли;


Ошибка: 0,

куда копать?
289. ivan453 09.02.21 09:20 Сейчас в теме
290. IgorKissil 366 09.02.21 09:44 Сейчас в теме
(288)Новый сервер поставляет не все файлы компоненты. *.so есть, а *.apk нет. Наверное нужно прописать mime типы. Так как с таким вопросом обращаются чаще всего, скажу Вам и всем пользователям этой разработки: я не рекомендую развертывать эту и др. внешние компоненты с сервера. Используйте сборку.
291. ivan453 09.02.21 09:55 Сейчас в теме
(290) скажите а что за сборщик? в описании не увидел...
293. IgorKissil 366 09.02.21 12:39 Сейчас в теме
(291)Сборщик мобильных приложений от 1С
292. ivan453 09.02.21 09:58 Сейчас в теме
(290) mime типы прописал при первом же шаге.
295. lion-killer 23 05.03.21 11:26 Сейчас в теме
Здравствуйте.
Помогите, пожалуйста "чайнику".
Имеется ТСД Chipherlab RK25.
Будет ли данное решение работать на нем и как подключить?
296. BALGAR 10.03.21 07:11 Сейчас в теме
Добрый день. Благополучно пользовались ТСД Caribe PL40L, пришла новая партия ТСД, но с версией андроид 8,1 и перестало отрабатывать событие. При сканирование не получаем штрих код, на старой версии под андроид 6,0 все работает нормально. Может поменялся ИмяСобытияСканирования = "scan.rcv.message"?
297. plutonii 19.03.21 00:17 Сейчас в теме
Здравствуйте. Сегодня купил у вас последнюю версию компоненты. И почему то при сканировании 1С "ВнешнееСобытие" вызывается 2 раза подряд при единичном сканировании?
Засунул в макет вариант компоненты 1,5 годовалой давности, там такой проблемы не возникает...

Подскажите, куда копать?
Спасибо!
298. IgorKissil 366 19.03.21 08:33 Сейчас в теме
(297)Дублирований событий в компоненте быть не может. Скорее всего у вас запущено несколько экземплятов объекта компоненты (например, в активной форме и какой-нибудь форме на заднем плане)
299. plutonii 19.03.21 12:47 Сейчас в теме
(298) ничего не меняя я 1,5 годовалую компоненту вернул и двойное событие перестало происходить. У меня всего одна форма и компонента создается при открытии этой формы
300. IgorKissil 366 19.03.21 14:01 Сейчас в теме
(299)Да, действительно, когда вывод идет в xml, не удалил лишнюю генерацию внешнего события в 1С в коде. Спасибо за замечание, постараюсь максимум в понедельник (22.03.21) выложить исправление
301. plutonii 19.03.21 14:13 Сейчас в теме
(300) спасибо за обратную связь! Буду ждать
304. plutonii 23.03.21 18:58 Сейчас в теме
(300) Здравствуйте! Получилось выложить компоненту с исправлением ошибки? Если да, то как можно получить исправленную? P.s. до исправления я покупал её у вас.
Спасибо!
303. HenryL 23.03.21 12:23 Сейчас в теме
Добрый день! Как можно с вами связаться для личной консультации по схожей задаче?
306. user1404202 14.04.21 17:55 Сейчас в теме
Добрый день, если кто то знает подскажите пжлст как можно получать данные не в XML а в JSON ?
307. IgorKissil 366 14.04.21 20:01 Сейчас в теме
(306)Формат вывода зависит от параметра OutputFormat. В коде 1С вызываете метод: Компонента.УстановитьПараметр("OutputFormat", 1); В статье об этом написано.
308. user1404202 16.04.21 10:13 Сейчас в теме
(307)
Делаю так:

Компонента.УстановитьПараметр("FilterName", "android.intent.action.AIRPLANE_MODE");
Компонента.УстановитьПараметр("OutputFormat", 1);
state = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Компонента.ПолучитьШаблонОписанияДанных(),"state", XMLСтрока(Ложь), XMLСтрока(16));
Компонента.УстановитьПараметр("CaptureData", state);

Получаю xml
309. user605516 19.04.21 10:13 Сейчас в теме
(308)
Аналогичная проблема.
310. IgorKissil 366 20.04.21 05:58 Сейчас в теме
(308)(309) Просмотрел код компоненты. Чтобы такое происходило после установки параметра "OutputFormat", предпосылок нет никаких. Скорее всего ошибка гдето у Вас. Навскидку можно предположить 1) параметр устанавливается после вызова "Подключить" 2) имеется два инстанса (объекта) компоненты, которые работают одновременно
311. boss_kuz 107 28.04.21 18:11 Сейчас в теме
Я очень признателен вам за разработку данной компоненты. Работает безупречно на разных версиях моб. платформы устройств Атол и "Китай". Но не получается сборщиком 8.3.18.72 собрать приложение из-за этой внешней компоненты. Пробовал изменить манифест, оставить только ARM . При загрузке конфигурации в справочнике "Внешние компоненты" создается объект, но в регистре ObjectStorage запись не создается. Возможно при загрузке существует "проверка" apk-файла. Можете помочь в данной ситуации. Я в свою очередь готов вам предложить свои услуги.
312. IgorKissil 366 29.04.21 08:18 Сейчас в теме
(311)
Но не получается сборщиком 8.3.18.72 собрать приложение из-за этой внешней компоненты
- это слишком сильное и безосновательное заявление с Вашей стороны. Любая ошибка в компоненте проявится только при запуске уже развернутого мобильного приложения. Сборщик проверяет лишь корректность манифеста и наличие файлов. Вы можете хоть exeшник винды переименовать в .so и подсунуть в архив компоненты - сборщик его соберет. Я подозреваю, какая у вас ошибка - это проблемы 1С (ошибка в коде сборщика).
user1124676; +1 – Ответить
313. boss_kuz 107 29.04.21 09:09 Сейчас в теме
(312) Это только мое предположение. Не могли бы вы сами попробовать собрать ? У меня сборщик 8.3.18.72, Дело в том что проблема возникает уже при загрузке 1cema.zip. "Тело" компоненты не загружается в хранилище, но в списке внешних компонент она есть. Соответственно при при сборке и возникает ошибка {CommonModule.MobileApplicationBuilding.Module(1308)}: SearchPath = ExtCompDir + ServiceClie

Команда "Выгрузить внеш. комп" для текущей строки ни чего не делает, хотя с другими компонентами проблемы нет.
314. IgorKissil 366 29.04.21 10:25 Сейчас в теме
(313)Я это пробовал месяца два назад. Нашел ошибку в сборщике, снял его с поддержки, исправил. apk собрался. Но дальше возникли другие проблемы (не работает с файловой системой в андроиде, невозможно выложить на AppStore - почитайте на форумах), из-за которых снес этот сборщик и перешел на 17-й релиз. Где исправлял, конечно уже не помню и даже установленного сборщика 18-го под рукой нет. Поэтому просто собрать - извините нет времени. В общем, ваши проблемы не имеют отношения к теме статьи, может что-то найдете на партнерском форуме.
315. noName_14_16_702 05.05.21 11:46 Сейчас в теме
Добрый день Игорь!
Хочу купить вашу компоненту, но нет возможности купить ее за смартмани. Можете добавить способ покупки за рубли
316. plutonii 21.05.21 12:05 Сейчас в теме
Здравствуйте. По последней версии компоненты: имеет одна форма, где при открытии подключается компонента. Сканирование отрабатывает, всё ок. Но при закрытии этой формы на ТСД 1С начала писать: Метод объекта не обнаружен (Отключить). При закрытии формы стоит -
#Если МобильноеПриложениеКлиент Тогда
Компонента.Отключить(НомерУстройства);
#КонецЕсли

Метод подключить отрабатывает
317. plutonii 21.05.21 14:44 Сейчас в теме
(316) перенес вызов метода из процедуры формы "ПриЗакрытии" в процедуру кнопки самой и ошибка ушла.
318. hsperm 24.05.21 12:57 Сейчас в теме
Развернул конфигурацию пример на ТСД. При нажатии "Старт" на форма Broadcast выдаёт ошибку 0.

ОС Android 9
ТСД Honeywell EDA61K
Мобильная платформа 8.3.18.16

Компонента при открытии формы подключается.
MIME-типы .so и .apk добавлены
319. пользователь 15.06.21 12:20
Сообщение было скрыто модератором.
...
320. BALGAR 15.06.21 12:26 Сейчас в теме
Добрый день. Благополучно пользовались ТСД Caribe PL40L, пришла новая партия ТСД ТСД Caribe PL55L, но с версией андроид 8,1 и перестало отрабатывать событие. При сканирование не получаем штрих код, на старой версии под андроид 6,0 все работает нормально. Может поменялся ИмяСобытияСканирования = "scan.rcv.message"? Работает ли ваше приложение с данным типом ТСД. Если да, то как можно с вами связаться.
324. Wi5hMaCTeP 5 06.08.21 16:59 Сейчас в теме
Добрый день!
Хотим написать приложение на ТСД для внутреннего учета. Столкнулись с проблемой сканера ШК.
Вопросы:
1. Будет ли ваша компонента работать в мобильном клиенте?
2. Будет ли компонента работать с платформой 8.3.18 и выше?
3. Будет ли компонента работать с Android 4, 7 и 10?
325. IgorKissil 366 09.08.21 15:54 Сейчас в теме
(324)Добрый день, везде ответ "да". Только 4-я версия адроид поддерживается начиная с 4.4
326. Wi5hMaCTeP 5 09.08.21 16:38 Сейчас в теме
(325) Планируется ли "длительная поддержка"? :)
Если нужна будет адаптация под новый ТСД - можно к вам обратиться?
327. IgorKissil 366 09.08.21 20:26 Сейчас в теме
(326)Все в рамках соглашения за разработки, скачиваемые за sm
328. 3dice 28 25.08.21 07:24 Сейчас в теме
Игорь, здравствуйте. Я отправил вам приглашение добавьте меня в друзья. У меня к вам есть деловое предложение. Подробности в личной переписке.
334. user605516 03.09.21 11:56 Сейчас в теме
Можно уточнить согласно какому стандарту применяется экранирование при выводе результата в JSON-строке?
335. IgorKissil 366 06.09.21 08:00 Сейчас в теме
(334)По стандарту по которому работает https://developer.android.com/reference/org/json/JSONObject Никаких дополнительных настроек объекта json в коде не делается
336. BALGAR 08.10.21 08:43 Сейчас в теме
Добрый день! Получили новую партию ТСД iData, в настройках разработчика указаны параметры перехвата broadcast сообщений: BroadCast Action: android.intent.action.SCANRESULT
Output broadcast tag: value

Код такой:

ИмяВнешнегоСобытия = "android.intent.action.SCANRESULT";

Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
Компонента.УстановитьПараметр("FilterName",ИмяВнешнегоСобытия);
ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"value", XMLСтрока(Истина), XMLСтрока(15));
Компонента.УстановитьПараметр("CaptureData",barcode);

Если не Компонента.Подключить(НомерУстройства) Тогда
ТекстОшибки = "";
КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
КонецЕсли;

Иначе
ПоказатьПредупреждение(,"Компонента не подключена",5);
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;


Но сообщения не перехватываются. Может кто то уже настраивал данные ТСД?
337. user1124676 19.10.21 05:56 Сейчас в теме
Добрый день!

Купили у Вас ВК, не получается установить подключение через Bluetooth.
Все работает но при подключении к Bluetooth устройству возникает ошибка: 2010, read failed, socket might closed or timeout, read ret: -1.

Использую: Андроид 9 и 1С:Предприятие 8.3 (8.3.18.1208) и Мобильная платформа 8_3_19_51 и Сборщик мобильных приложений 8_3_19_51 и PUBID_779912-broadcast
338. IgorKissil 366 19.10.21 12:29 Сейчас в теме
(337)Нужно смотреть на ваше оборудование. Скорее всего оно не поддерживает com over bluetooth
user1124676; +1 – Ответить
339. пользователь 19.10.21 15:46
Сообщение было скрыто модератором.
...
352. user1124676 27.10.21 08:43 Сейчас в теме
(338)
Как с Вами связаться? Интересует покупка исходного кода ВК.
340. skysat 20.10.21 11:58 Сейчас в теме
(338) Добрый день. Подкажите, с помощью данной компоненты возможно подключаться к устройствам BLE?
341. TryToRun 21.10.21 10:24 Сейчас в теме
Никак не могу заставить работать в мобильном клиенте - ПодключитьВнешнююКомпоненту выдает ложь. Пробовал публикацию и на apache и на IIS, прописывал и там и там нужные MIMEы. В манифесте компоненты добавлял наименование во все строки.
Ни в какую не подключается ни на смартфоне (ставил чтобы проверить подключится ли вообще компонента), ни на терминале UROVO DT40.
При этом если собрать мобильное приложение из конфигурации-примера (с компонентой с исходным манифестом) на тсд - все работает, компонента подключается, событие ловится.
Что еще можно попробовать сделать?

p.s. пробовал в свою базу засунуть "родную" компоненту urovo - также ПодключитьВнешнююКомпоненту выдает ложь. Проблема явно с публикацией, но в чем именно - никак не пойму.
342. pa_dima 21.10.21 19:49 Сейчас в теме
(341)

MIMEы неправильны, работает во всех платформах 1С для мобильных.

пропиши:

.so
.apk
.dylib
.a

Тип MIME: application/octet-stream"
343. TryToRun 22.10.21 10:35 Сейчас в теме
(342) проверял уже много раз. Пробовал и апач и IIS (см скрины). Все равно ПодключитьВнешнююКомпоненту выдает ложь.
Прикрепленные файлы:
344. TryToRun 22.10.21 11:51 Сейчас в теме
(343)может дело в версии мобильного клиента? Пробовал только 8.3.18 и 8.3.19 - сервис сборки мобильных приложений других версий не дает. Работает у кого-нибудь на этих версиях?
345. IgorKissil 366 22.10.21 13:32 Сейчас в теме
(341)Эта компонента в мобильном клиенте предназначена для работе стороне клиента, что очевидно. Поэтому до подключения ее необходимо доставить в приложение, то есть использовать НачатьУстановкуВнешнейКомпоненты для загрузки, потом в контексте клиента подключать.
346. TryToRun 22.10.21 15:52 Сейчас в теме
(345)Попытался использовать НачатьУстановкуВнешнейКомпоненты. Выдает ошибку "Установка внешней компоненты не выполнена! В процессе установки произошла ошибка! Возможно отсутствует компонента для используемого клиентского приложения".
Имя макета правильное. Что еще может быть не так?
347. pa_dima 24.10.21 21:05 Сейчас в теме
(346)
#Область Универсальная
	
Процедура УстановитьКомпонентуУниверсальнаяЗавершение(ДополнительныеПараметры) Экспорт
	врОповещение = Новый ОписаниеОповещения("ПодключитьКомпонентуУниверсальная", 
												кдОбщегоНазначенияМобКлиентКлиент.ЭтотОбъект,
												,
												"ОбработатьОшибкуПодключенияУниверсальная", 
												кдОбщегоНазначенияМобКлиентКлиент.ЭтотОбъект);
	НачатьПодключениеВнешнейКомпоненты(врОповещение,  "ОбщийМакет.Component", "Component", ТипВнешнейКомпоненты.Native);
КонецПроцедуры

Процедура ОбработатьОшибкуУстановкиУниверсальная(прИнформацияОбОшибке, СтандартнаяОбработка, ДополнительныеПараметры) Экспорт
  	Сообщить("Ошибка создания компоненты Универсальная компонента !!!");
	
	ОткрытьФорму("ОбщаяФорма.ФормаАктивацииМобильногоПриложения");
КонецПроцедуры

Процедура ОбработатьОшибкуПодключенияУниверсальная(прИнформацияОбОшибке, СтандартнаяОбработка, ДополнительныеПараметры) Экспорт
  	Сообщить("Ошибка подключения Универсальная компонента !!!");
	
	ОткрытьФорму("ОбщаяФорма.ФормаАктивацииМобильногоПриложения");
КонецПроцедуры

Процедура ПодключитьКомпонентуУниверсальная(Подключено, ДополнительныеПараметры) Экспорт
	Если Подключено Тогда
		Попытка
			глКомпонента = Новый ("AddIn.Broadcasts.UniversalBroadcast");
			
			Если глТипТСД = ПредопределенноеЗначение("Перечисление.ТСД.LECOM_T80")  Тогда
				глКомпонента.УстановитьПараметр("FilterName",	"scan.rcv.message");
				
				ШаблонДанных = глКомпонента.ПолучитьШаблонОписанияДанных();
				
				barocode = ПодставитьПараметрыВСтроку(ШаблонДанных, "barocode", XMLСтрока(Ложь), XMLСтрока(15));
				
				глКомпонента.УстановитьПараметр("CaptureData", barocode);
			КонецЕсли;
			
			Если не глКомпонента.Подключить(глИмяУстройства) Тогда
				ТекстОшибки = "";
				
				КодОшибки = глКомпонента.ПолучитьОшибку(ТекстОшибки);
				
				ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
			КонецЕсли;
			
			ОткрытьФорму("ОбщаяФорма.АвторизацияМобильноеПриложение");
		Исключение
			Сообщить(ОписаниеОшибки());
		  	Сообщить("Ошибка подключения класса Универсальная компонента !!!");
			
			ОткрытьФорму("ОбщаяФорма.ФормаАктивацииМобильногоПриложения");
		КонецПопытки;
	Иначе
	  	Сообщить("Ошибка !!! Универсальная компонента не подключена");
		
		ОткрытьФорму("ОбщаяФорма.ФормаАктивацииМобильногоПриложения");
	КонецЕсли;
КонецПроцедуры

Процедура ИнициализироватьВнешнююКомпонентуУниверсальную() Экспорт
		врОповещение = Новый ОписаниеОповещения("УстановитьКомпонентуУниверсальнаяЗавершение", 
												кдОбщегоНазначенияМобКлиентКлиент.ЭтотОбъект,
												,
												"ОбработатьОшибкуУстановкиУниверсальная", 
												кдОбщегоНазначенияМобКлиентКлиент.ЭтотОбъект);
												
		НачатьУстановкуВнешнейКомпоненты(врОповещение, "ОбщийМакет.Component");
КонецПроцедуры

#КонецОбласти
Показать


Вот мой код подключение, работает во всех клиентах, из процедуры ПриНачалеРаботыСистемы() вызываю ИнициализироватьВнешнююКомпонентуУниверсальную();
348. TryToRun 25.10.21 09:33 Сейчас в теме
(347)
Вот мой код подключение, работает во всех клиентах, из процедуры ПриНачалеРаботыСистемы() вызываю ИнициализироватьВнешнююКомпонентуУниверсальную();

Попробовал ваш код, убрав вызовы форм, которых у меня нет. В результате ошибки:
"Установка внешней компоненты не выполнена! В процессе установки произошла ошибка" Возможно, отсутствует компонента для используемого клиентского приложения"
и потом
"Ошибка!!! Универсальная компонента не подключена"
349. IgorKissil 366 25.10.21 10:45 Сейчас в теме
(348) Судя по посту 343 Вы публикуете мобильную часть на веб сервере? Если да, то это во много раз увеличивает вероятность ошибок. Когда приложение собирается сборщиком, все должно работать. Иначе нужно смотреть не только код, но и настройки сервера.
350. TryToRun 25.10.21 11:43 Сейчас в теме
(349) да, на веб-сервере. Кроме прописывания нужных MIME ни в этой ветке, ни в других темах про подключение внешних компонент, которые я находил - ничего больше не говорится, так что даже и не знаю куда копать.
351. pa_dima 25.10.21 18:19 Сейчас в теме
(350)

Судя по скринам Вы прописали в IIS MIME в корень сервера, нужно прописать именно в Вашу публикацию, я тоже на эти грабли натыкался, тут наследования видимо нету, т.к. в MIME публикации нету этих типов, пропишите в публикацию думаю заработает.
353. TryToRun 27.10.21 15:17 Сейчас в теме
(351)
Наследование есть и у публикаций эти MIME появляются. Сейчас у меня вообще apache 2.4
Но не поленился, поднял опять IIS, добавил типы MIME локально у публикации - результат к сожалению тот же =(
354. TryToRun 01.11.21 16:21 Сейчас в теме
Подключение компоненты кое-как победил.
Теперь на строке
Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");

Выдает ошибку
Тип не определен (AddIn.Broadcasts.UniversalBroadcast)
В этом обсуждении уже был такой вопрос, но на него так никто и не ответил
356. Grivba 15 10.11.21 12:36 Сейчас в теме
Добрый день.
Игорь есть предложение по доработке.
В последнее время Google и 1с не дают разрешение MANAGE_EXTERNAL_STORAGE, поэтому приходится использовать проводник через запуск мобильного приложения, при этом получение самих данных (двоичные данные) проходит отлично, а вот имя файла, его расширение остается за завесой тайны. Т.к. как сторонние приложения возвращает путь к файлу в виде content://.

Суть предложения. Реализовать метод во внешней компоненте для получения из ссылки content:// реальный путь к файлу file://
357. dronprog 155 19.11.21 11:47 Сейчас в теме
Добрый день.
На Honeywell EDA60K не считываются штрихкода типа CODE39 через компоненту. В системном тесте сканера - считывается, а вот через компоненту любые EAN13, CODE128 считываются, а вот CODE39 - нет. Помогите, пожалуйста!
358. dronprog 155 24.11.21 13:42 Сейчас в теме
(357) В общем дело было не в компоненте, а все же в настройках сканера.
Помог только полный сброс настроек. И по новой включение Data Intent и указание в поле Action значения scan.rcv.message
359. user1691632 09.12.21 12:48 Сейчас в теме
Классная компонента аплодирую разработчику.
На ТСД zebra MC33 работает отлично.
Один вопрос разработчику, ТСД начинает греться это может быть связано с компонентой?
360. igor78 19.01.22 18:05 Сейчас в теме
Здравствуйте! Можно ли с помощью вашей компоненты печатать на мобильном bluetooth принтере? Принтер urovo, мобильный клиент 1С, конфигурация бухгалтерия предприятия
361. IgorKissil 366 19.01.22 20:28 Сейчас в теме
(360)Конечно можно, если Вы знаете протокол передачи данных этого принтера. Переносные bluetooth принтеры zebra прекрасно принимают команды zpl и печатают этикетки.
362. пользователь 08.02.22 10:18
Сообщение было скрыто модератором.
...
369. vskapitonov 30.05.22 18:55 Сейчас в теме
(361) Здравствуйте, посмотрите пожалуйста пост (368) , может есть мысли? Использую вашу компоненту для передачи данных на бт-принтер zebra
372. IgorKissil 366 31.05.22 09:20 Сейчас в теме
(369) Печать точно работает на моделях zq300 и zq500, думаю и с другими не должно быть проблем, так как везеде принцип одинаков - передаем текст в кодировке OEM. Вашу модель (z200) не нашел. Это наверное zq220? Так как SendData ошибку не возращает, похоже, данные отправляются, но принтер их не воспринимает.

Чтобы выяснить в чем проблема:
1. Передайте на принтер любую строку (он поддерживает ESC) из другого софта, работающего с com bluetooth. Принтер должен ее напечатать
2. Проверьте, что через компоненту из 1С вы передаете текст в OEM кодировке (только с ними работаю зебры). Как перекодировать строку 1С в двоичные данные oem через потоки, надеюсь, разберетесь.
373. vskapitonov 31.05.22 14:34 Сейчас в теме
(372) Спасибо, попробую. Да, версия zq220, ошибся при указании модели. А текст ошибки "Ошибка: 0, " что означает? любую другую неопределенную ошибку?
363. verter.me 921 15.03.22 15:43 Сейчас в теме
Проблема!!!
Входная информация:
- До этого работали с версией 1.04 или около того
- Была нормальная работа на Андройд версии 5.1
- На версии андройда 7.1 версия 1.04 компоненты не работает.
- На версии андройда 7.1 и 5.1 версия 1.3 компоненты не работает
- На версии андроида 10 компоненты не работают

есть ли возможность отладить процесс подключения компоненты, так как Функция "ПодключитьВнешнююКомпоненту" возвращает только "да/нет" - без описания, в чем проблема с подключением компоненты.

Вопрос сейчас именно в том, что не происходит первоначального запуска через "ПодключитьВнешнююКомпоненту".
364. verter.me 921 15.03.22 16:58 Сейчас в теме
(363) вроде разобрались в чем причина. проблема в типах MIME на веб-сервере, которые нужно добавить
Прикрепленные файлы:
365. НовенькийЯ 21.03.22 13:25 Сейчас в теме
Автору огромное спасибо.
Перепробовал много разных компонент и доп программ.
Остановилс яна одной доп. программе, но она часто вылетала с ошибкой. 1Сный драйвер хоть и видео собвтие от сканера но игнорил его. И только благодаря этой компоненте я выяснил в каких полях какие данные передаются и каких типов. В моем случае часть ТСД передавали строку в barcode, часть barcodeData и все передавали массив данных в barocodeData - и этот массив 1Сный драйвер не понимает. А эта компонента нормально его принимает.

Еще огромное спасибо, что не приходится теперь при каждом новом релизе мобильной платформы менять ее манифест, что бы она принимала броадкасы со сторонней программы(раньше делал это регулярно).
367. eaa 21.04.22 12:49 Сейчас в теме
Взлетело на CipherLab RK25
1 В приложении ReaderConfig заходим в раздел Data Output и вводим значение полю Intent Action (имя события)
2 На примере демонстрационной конфигурации автора в параметре FilterName указываем имя из пункта 1
Добавляем параметр СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"Decoder_Data",XMLСтрока(Ложь),XMLСтрока(0));
В него компонента будет возвращать результат сканирования. Спасибо tricolor за подсказку.
Автору еще раз большое спасибо!
368. vskapitonov 23.05.22 18:55 Сейчас в теме
Добрый день.

Печатаю на БТ-принтер zebra z220 (у него язык программирования этикеток CPCL, не нашел в документации поддержки иного языка).
Подключается успешно, однако при отправке получаю "Ошибка: 0, "

Как делаю:
Отправлю на печать через SendData. InutData устанавливаю данными строки (предварительно перевожу ее в двоичные данные) .

Строка содержит этикетку в формате CPCL.
! 0 200 200 240 1
TEXT 7 0 0 0 Message: Here is a test label
BT 0 0 7 
BARCODE 128 1 2 75 25 40 TestData
BT OFF                                                    
PRINT

Пробовал отправлять аналогично:
1) строку, переведенную в дд, с этикеткой в формате ZPL - результат тот же.
2) строку без перевода в дд с этикеткой в формате ZPL - результат тот же.
3) строку без перевода в дд с этикеткой в формате CPCL - результат тот же.

Может есть мысли ЧЯДНТ?
370. Rif_md 6 31.05.22 01:05 Сейчас в теме
Можно ли с помощью этой компоненты подключить принтер этикеток Zebra по интерфейсу bluetooth и передавать данные для печати этикетки в формате ZPL напрямую в порт? Тут в отличии от сканеров, наоборот нужно передавать данные в порт.
371. IgorKissil 366 31.05.22 09:06 Сейчас в теме
374. 3dice 28 05.06.22 16:03 Сейчас в теме
Игорь, здравствуйте. Необходима ваша помощь в части вашей многофункциональной компоненты. Подскажите как можно с вами связаться и обсудить условия лично?
375. ELF007 19.06.22 08:57 Сейчас в теме
(29) Добрый день, тоже пытаюсь настроить на ТСД Zebra MC36, Android 4.4. Установил компоненту и не могу понять как правильно прописать и настроить чтоб отлавливало событие сканера. Если не сложно можете подробней описать.
376. ELF007 19.06.22 13:30 Сейчас в теме
383. wildwilduser 16 17.03.23 07:53 Сейчас в теме
(376)
А поведаете всем что за проблема была и как решили?
377. eeeio 127 03.08.22 17:00 Сейчас в теме
Коллеги, столкнулся с проблемой - при отсутствии связи или в автономном режиме на ТСД компонента не устанавливается.
Почти все модули и объекты включены в состав автономной конфигурации с приоритетом "автономный сервер".
Есть у кого опыт работы с компонентой в мобильном клиенте без связи с сервером? Куда копать?
378. ELF007 16.09.22 12:13 Сейчас в теме
Добрый день, на ТСД 2 разных моделей установил все работает шикарно. Решил эту же компоненту протестить на мобильно телефоне, при подключений выдает ошибку кода 2010, что может быть ? Сканер работает как клавиатура.
379. ELF007 03.10.22 08:27 Сейчас в теме
Что не не подключал блютуз сканер ? (( У меня не получается выдает ошибку.
380. salatin 11.10.22 07:37 Сейчас в теме
У меня возникает данная ошибка при подключений bluetooth сканера.
Прикрепленные файлы:
381. hakerxp 3251 12.10.22 20:32 Сейчас в теме
Есть задача - получать данные сканера как через COM на ТСД Atol Smart Pro. Перепробовал 3 компоненты, включая эту, стандартную из библиотеки подключаемого оборудования для мобильного приложения 2.17. Все одинаково хорошо работают, если верно сделать настройки.
НО! Если использовать приложение без сборки (пока не пробовал), а через веб-сервер, то если в мобильном приложении сканировать, потом полностью выйти к списку баз кнопкой назад и заново зайти и попробовать отсканировать, то мобильное приложение 1С падает. Нужно заново заходить и тогда все работает отлично.
Такое поведение было замечено, когда правильно устанавливаешь Action и Extra. Для моего ТСД это DATA_SCAN и com.hht.emdk.datawedge.data_string Если данные указываешь неверно, то и ничего не ловит система но и не падает).
Есть подозрение на утилиту ScanWedge на андроиде 9.
Может кто еще сталкивался с такой проблемой? Поделитесь решением.
384. chng 22.03.23 00:04 Сейчас в теме
(381) Точно та же проблема. Решения не нашли?
382. igori3333 11 07.02.23 23:03 Сейчас в теме
Добрый день, вы говорили что есть наработки работы с ККМ по Bluetooth. С кассами tremol и datecs есть рабочий функционал?
385. wildwilduser 16 25.03.23 17:54 Сейчас в теме
Добрый день/вечер/утро. Подскажите пожалуйста. Кто либо использовал эту разработку для работы в мобильном клиенте (не мобильном приложении)? Взлетело/не взлетело? Какие грабли были? Нужен функционал чтобы поймать штрихкод из broadcast'a на ms930p.
Пробовал эту разработку не взлетело, хотя параметры подключения были подобраны правильно и DataWedge был настроен корректно. Проверяли на стороннем мобильном приложении.
386. eeeio 127 27.03.23 11:14 Сейчас в теме
(385) Использовал. Взлетело, но есть грабли в мобильном клиенте - при отсутствии связи или в автономном режиме на ТСД компонента не подключается. Хотя причина, похоже, не в компоненте. Возможно в новых релизах что-то изменилось.
389. akoreshkov_2015 15.05.23 17:39 Сейчас в теме
Добрый день. Использовали данную компоненту для ТСД Zebra330M на базе Android 8.1 Мобильный клиент версии 1C:Предприятие 8.3.20 (устанавливали через файлик apk от 1С). Работала успешно. Потом проект по внедрению пол года был на паузе. Проект разморозили и неожиданное компонента перестала устанавливаться:
"Установка внешней компоненты не выполнена!
В процессе установки произошла ошибка!
Возможно, отсутствует компонента для используемого клиентского приложения."
Единственно, что изменилось - закрыли доступ в Интернет. Кто то еще сталкивался с подобной ситуацией? Как решили?
391. a.varkov 15.08.23 20:22 Сейчас в теме
Добрый вечер, пробовал компоненту на 7 андроиде все отлично а на 11 версии андроида ни в какую не подключается Модель ТСД PM451. Подскажите кто то пробовал на 11 версии работает ли? Если работает тогда в сторону ТСД буду дальше "копать".
393. vladnet 382 30.09.23 17:20 Сейчас в теме
(391) Не получилось? У меня та же проблема. Получилось решить или связаться с автором?
394. a.varkov 01.10.23 11:21 Сейчас в теме
(393)
(393)
Нет по сей день не решил пока отложил в сторону. К слову с остальными компонентами такая же история. Мое субъективное мнение что то внутри андроида блокирует.
392. vladnet 382 30.09.23 17:16 Сейчас в теме
Здравствуйте!

на 11 версии андроида тоже не работает, что делать?
395. IgorKissil 366 01.10.23 19:28 Сейчас в теме
(391) (392) (394) Доброго времени всем. Увидел последние комментарии. Собрал демо cf на платформе 8.3.23 из статьи и запустил на android 13. События (заряд батареи) отлавливаются. Просьба подробно описать поведение приложения и доступные ошибки.
402. pioneeer 26.01.24 03:16 Сейчас в теме
(395) Игорь, день добрый. Как могу с вами связаться по вопросам сотрудничества?
396. user1691632 04.10.23 12:52 Сейчас в теме
Добрый день!
На 11 версии андроида сканирование заработало. Не знаю в чем дело было.
Обновил Мобильную платформу до Версия 8.3.23.59(32x) и обновил сборщик приложений до 8.3.23.9.

Единственное проблема в обработке.
Форма:ФормаBroadcasts
Элемент формы: РежимРаботы
При его переключении происходит ошибка
"Ошибка подключения внешней компоненты после обновления. Необходима перезагрузка приложения."
Приложение собрано через Android Debug Bridge
397. user1691632 04.10.23 12:59 Сейчас в теме
Подскажите можно ли компонентой
1.Перехватывать несколько разных событий
Данные по заряду батареи,нажатие кнопок на ТСД и сообщения сканера ШК.
2. Перехватить сообщения аппаратной клавиатуры, в данный момент занимался с тсд PM451.
Спасибо
398. 1c-soft 09.10.23 20:52 Сейчас в теме
399. NewCoder 23.10.23 20:34 Сейчас в теме
Добрый день!
Пробую использовать эту компоненту с ТСД. Подключается, ловит Broadcast со штрихкодом, с этим все ок.
Но есть проблема: запускаю приложение, сканирую, все ок. Закрываю приложение, снова открываю, пытаюсь сканировать и приложение вылетает с ошибкой "В работе приложения произошел сбой". При чем до функции Внешнее событие не доходит и не понятно на чем валится. Снова открываю приложение и оно работает штатно, пока его не закрою. Т.е. получается один раз запускаю приложение - оно работает штатно, закрываю, второй раз запускаю - оно вылетает, снова перезапускаю приложение - работает. Мобильная платформа 8.3.23.59
401. markers 279 23.11.23 05:35 Сейчас в теме
Вдруг кому будет нужно, параметры для Caribe PL-60L
Событие по умолчанию (в приложении сканера можно менять): com.scanner.broadcast
Параметр содержащий штрихкод: barcodeStringData (не смотря на то что стандартный ключ "data", но он почему-то не содержит данных)
Тип данных: 0
403. nik_rzn 18.03.24 10:26 Сейчас в теме
Добрый день! Подскажите внешняя компонента имеет ограничение на использование, например 6 считываний ?
404. user1381504 01.08.24 17:04 Сейчас в теме
Добрый день!
У меня CipherLab RS30.
Всё настроил, внешние события приходят, но не получаю ШК.
В поле Decoder_Data не прилетает ничего, хотя в программе ReaderConfig при тесте ШК отображается.
Прописал как в (367) и установил параметр в компоненту.

Подскажите у кого такие же CipherLab как вы настроили Reader Config?

Фильтр: com.cipherlab.barcodebaseapi.PASS_DATA_2_APP

barcodeCipher = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,"Decoder_Data",XMLСтрока(Ложь),XMLСтрока(16));
Компонента.УстановитьПараметр("CaptureData",barcodeCipher);
405. user949769 06.08.24 12:58 Сейчас в теме
(404) Всё настроил, всё работает.
Перечитал внимательно статью автора, поменял настройки полей чтения файла от драйвера сканера.

Инструкция для ТСД CipherLab RS30/RS31.

ПриНачалеРаботыСистемы():

Перем пц_КомпонентаДляRS30 Экспорт;

Если не ПодключитьВнешнююКомпоненту("ОбщийМакет.ComponentFromMistaForum", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
//какой - то текст ошибки
КонецЕсли;

// тут же в отдельной процедуре сразу включаю компоненту
1. Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
2. ИмяСобытия = "com.cipherlab.barcodebaseapi.PASS_DATA_2_APP";
3. Компонента.УстановитьПараметр("FilterName",ИмяСобытия);
4. ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
5. ИмяПоляСоШтрихкодом = "Decoder_Data";
6. barcodeCipher = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, ИмяПоляСоШтрихкодом, XMLСтрока(Ложь), XMLСтрока(0));
7. Компонента.УстановитьПараметр("CaptureData",barcodeCipher);
8. Компонента.УстановитьПараметр("OutputFormat", 1);
9. НомерУстройства = "";
10. Если НЕ Компонента.Подключить(НомерУстройства) Тогда
КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
КонецЕсли;

ПриЗавершенииРаботыСистемы():
1. НомерУстройства = "";
2. Компонента.Отключить(НомерУстройства);

На каждой форме включаю Внешнее событие и отлавливаю события "UniversalBroadcastEvent".
Потом вытаскиваю из полученного XML штрихкод строковыми функциями и всё работает.

Автору большое спасибо!
406. chekonst 88 21.08.24 10:37 Сейчас в теме
При выполнении метода Подключить возвращается отрицательный результат.
Код ошибки 0.
Причем на одном сканере все работает ChiperLabRT40, на другом (ChiperLabRK25) - нет.
407. IddqdIT 20.10.24 21:36 Сейчас в теме
Имя внешнего события, которое генерится при считывании ШК (broadcast) устройством АТОЛ Smart.Slim знает кто?
408. sam27th 22.10.24 09:22 Сейчас в теме
ТСД Zebra MC3300x . Андроид 10 , мобильная платформа 1С 8.3.24.40 (32). Нужно получить в 1С Внешнее событие с отсканированным ШК.
Воспользовался предоставленной компонентой. Инициализация проходит без каких либо ошибок.
При этом в 1С обработка внешнего события не возникает.
В настройках DataWedge:
Intent output - Enabled output via intent
Intent action - com.iksoftware.zebra.SCAN

Пробовал в коде (и одновременно в настройках) менять FilterName (и в настройках Intent action) на "DATA_SCAN" и "scan.rcv.message". Результата нет.

Не подскажите , в чем может быть проблема?

Код подключения в обработке :

		Попытка	
			УстановитьВнешнююКомпоненту("ОбщийМакет.Component");
		Исключение
			Сообщить("Ошибка установки внешней компоненты Component.");
		КонецПопытки;
		Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component","Messages",ТипВнешнейКомпоненты.Native) Тогда
			Попытка
				КомпонентаОповещений = Новый("AddIn.Messages.UniversalBroadcast");
			Исключение
				Сообщить("Ошибка создания класса UniversalBroadcast.");
				Возврат Ложь;  
			Конецпопытки;
			
			//КомпонентаОповещений.УстановитьПараметр("FilterName", "DATA_SCAN");
			//КомпонентаОповещений.УстановитьПараметр("FilterName", "scan.rcv.message");
			
			КомпонентаОповещений.УстановитьПараметр("FilterName", "com.iksoftware.zebra.SCAN");
			//КомпонентаОповещений.УстановитьПараметр("Category", "android.intent.category.DEFAULT");
			
			ШаблонДанных = КомпонентаОповещений.ПолучитьШаблонОписанияДанных();
			ТипМетки  = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "com.symbol.datawedge.label_type", XMLСтрока(Ложь), XMLСтрока(0));
			ТипДанные = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных, "com.symbol.datawedge.data_string", XMLСтрока(Ложь), XMLСтрока(0));
			КомпонентаОповещений.УстановитьПараметр("CaptureData", ТипМетки);
			КомпонентаОповещений.УстановитьПараметр("CaptureData", ТипДанные);
			
			Попытка
				КомпонентаОповещений.Подключить();
			Исключение
				ТекстОшибкиКомпоненты = "";
				КодОшибки = КомпонентаОповещений.ПолучитьОшибку(ТекстОшибкиКомпоненты);
				Сообщить("Ошибка : " + КодОшибки + ", " + ТекстОшибкиКомпоненты);
			КонецПопытки;	
		Иначе
			Сообщить("Ошибка подключения компоненты UniversalBroadcast.");
			Возврат Ложь;
		КонецЕсли;
Показать
409. user766964 20.12.24 15:14 Сейчас в теме
Режим асинхронно, в фоне внешнее событие не возникает. Подключаем сканер. Что неправильно делаем? Конигурация используется из примера.
410. IgorKissil 366 20.12.24 21:14 Сейчас в теме
(409) Явное указание режима работы компоненты не используется (экспортная функции GetAttachType() в компоненте не реализована). Но я не уверен, поддерживает ли мобильная платформа полноценную работу с асинхронными вызовами компонент. Сомнения основаны на том, что в официальных шаблонах разработки компонент от 1С https://releases.1c.ru/version_file?nick=Platform83&ver=8.3.26.1498&path=Platform%5c8_3_26_1498%5caddin_8_3_26_1498.zip файл AddInNative.cpp из папки templateMobile также не содержит этого экспортного метода, Библиотека подключаемого оборудования для мобильных приложений https://releases.1c.ru/version_files?nick=MobileCEL&ver=3.2.528 ни для одного драйвера не использует вызовы по шаблону НачатьВызов<ИмяМетода>() а также свойство конфигурации "Режим использования синхронных вызовов..." библитеки установлено в "Использовать"
411. user766964 21.12.24 18:09 Сейчас в теме
(409)Спасибо за ответ.
Как правильно подключать сканер, чтобы получать внешнее событие при сканировании асинхронно в фоне?
Работу с весами в синхронном режиме реализовали - работает.
В статье написано -"работу с устройствами через последовательные чтение/запись (com over bluetooth). Чтение данных может выполняться синхронно, в этом случае приложение ожидает данные, пока они не появятся от устройства, а приложение останавливается. Либо асинхронно в двух режимах - по запросу и в фоне. В первом случае компонента проверяет наличие данных и если их нет, возвращает ошибку, во втором ответ от устройства проверяется постоянно в отдельном потоке и при появлении данных в 1С возникает внешнее событие. Последний режим удобен для работы со сканерами, например такими. Работа с блютуз добавлена в представленную компоненту, чтобы расширить область ее применения в отношение сканеров.
412. IgorKissil 366 22.12.24 19:03 Сейчас в теме
(411) Если у вас устройство bluetooth, проверьте, что оно работает в синхронном режиме. Если в синхронном работает, а асинхронно (ReadMode=2) события не появляются, реализуйте работу на ReadMode=1 по таймеру формы 1С. Компонента писалась лет 5 назад, возможно в новых версиях андроида есть изменения, не учтенные в старой реализации компоненты.
413. user766964 23.12.24 00:47 Сейчас в теме
(412) Обычный сканер штрих-кода.
414. user2124995 31.01.25 14:41 Сейчас в теме
Почему то не выдает список устройств блютуз когда переключается галка "Найти все устройства" и поиск устройств не производится
415. JusteRU 06.11.25 09:34 Сейчас в теме
Решили обновить парк ТСД и под 14 Android получаем ошибку при попытке "Подключить()":

One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts.

Есть версия компоненты где это решено?
416. IgorKissil 366 10.11.25 18:48 Сейчас в теме
(415) В новом релизе 1.3.6
417. пользователь 23.05.26 21:15
Сообщение было скрыто модератором.
...
418. skakalka 01.06.26 09:02 Сейчас в теме
Здравствуйте! Приобрел Вашу ВК. Хотелось бы использовать ее на терминале сбора данных Atol Smart Lite. В отладчике видно, что компонента подключается, но при сканировании внешнего события не формируется. Файл .apk не собирал. Делаю на мобильной платформе. В вышеизложенной переписке видел, что надо собирать файл .apk, но эти сообщения были несколько лет назад. Подскажите, такое поведение может быть из-за того, что пытаюсь все делать на мобильной платформе, или может быть еще что-то другое. Версия платформы 1С:Предприятие 8.3 (8.3.27.1989). Код на 1С:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
#Если МобильноеПриложениеКлиент Тогда
УстановитьВнешнююКомпоненту("ОбщийМакет.Component");
Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Component", "Broadcasts", ТипВнешнейКомпоненты.Native) Тогда
Компонента = Новый("AddIn.Broadcasts.UniversalBroadcast");
ИмяСобытия = "com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST";
Компонента.УстановитьПараметр("FilterName", ИмяСобытия);
ШаблонДанных = Компонента.ПолучитьШаблонОписанияДанных();
CaptureData = "EXTRA_BARCODE_DECODING_DATA";
barcode = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонДанных,CaptureData,XMLСтрока(Ложь),XMLСтрока(0));
Компонента.УстановитьПараметр("CaptureData",barcode);
Иначе
ПоказатьПредупреждение(,"Компонента не подключена", 5);
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;

Если не Компонента.Подключить() Тогда
ТекстОшибки = "";
КодОшибки = Компонента.ПолучитьОшибку(ТекстОшибки);
ПоказатьПредупреждение(,"Ошибка: "+КодОшибки+", "+ТекстОшибки);
КонецЕсли;
#КонецЕсли
КонецПроцедуры
419. skakalka 02.06.26 03:48 Сейчас в теме
Неужели зря деньги потратил!
420. skakalka 02.06.26 04:38 Сейчас в теме
Не работает
Прикрепленные файлы:
421. markers 279 17.09.26 13:49 Сейчас в теме
(420) Компонента рассчитана на Android, а судя по скрину, вы её пытаетесь подключить под Windows.
Вам необходимо воспользоваться сборщиком приложений 1С, собрать своё приложение, в нем должны приложится компонента эта. На выходе получаете свой apk файл, который уже устанавливаете на Android и получаете работающую компоненту
422. skakalka 18.09.26 02:00 Сейчас в теме
(421) Добрый день! Не, ставил я ее на ТСД с Андроид. Ну да уже все выброшено, поэтому не актуально.
Для отправки сообщения требуется регистрация/авторизация