Bluetooth сканер штрихкодов и мобильное приложение 1С (Android)

15.11.18

Разработка - Инструментарий разработчика

Сервис для работы со сканером штрихкодов и передачи данных в мобильное приложение 1С.

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
Тестовая мобильная конфигурация
.cf 24,53Kb
45
45
1 SM
Скачать Купить за 1 850 руб.
Сервис работы со сканером
.apk 1,49Mb
45
45
2 SM
Скачать Купить за 2 150 руб.
Исходники сервиса работы со сканером
.zip 12,28Mb
28
28
4 SM
Скачать Купить за 2 750 руб.

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

Предыстория

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

Как работает сканер штрихкодов?

На данный момент, обычный (современный) сканер имеет два режима работы: режим разрыва клавиатуры и режим эмуляции com-порта (другое название SPP Mode).

В режиме разрыва клавиатуры сканер - это клавиатура. В таком случае необходимо чтобы:

  • Экран был включен
  • Курсор стоял в поле ввода
  • Необходимо разрабатывать особый алгоритм отработки данных

В режим SPP - это обычное устройство подключенное через com-порт, которое посылает на него сообщения (в данной случае считанный штрихкод)

  • Необходимо чтобы было запущено приложение (в наш случае 1С) для получения и обработки данных со сканера.

Очевидно, режим SPP это то что нам нужно.

Как подключить беспроводной сканер к мобильному устройству в режиме SPP Mode?

На первый взгляд все просто: включить bluetooth, найти устройство в окружении, подключиться к нему. Да, устройство подключится, но толку от него не будет. Для того чтобы работать со сканером в режиме SPP Mode необходимо дополнительное приложение, которое будет с ним работать. А именно поддерживать подключение и принимать сообщения. И тут на помощь приходит Java. С ее помощью можно разработать то самое приложение, которое нам требуется.

На инфостарте есть несколько публикаций, которые выполняют похожую функцию, но к сожалению только для ТСД. Им огромное спасибо за идею.

раз Управляемый Android Service перехвата сообщений Broadcast со сканера штрих-кодов в 1С

два Внешнее событие" и мобильная платформа 1С

Сервис для работы с беспроводным сканером в режиме SPP Mode

Проштудировав множество сайтов по Java, наткнувшись на множество недоработок в мобильной платформе 1С, в конечном итоге написал приложение (правда без графического интерфейса), которое реализует требуемую функцию. 

Немного о сервисе:

  • Сервис предоставляет функцию получению УИД устройства (только спаренного, то есть подключенного). Полученный УИД можно будет сохранить где-нибудь в константе и далее использовать его для подключения
  • Сервис предоставляет функцию подключения к сканеру (с помощью ранее полученного УИДа) и обеспечивает фоновую работу с устройством.
  • Сервис выполняет фоновую отправку уведомления в мобильное приложение 1С.
  • Сервис работает со всеми сканерами которые имеют функцию SPP Mode

Как это выглядит в 1С ---->>>>

 

 

Вот основное действие для запуска сервиса

#Если МобильноеПриложениеКлиент Тогда
	Попытка
		Запуск = Новый ЗапускПриложенияМобильногоУстройства();
		Запуск.Действие = "com.bluetoothscanersender.action";
		// Для ServiceState есть два действия
		// 1. GetBTAdress  - получаем адрес блютуса
		// 2. start - выполняет подключение к сканеру и запускает процедуру для работы с сообщениями от сканера
		Запуск.ДополнительныеДанные.Добавить("ServiceState","start"); 
		Запуск.ДополнительныеДанные.Добавить("BTAdress",ЗначениеКонстант.АдресBluetooth); 
		// получим идентификатор базы, так как при нескольких базах при входящем сообщении
		// будет появляться ошибка "Уведомление для неизвестного приложения"
		СистемнаяИнформация = Новый СистемнаяИнформация;
		// при одной базе указать значение ""
		Запуск.ДополнительныеДанные.Добавить("ServiceBase_Name","");
		// результат запуска будет в виде всплывающего окна "toast" из запускаемого приложения
		Запуск.Запустить(Истина);
	Исключение
	// сообщаяем что что-то не работает	
	КонецПопытки;
#КонецЕсли

Вот процедура для обработки уведомлений из сервиса (все возвращаемые значения имеют тип "Строка")

// выполняет подключения обработчика событий, который будет мониторить локальные уведомления
//
Процедура ПодключитьГлобальноеСобытиеОповещения()  Экспорт
	#Если МобильноеПриложениеКлиент Тогда
		ОП = Новый ОписаниеОповещения("ОбработчикЛокальныхУведомлений", ЭтотОбъект);
		ДоставляемыеУведомления.ПодключитьОбработчикУведомлений(ОП);  
	#КонецЕсли
КонецПроцедуры // ПодключитьГлобальноеСобытиеОповещения()

// Подключает процедуру-обработчик получения уведомления
//
// Параметры:
//  Уведомление - Объект, содержащий данные уведомления, у которого заполнены только поля "Текст" и "Данные", остальные содержат значения по умолчанию.
//  Локальное - тип Булево. Истина - уведомление было создано локально операционной системой. Ложь - было получено Push-уведомление. 
//  Показано - тип Булево. Указывает, что уведомление было показано пользователю средствами операционной системы.
//
Процедура ОбработчикЛокальныхУведомлений(Уведомление,Локальное,Показано,ДопПараметр) Экспорт
	ГлобальноеСобытиеОповещения(Новый Структура("Отправитель,Текст",Уведомление.Текст,Уведомление.Данные));
КонецПроцедуры // ОбработчикЛокальныхУведомлений()

// Обработчик перехваченного события
//
Процедура ГлобальноеСобытиеОповещения(Сообщение)
	Отправитель = Сообщение.Отправитель;
	Если Отправитель = "SenderBarcode" Тогда
		// получили штрих код
		Оповестить(Отправитель,Сообщение.Текст, "Сканирование ШК");
	ИначеЕсли Отправитель = "GetBTAdress" Тогда
		// получили адрес bluetooth нашего сканера в формета "Имя сканера /// Адрес сканера"
		Оповестить(Отправитель,Сообщение.Текст, "Адрес bluetooth");
	Иначе 
		Возврат
	КонецЕсли;	
КонецПроцедуры 

 

Баги, фичи и прочие факи

При разработке приложения на Java проблем не было. Они начались при попытки "подружить" сервис и мобильного приложения 1С. 

Итак, имеем следующие баги (или если хотите недоработки) в мобильной платформе 1С:

  • Самая важная проблема - мобильное приложение не может принимать внешние оповещения. Вернее в каких то версиях могло принимать, а в каких то нет. В комментариях к этой (Публикация) публикации это упоминалось. Чиниться это просто:

в файле платформы permissions.xml по адресу Android\prjandroid-arm\bin (точно также как описано в публикации) добавляем android:exported="true" и добавляем фильтр на получаемые уведомления 

<intent-filter>
     <action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>

в итоге должны получить следующее: 

    <LocalNotification>

        <uses-permission android:name="android.permission.VIBRATE"/>

        <target xpath="/manifest/application" >

            <receiver
                android:name="com.e1c.mobile.LocalNotificationReceiver"
                android:enabled="true"
                android:exported="true">
				<intent-filter>
                    <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                </intent-filter>
            </receiver>
        </target>
    </LocalNotification>

именно по этому адресу сервис будет отправлять сообщения в 1С, а 1С соответственно получать их.

В сервисе это выглядит так (сообщение отправки списка блютуз устройств):

Intent intentFor1C = new Intent("com.google.android.c2dm.intent.RECEIVE");
intentFor1C.putExtra("text", "GetBTAdress");
intentFor1C.putExtra("title", "1C");
intentFor1C.putExtra("data", (Serializable) TextOfDevice);
intentFor1C.putExtra("base", BaseName);

Есть некоторые "фичи":

  • При сворачивании мобильного приложения 1С, и при следующем возвращении к нему, запущенный клиентский ранее сеанс зависает. И при этом требуется перезапустить приложение. Можно ли это как исправить?Если кто-то знает может поделиться информацией.

Оборудование и программное обеспечение.

При разработке я использовал:

  1. Сборщик мобильных приложений 1С версии 2.0.7.48 (в сборщике использовал ANT 1.10.5, JDK 1.8.0_181 )
  2. Мобильная платформа 1С версии 8.3.9.91 (Версия 8.3.12.67 вообще не собралась, опытным путем решил что там ошибок больше чем в выбранной 8.3.9)
  3. Планшет Samsung Galaxy Tab A (Android 5.1)
  4. Сервис для работы со сканером написан на Java c помощью Android Studio 3.2.1, с поддержкой api level 15 (взял минимальный для того чтобы приложение работало на большинстве устройств)
  5. Сканер штрих кодов Netum RD-1698LY (Вот ссылка на его описание). Сразу скажу что режим SPP Mode у него работает только с Windows и Android.

Улучшение сервиса

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

 

 

bluetooth сканер штрихкод сканер штрихкода фоновый режим broadcast разрыв клавиатуры Netum Android

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    140991    774    391    

803

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    11640    31    6    

61

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

5400 руб.

17.05.2024    14162    35    27    

78

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    7335    27    4    

51

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2880 руб.

14.01.2013    182018    1104    0    

876

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    101189    243    97    

304

Инструментарий разработчика Перенос данных 1C Программист Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы. Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение для 1С, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    24534    17    15    

34

Инструментарий разработчика Программист Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    19475    7    8    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. s.kochnev 12.11.18 14:01 Сейчас в теме
Спасибо, очень полезная штука. Не знаю, чем так принципиально отличается приложение из сборщика от типового APK, но у ОбработчикЛокальныхУведомлений() должно быть четыре параметра для типовой платформы, хоть это и не описано в СП.
2. Isonic 240 15.11.18 08:55 Сейчас в теме
(1) Да Вы правы.Поправил. Спасибо)
25. ArMellon 24.08.23 19:24 Сейчас в теме
(2) Здравствуйте! Интересует эта тема под текущую версию мобильной и другой сканер? Можем обсудить?
3. s.kochnev 19.11.18 14:37 Сейчас в теме
Здравствуйте!

При сканировании штрих-код почему-то делится на две части, обычно это первая цифра, а потом остальное. Соответственно получается два разных ШК. Выяснил, что приходит именно два события, то есть обработчик уведомлений вызывается дважды. Платформа 8.3.9.91 (в 8.3.11 так же точно), Android 7.1.2, сканер Motorola CS3070. Когда пробовал первый раз, вроде всё нормально было. Пока не могу попробовать на другом устройстве.
4. Isonic 240 19.11.18 15:45 Сейчас в теме
(3) Предполагаю что у двух обработчиков платформы одинаковые фильтры стоят, то есть в файле платформы "permissions.xml" в двух секциях, скорее всего в <PushNotification> и в <LocalNotification>, в обработчике <receiver> стоят одинаковые значения. Можете показать две эти секции?
5. s.kochnev 19.11.18 15:57 Сейчас в теме
(4)
У меня стандартный apk от 1С, разобрал apktool'ом, там такого файла нету, в AndroidManifest.xml вот такое:

<receiver android:enabled="true" android:name="com.e1c.mobile.PushNotificationReceiver">
  <intent-filter>
    <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
      <category android:name="com.e1c.mobile"/>
  </intent-filter>
</receiver>

и
<receiver android:enabled="true" android:name="com.e1c.mobile.LocalNotificationReceiver"/>


Сборщик приложений у меня, видимо, недоступен по подписке, так что других вариантов нету.
6. Xershi 1506 19.11.18 16:33 Сейчас в теме
Добрый день!
Планирую написать генератор баркодов на андроиде.
В этой теме изучаю вопрос: https://forum.infostart.ru/forum15/topic202825/
Можете поделиться информацией как продвинуться дальше нуля?
7. user1151163 15.02.19 22:06 Сейчас в теме
а можно в это приложение добавить мобильный принтер (этикеток) ?
8. Isonic 240 18.02.19 08:04 Сейчас в теме
(7) Вы про формирование штрихкода в мобильном приложении? Или про вызов печати из приложения?
9. Mechanik21 24 27.02.20 17:00 Сейчас в теме
А как подключить к 1с на компе блютуз сканер с SPP? два ком-порта у меня есть, что делать с ними не знаю, тест драйвера говорит, что они заняты
10. KAV2 156 10.03.20 18:16 Сейчас в теме
Фидбэк:
Если установить службу, открыть в 1С форму настроек и включить запуск при старте, но при этом не указать ни одного сканера для подключения (АдресBluetooth пустой),то при старте служба крашится, а в месте с ней и 1С.
11. starik-2005 3061 10.03.20 18:30 Сейчас в теме
А зачем сложно-то так? Есть внешняя компонента 1С (в ней и мобильная компонента есть) для подключения сканера (с версии 8, если правильно помню - актуальная сейчас). Сканер подключается к телефону по блютусу, работает как HID-устройство (клавиатура). Компонента просто из макета в модуле сеанса подключается и дальше в любой форме через обработчик внешнего события в МП передается сосканированный ШК.
12. KAV2 156 10.03.20 20:41 Сейчас в теме
(11) Это в БПО для мобильных приложений? А не подскажите как называется макет с внешней компонентой в конфигурации?
13. Isonic 240 11.03.20 08:40 Сейчас в теме
(11) Для того чтобы сканер работал как клавиатура никаких компонент не нужно, просто подключаешься к сканеру и готово. А данная публикация показывает как работать со сканером в фоновом режиме.

Или Ваша компонента может работать в режиме SPP Mode?
14. starik-2005 3061 11.03.20 10:25 Сейчас в теме
(13) компонента от 1С может работать на мобильной платформе в фоновом режиме, перехватывая клавиатуру и генерируя внешнее событие для формы или модуля сеанса. Это стандартная компонента из библиотеки подключаемого оборудования. Поэтому, ИМХО, изобретать велосипеды тут не нужно - там все очень стабильно работает. Эта компонента используется, в частности, в мобильной рознице, которую можно скачать с гуглплэя даже...
15. Isonic 240 11.03.20 10:53 Сейчас в теме
(14) чтобы не быть голословным, можете скинуть ссылку сия чуда?
17. starik-2005 3061 11.03.20 11:40 Сейчас в теме
(15)
(16)
По поводу макета, то это общий макет, называется как-то типа ДрайверВнешнейКомпонентыСканераБлаБлаБла... - ну реально посмотрите внимательно сами в БПО, у меня сейчас на компе ее нет. Я в МП просто выдернул этот макет и назвад "drv", подключается так:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	НачатьПодключениеВнешнейКомпоненты(Новый ОписаниеОповещения("ПослеПодключения1", ЭтаФорма, ), "ОбщийМакет.Drv", "InputDevice", ТипВнешнейКомпоненты.Native);
КонецПроцедуры

&НаКлиенте
Процедура ПослеПодключения1(Рез, Доп) Экспорт

	Т = Mainer.Добавить(); // таблица на форме
	Т.Код = "После подключения!";

	Если Рез = Ложь Тогда 
		Т = Mainer.Добавить(); // таблица на форме
		Т.Код = "ОПА!";
	Иначе
		ВК = Новый("AddIn.InputDevice.InputDevice"); // создаем это самое
		Версия = ВК.GetVersion(); // получаем версию (можно и без нее)
		П1 = "";
		П2 = "";
		П3 = "";
		П4 = "";
		П5 = "";
		П6 = "";
		П7 = "";
		
		ВК.ПолучитьОписание(П1, П2, П3, П4, П5, П6, П7); // получаем описание

		Параметры1 = "";

		ВК.ПолучитьПараметры(Параметры1); // получаем параметры
		СтрокаПараметры = Параметры1;

		ВК.УстановитьПараметр("BluetoothDevice", "DEV_KEYBOARD"); // устанавливаем тип сканера блютус девайЗ
		ВК.УстановитьПараметр("OutputDataType", 0); // тип данных выходных

		ОК = ВК.Подключить(""); // подключаем компоненту 
		Если НЕ Ок Тогда
			ВК.ПолучитьОшибку( П7 ); // если ошибка
			Т = Mainer.Добавить();
			Т.Код = П7;
		Иначе
			Mainer.Добавить().Код = "Подключено" // если без ошибок
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные) // внешнее событие, генерируемое компонентой
	Строки = Mainer.НайтиСтроки(Новый Структура("Код", Данные));
	Если Строки.количество() = 0 Тогда 
		Т = Mainer.Добавить(); // добавляем строку
		Т.Код = Данные;  // данные - это ШК
	Иначе
		Т = Строки[0]
	КонецЕсли;
	Т.Количество = Т.Количество + 1;
	СтрокаКод = "";
КонецПроцедуры
Показать


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

В манифест-файле вот такие слова:
<?xml version="1.0" encoding="UTF-8"?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle" name="com_1c_ScanOPOS">
<component os="Windows" path="ScanOPOSNativeWin32_9_0_7_5.dll" type="Native" object="" arch="i386" client="" clientVersion="" xmlns="" />
<component os="Windows" path="ScanOPOSNativeWin64_9_0_7_5.dll" type="Native" object="" arch="x86_64" client="" clientVersion="" xmlns="" />
<component os="Linux" path="ScanOPOSNativeLin32_9_0_7_5.so" type="Native" object="" arch="i386" client="" clientVersion="" xmlns="" />
<component os="Linux" path="ScanOPOSNativeLin64_9_0_7_5.so" type="Native" object="" arch="x86_64" client="" clientVersion="" xmlns="" />
<component os="Windows" path="AddInChromeSetup.exe" type="plugin" object="com.1c.enterprise.scanoposnative.native.9.0.7.5" arch="i386" client="Chrome" clientVersion="" xmlns="" />
<component os="Windows" path="AddInChromeSetup.exe" type="plugin" object="com.1c.enterprise.scanoposnative.native.9.0.7.5" arch="i386" client="Firefox" clientVersion="40.*" xmlns="" />
<component os="Windows" path="AddInChromeSetup.exe" type="plugin" object="com.1c.enterprise.scanoposnative.native.9.0.7.5" arch="x86_64" client="Chrome" clientVersion="" xmlns="" />
<component os="Windows" path="AddInChromeSetup.exe" type="plugin" object="com.1c.enterprise.scanoposnative.native.9.0.7.5" arch="x86_64" client="Firefox" clientVersion="40.*" xmlns="" />
<component os="Windows" path="PackageIE.cab" type="plugin" object="1C-SoftScanOPOSNative_9_0_7_5_IE.AddInServiceEx" arch="i386" client="MSIE" clientVersion="" xmlns="" />
<component os="Android" path="libcom_1c_ScanOPOS_i386_9_0_7_5.so" codeType="c++" type="native" arch="i386"/>
<component os="Android" path="com_1c_ScanOPOS_9_0_7_5.apk" codeType="java" type="native" arch="i386"/>
<component os="Android" path="libcom_1c_ScanOPOS_ARM_9_0_7_5.so" codeType="c++" type="native" arch="ARM"/>
<component os="Android" path="com_1c_ScanOPOS_9_0_7_5.apk" codeType="java" type="native" arch="ARM"/>
<component os="Android" path="libcom_1c_ScanOPOS_ARM64_9_0_7_5.so" codeType="c++" type="native" arch="ARM64"/>
<component os="Android" path="com_1c_ScanOPOS_9_0_7_5.apk" codeType="java" type="native" arch="ARM64"/>
<component os="Android" path="libcom_1c_ScanOPOS_x86_64_9_0_7_5.so" codeType="c++" type="native" arch="x86_64"/>
<component os="Android" path="com_1c_ScanOPOS_9_0_7_5.apk" codeType="java" type="native" arch="x86_64"/>
</bundle>
Показать
independ; RuSeek; user1203706; KAV2; Isonic; +5 Ответить
18. Isonic 240 11.03.20 11:53 Сейчас в теме
(17) Спасибо. Надо изучить этот вопрос. Кажется мне, что не все сканеры поддерживаются данной компонентой.
19. starik-2005 3061 11.03.20 11:55 Сейчас в теме
(18)
Кажется мне, что
Там есть эти самые параметры, в них список портов и названий устройств - в формате XML. В данном случае настроено на внутренний сканер ТСД, который сконфигурирован как клавиатурный эмулятор (в настройках андройда на ТСД). А так в этих параметрах список подключаемых устройств - 1С в БСП парсит этот файл и возвращает для каждого параметра список возможных настроек в виде формы настроек подключаемого оборудования (да, такая фича и в мобильной БСП есть, которая является неотъемлемой частью самой БСП).
20. KAV2 156 12.03.20 14:15 Сейчас в теме
(17) Сергей, огромное спасибо за такой подгон! А вы не знаете, надо ли передавать в компоненту мак адрес сканера? или вы вот точно так его подключали как в вашем примере?
21. starik-2005 3061 12.03.20 14:49 Сейчас в теме
(20)
или вы вот точно так его подключали как в вашем примере?
Я подключал локальный сканер, ТСД (встроенный),, который настроил на генерацию событий клавиатуры.

Предположу, что при получении параметров компонента сама передает список возможных устройств - нужно просто пропарсить xml, возвращающий настройки. У меня под рукой нет сейчас никакого сканера.
16. KAV2 156 11.03.20 11:12 Сейчас в теме
(14) Подскажите пожалуйста как называется макет с внешней компонентой в БПО?
22. KAV2 156 07.10.20 09:22 Сейчас в теме
В текущей версии ведь нельзя подключить несколько сканеров к одному телейфону?
23. Isonic 240 07.10.20 12:42 Сейчас в теме
24. eginson666 02.09.22 11:47 Сейчас в теме
этот код нужно в модуль приложения вставить?
Оставьте свое сообщение