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

09.09.16

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

Внешние компоненты в Android для Мобильной Платформы 1С или как вызвать внешнее событие, когда его нет.

Скачать файл

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

Наименование По подписке [?] Купить один файл
BarcodeService
.zip 47,01Mb
100
100 Скачать (1 SM) Купить за 1 850 руб.

Предыстория

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

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

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

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

А теперь самое главное.

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

Дано:

1. CipherLab RS30

2. SDK для вашего сканера

3. Сборщик мобильных приложений

4. Сама мобильная платформа

5. Android Studio

А теперь начинается магия:

1. Распаковываем файлы платформы

2. Нас интересует Android\prjandroid-arm\bin\permissions.xml этот файл

Этот файл используется при сборке приложений и добавляет в AndroidManifest разрешения, которые указаны в конфигурации.

3. Нас интересует секция <LocalNotification>, которая добавляется, если установлена отметка Локальные Уведомления в требуемых разрешениях мобильного приложения. По умолчанию она выглядит так.

    <LocalNotification>
        <uses-permission android:name="android.permission.VIBRATE"/>
        <target xpath="/manifest/application" >
            <receiver
                android:name="com.e1c.mobile.LocalNotificationReceiver"
                android:enabled="true" >
            </receiver>
        </target>
    </LocalNotification>

4. Здесь нас интересует секция <receiver>,  com.e1c.mobile.LocalNotificationReceiver является потомком класса BroadcastReceiver, который как раз нам и нужен. Первое, что нам нужно сделать, это добавить атрибут android:exported="true" это позволит принимать сообщения из внешней программы.

5.  Дальше нам нужно добавить фильтр, который будет указывать, какое событие может принять наш receiver, его-то мы и будем передавать из нашей компоненты.

<intent-filter>
       <action android:name="ru.dewersia.barcodeDLL.TRUSTCONNECT" />
</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=" ru.dewersia.barcodeDLL.TRUSTCONNECT " />
                </intent-filter>

            </receiver>
        </target>
    </LocalNotification>

6. Теперь запаковываем все обратно, наша мобильная платформа готова.

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    // Вставить содержимое обработчика.
    Параметр = Неопределено;
    ОП = Новый ОписаниеОповещения("КрутойОбработчик",ЭтаФорма,Параметр);
    ДоставляемыеУведомления.ПодключитьОбработчикУведомлений(ОП);
    былЗапуск = ЛОЖЬ;
КонецПроцедуры


&НаКлиенте
Процедура КрутойОбработчик(Уведомление,Локальное,Показано,ДопПараметры) Экспорт
    Сообщить(Уведомление.Текст);
    ШтрихКод = Уведомление.Текст;
КонецПроцедуры

8. Отправка сообщений в Android выглядит так:

    private void sendMessage(String title,String text) {
        Intent intent = new Intent();
        intent.setAction("ru.dewersia.barcodeDLL.TRUSTCONNECT");
        intent.putExtra("text", text); //Основной текст сообщения
        intent.putExtra("base", "");
        intent.putExtra("title", title); //Будем использовать для определения действия
        sendBroadcast(intent);
    }

В параметры передаваемого сообщения добавляется значение с ключом base

 intent.putExtra("base", "");

Уважаемый DitriX в одном из своих комментариев писал, что туда должен передаваться ID базы, но на все попытки передать туда какое-либо значение из всех возможных, в сообщении появлялась надпись "Сообщение для неизвестной базы", при передаче пустого значения все отлично работает.

Всем большое спасибо за внимание, надеюсь, эта информация будет кому-нибудь полезна.

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

См. также

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 1С:Конвертация данных Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    38196    108    161    

201

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

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

3000 руб.

03.12.2018    59291    192    103    

172

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 Мобильная платформа 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. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    97225    586    189    

321

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

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

3450 руб.

28.04.2023    9469    15    0    

9

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента в виде библиотеки (.dll файл), позволяющая посылать команды и получать ответы по протоколу WebSocket из 1С. Компонента работает только на стороне "клиента".

4440 руб.

22.06.2020    18126    18    33    

22

Разработка внешних компонент Телефония, SIP Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

2400 руб.

04.05.2018    46786    122    66    

66

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Финансовые услуги, инвестиции Управленческий учет Платные (руб)

Мобильное приложение и конфигурация 1С для автоматической торговли на бирже через API Тинькофф банка. Достаточно задать настройки, нажать «Пуск», и робот сам торгует ежедневно.

7000 руб.

25.05.2022    4644    1    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. gorevg 16 09.09.16 06:15 Сейчас в теме
Интересно. Сейчас мы тоже пишем мобильное приложение под ТСД. Надо иметь ввиду. Спасибо!
2. gorevg 16 09.09.16 10:25 Сейчас в теме
Возможно ли купить у вас получившийся внешний сервис? или выложите его...
5. dewersia 400 09.09.16 17:56 Сейчас в теме
(2) gorevg, Добрый день, в воскресенье выложу сервис. Не стал этого делать так как достаточно специфичное решение под конкретный аппарат, под каждый аппарат придется его переделывать, использовать свои библиотеки и так далее. Основной задачей было рассказать как можно реализовать вызов внешнего события в Мобильной Платформе.
3. bulpi 217 09.09.16 12:19 Сейчас в теме
Это здорово и очень полезно. Было бы, вот только "внешний сервис, работающий в фоновом режиме" для Андроида я не напишу :( ибо я просто 1с-ник. И таких миллион.
6. dewersia 400 09.09.16 17:58 Сейчас в теме
(3) bulpi, Исходники как уже писал выше, выложу в воскресенье, это как раз и есть сервис работающий в фоновом режиме, 1С запускает сервис, а дальше этот сервис отправляет ей сообщения.
4. Tahallus 441 09.09.16 15:54 Сейчас в теме
Это если можно сделать приложение на android которое будет это сообщение отправлять.
А бывает что только активное приложение может работать с оборудованием.
Тогда только потрошить платформу и внедрять код.
7. dewersia 400 09.09.16 18:04 Сейчас в теме
(4) Tahallus, Хм, тогда встает вопрос если это отдельное приложение, которое работает с оборудованием, неужели оно никак не передает данные? А если приложение этого не делает то тогда для чего оно? Такое узкоспециализированное оборудование тогда никак не может быть внедрено в учетную систему компании. Поправьте меня если это не так.
8. Tahallus 441 10.09.16 20:55 Сейчас в теме
(7) проблема в том что только активное приложение может работать с СШК по serialport. можно сделать отдельное приложение которое будет работать и отправлять сообщение в 1с, но когда оно активно. Это как с аппаратными клавишами, их нажатие может ловить только активное приложение, если конечно прошивка не изменена.
11. dewersia 400 11.09.16 11:37 Сейчас в теме
(8) Tahallus, Тут согласен, но это как раз ограничение аппаратных средств, тут надо смотреть, может у производителя есть библиотеки для работы с этим аппаратом, изучать их возможности и если это становится не возможным тогда решать нужен вообще такой аппарат или нет, хотя я бы сказал что нет ничего не возможного, я не отношусь к гуру android программистов, но если бы у меня стояла такая задача я бы копал в сторону сервиса, который бы перехватывал нажатие клавиш, думаю что это вполне возможно. А ели можно перехватить нажатие клавиш тогда их обработка и передача это дело техники.
9. DitriX 2101 11.09.16 00:14 Сейчас в теме
Как тут все глубоко ошибаются :)
На счет статьи - таки да, надо отправлять ID, чем это чревато? Создайте две базы в списке и увидите.

Мы (я про фирму ACODE) сделали проще в своих терминалах - у нас не надо нарушать лицензионной соглашение 1С, что делает автор в данной статье :)
Это конечно прикол, я не думаю что реально это будет кто-то проверять, но иди и знай :)

Вопрос номер два - зачем вы выдумывали велосипед? Видь есть Acode Tools, которые не только умею работать с блютуз сканерами, но и умеют еще кучу всего, из без танцев с бубном, как сделали вы сейчас.

З.Ы. Велосипед это хорошо, но все же - вы просто не знали про утилиты, или они вам чем-то не подошли?
10. dewersia 400 11.09.16 11:24 Сейчас в теме
(9) DitriX, Добрый день, насчет нескольких баз, в списке несколько баз доступно только в платформе для разработчика, которую кстати нельзя использовать для конечного приложения, поэтому в какой роли выступает ID для отдельного приложения не понятно. Я кстати описал это ограничение в статье. Ваши утилиты это круто, мы их тоже изучали, но я так понял считывание штрих кода все равно происходит в отдельном окне, а не внешним событием, что нас не устраивало. По поводу вмешательства в платформу, это спорный вопрос, ведь исходный код платформы не изменен, изменены только лишь разрешения, которые кстати говоря определяет сам разработчик.

По поводу сканеров, у нас СШК встроенный и в его настройках можно выбрать не эмуляцию клавиатуры, а передачу данных BroadCast сообщением, для него есть SDK под андроид, что и дало возможность использование такого метода, с блютуз сканерами боюсь так действительно не получится, хотя наверное и тут все зависит от конкретной модели и ее возможностей.

Ну и опять же я не пытался привязаться к конкретной задаче, просто работа с торговым и складским оборудованием это наилучший пример. Я хотел лишь показать как можно вызвать пресловутое внешнее событие из внешней компоненты или любого другого приложения на андроид.
13. DitriX 2101 12.09.16 00:13 Сейчас в теме
(10) не смотрели вы утилиты, так как там именно через уведомления, неужели вы думали, что мы выпустим такой бред - сканирование в активное поле?
Мало того, еще с 8.3.4, где не было уведомлений - мы эмулировали через смс :) И даже в нескольких релизах 8.3.х - был баг с уведомлениями, они тупо не работали, так что при тестах - надо это учитывать, но мы выключивались тем, что было резервное - смс. Так что у нас там немерянно приколов было.

А про утилиты - всеравно обратите внимание, ибо там куча функций, которые точно нужны на ТСД :)

На счет сканера штрихкода - не понял до конца, наши утилиты поддерживают все сканеры штрихкодов, которые можно подключить по блютузу в SPP режиме, т.е. не в режиме эмуляции. И для этого не надо ковырять ничего.
В вашем случае - я так понял что у вас именно тсд на андроид. Ну тут да, мы для своих тоже отдельные модули пишем, но они имеют обратную совместимость и таки опять - без ковыряния манифестов :)

Ну в целом - да, статья ценная для тех, кому потребуется аналогичное решение проблем. :)
Теперь будет куда отправлять народ с аналогичными вопросами :)
14. dewersia 400 12.09.16 06:06 Сейчас в теме
(13) DitriX, Тогда примите мои извинения, значит что-то я упустил. Мне почему-то показалось что сканирование происходит в отдельном окне. Правда один из вариантов, который я еще вижу это push- уведомления ), для которых можно поднять свой сервер и гонять их через него, а что делать если нет соединения с интернет и мобильной связи? Я конечно понимаю, что сейчас это звучит дико, но все же бывает всякое, как тогда быть?
17. DitriX 2101 14.09.16 02:17 Сейчас в теме
(14) нет, опять не верно поняли, у нас механизм работает так же, как и вы свой описали, только мы дергаем строенны в 1с бродкасты, а вы их перименовываете.
Так что никаких пушей и интрнетов не надо :)

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

Так ID вы не прочитаете, у вас 2 базы, и все. Какой ID брать? Правильней - получать путь временного каталога и из него вырезать конкретный ID :)
18. iliabvf 21.09.16 15:56 Сейчас в теме
(17) DitriX, как то пытался получить у вас информацию как работают утилиты, как подключить другой ТСД (не ACODE), предлагал доработать силами нашей команды взамен исходного когда, но вы так и не захотели ничего давать, в результате мы тоже начали разрабатывать свою утилиту. А тут человек дал дельное решение, спасибо ему.
elephant_x; +1 Ответить
20. DitriX 2101 15.10.16 20:02 Сейчас в теме
(18) я ж не говорю что это плохо, это выход из ситуации. И мы никогда не скрывали используемой технологии, даже в коде вы могли наблюдать названия соответствующие (SMS и GCM), другое дело, что мы не разрабатываем ни для кого, и не потому что мы плохие или хорошие, а потому что с каждым релизом вылазят новые чудеса. И ваш бы комментарий мог звучать сейчас не так. что мы ничего не делаем, а так, что мы сделали и нифига теерь не работает :)

Тем более что мы сейчас вообще переходим на внешние компоненты, так как такой способ нарушает лицензию 1с, и в более менее крупных внедрениях - руководство просто может не пойти на это, а самое страшное - если такое сделать и их не предупредить. Это чисто медвежья услуга.
Поэтому еще раз повторюсь - механизм рабочий, конечно требует более детального подхода и изучения, не без этого. НО! Это подойдет для лавочников или компаний, которые готовы сэкономить, но при этом на свой страх нарушить лицензии.

Выбирайте сами. Но я считаю важным предупредить про это, иначе поплнится в ряду тех, кто "не переваривает" мобильную 1С.
15. shakmaev 347 12.09.16 10:48 Сейчас в теме
(9) DitriX, на сколько я понимаю, ваше решение - это решение только для ваших терминалов. Например, Chainway 2D Soft без SDK не будет ничего слать, кроме как Keyboard Emulator.
В случае с параметром base, Дмитрий прав, 2 и более базы будут работать некорректно, но это не проблема.

Чтобы подставить значение base, можно при старте системы прочитать его из файла bases.v8i, и передать интент в сервис, например.
Вот так выглядит список файлов:
https://yadi.sk/i/a-sooEt8v44tv
Вот так читать например ПриОткрытии:
/data/data/"+ПолныйИД+"/files/1C/1cem/ibases.v8i
16. dewersia 400 12.09.16 19:27 Сейчас в теме
(15) shakmaev, Добрый день, большое спасибо за подсказку по поводу ID. Я до него так и не докопался, да и в моем случае мне это было не нужно по крайне мере в текущей задаче.
12. dewersia 400 11.09.16 11:38 Сейчас в теме
Как и обещал, исходники сервиса разместил.
19. romak78 10.10.16 17:59 Сейчас в теме
подскажите com.cipherlab.barcode где взять, у меня только com.cipherlab.clbarcodeservice есть в приложениях ?
21. mental86 18.12.16 19:23 Сейчас в теме
Большое спасибо автору!

Маленький нюанс при использовании такого подхода: нельзя использовать вариант отладки с Android Debug Bridge. Платформа, которую ставит конфигуратор, почему-то игнорирует изменения в манифесте. Файл с платформой указывается в настройках, но, видимо, конфигуратор просто использует готовый APK из архива. Этот же архив платформы при использовании со сборщиком работает в соответствии со статьей. Конфигуратор 8.3.9.1850.

А вообще надеюсь, что коллеги из 1С в новых релизах исправят досадную необщительность мобильной платформы.
22. zavbak 29.01.17 05:09 Сейчас в теме
Отличная статья. Спасибо.
Использую для сборки конфигурацию "Сборщик мобильных приложений". Соответственно она постоянно заменяет permissions.xml. Какими командами собрать приложение?

И сейчас вроде появились внешние компоненты. Вы копали в эту сторону?
23. dewersia 400 30.01.17 11:04 Сейчас в теме
(22) Файл permissions.xml заменяется в файлах самой платформы, которая потом используется в сборщике и он не должен каждый раз изменяться. По поводу внешних компонент, как раз сейчас разбираюсь, но проблема состоит в том, что внешние компоненты появились, а вот обработчика "внешне событие" пока нет, по крайне мере на сколько мне известно.
24. d_sdr 4 05.06.17 15:35 Сейчас в теме
подскажите, в процедуре "ПриОткрытии" вызывается такая интересная вещь, как
ДоставляемыеУведомления.ПодключитьОбработчикУведомлений(...)

Что это за модуль - "ДоставляемыеУведомления" и где его достать? В типовых конфигурациях его не нашёл, в ACode Tools тоже нету.
25. d_sdr 4 05.06.17 16:11 Сейчас в теме
(24) Вопрос снят, разобрался
26. koks17v 10 16.06.17 02:11 Сейчас в теме
Автор, спасибо большое! Очень полезный материал!

А бродкастить в 1С нажатие аппаратных кнопок вы не реализовывали?
27. dewersia 400 19.06.17 11:29 Сейчас в теме
(26) Добрый день. Не пробовал. Но думаю можно сделать по такому же принципу. Словить его в своем сервисе и перенаправить в 1С.
28. demONx7 28.06.17 03:23 Сейчас в теме
Да, материал действительно полезен.

А по поводу этого:
(26)
А бродкастить в 1С нажатие аппаратных кнопок вы не реализовывали?

Тоже очень интересен данный момент.
Особенно хотелось бы отследить клавиши стрелок и F..

Есть мысли как это можно сделать?
29. koks17v 10 28.06.17 11:51 Сейчас в теме
(28) Да. Решение почти готово. Для АТОЛ SmartDroid.
30. koks17v 10 28.06.17 19:35 Сейчас в теме
(28) Функциональные клавиши F... тоже перехватываем, а так же - цифры и стрелки.
31. demONx7 29.06.17 02:40 Сейчас в теме
(30) Я сейчас занимаюсь написанием конфигурации для ТСД. Весь функционал работает, но только сенсорно. Застрял на том, что не могу перехватить как раз таки эти клавиши(F.., стрелки и цифры). Нужно дорабатывать permissions или AndroidManifest? Или нужно вносить корректировки в драйвер ТСД для 1С?
Можете подсказать как и где это допиливается? Буду очень признателен.
32. dewersia 400 29.06.17 08:21 Сейчас в теме
(31) Если честно мы не изучали данный вопрос ), у нас нет функциональных клавиш, ну кроме "Назад", "Домой" и список открытых приложений. Поэтому в данном случае, первое что мне приходит на ум дописать сервис и вставить туда перехват нажатия клавиш. Вот только здесь нужно более подробно изучать материал по работе Android, я вчера полистал для интереса интернет, с лету не нашел ничего подходящего, но думаю если углубиться, то можно что-то нарыть. Можно дописать permission и сделать свой сервис )
33. demONx7 29.06.17 08:50 Сейчас в теме
Я уже три дня не могу ничего подходящего найти). Приходит на ум тоже что и вам, изучать Android. Чем сейчас постепенно и занимаюсь.
Но ведь должно же быть где-то решение.
34. koks17v 10 16.07.17 16:57 Сейчас в теме
У нас получилось разработать драйвер для АТОЛ SmartDroid.

1. Получение штрихкода с аппаратного сканера в обход клавиатуры.
2. Обработка нажатия аппаратных кнопок устройства.
3. Получение и обработка всех данных в мобильном приложении 1С.

Готовим публикацию.
40. gorevg 16 02.11.17 16:34 Сейчас в теме
(34) Не готова публикация?
47. McLer 124 05.04.19 12:00 Сейчас в теме
48. dewersia 400 11.04.19 19:39 Сейчас в теме
(47)
(40)

Вот выложил небольшое дополнение по поводу клавиш https://infostart.ru/public/1039819/
35. demONx7 17.07.17 01:49 Сейчас в теме
Отлично. С нетерпением ждём.
36. пользователь 14.08.17 07:21
Сообщение было скрыто модератором.
...
37. пользователь 14.08.17 09:17
Сообщение было скрыто модератором.
...
38. andrey314 14 31.10.17 17:53 Сейчас в теме
Правильно я понял что, чтобы это работало нужно обязательно собирать мобильное приложение? Просто как конфигурация мобильной 1С не будет работать?
39. dewersia 400 01.11.17 10:40 Сейчас в теме
41. dbachinsky 354 04.01.18 17:24 Сейчас в теме
(39) Скачал файлы из статьи. Что с ними делать? Думал там будет сервис в формате apk
43. KBNIKKB 19.11.18 09:41 Сейчас в теме
44. dewersia 400 19.11.18 10:58 Сейчас в теме
(43) Добрый день. Это не готовый сервис, это исходники сервиса их можно открыть в android studio и собрать собственный apk. Идея статьи была не выложить готовый универсальный сервис, а описать способ реализации внешнего события.
45. KBNIKKB 20.11.18 07:54 Сейчас в теме
(44) Собственный
BarcodeService ? или что маленько не понимаю
46. dewersia 400 20.11.18 10:51 Сейчас в теме
(45) Это исходники сервиса, который является прокладкой между аппаратным сканером штрихкода и 1с. Суть заключается в том, что сервис перехватывает считывание штрихкода и передает его в 1с.
42. rhtr 92 16.11.18 14:53 Сейчас в теме
Новое направление "1С Хацкеры".
49. Rokstedi 19 26.09.19 20:50 Сейчас в теме
Скачал последнюю мобильную платформу, там нет файла permissions.xml
50. dewersia 400 28.09.19 10:43 Сейчас в теме
(49) Какая версия платформы? У меня сейчас используется 8.3.13.64, там все есть.
55. vikt_soulfly@mail.ru 13.10.20 15:01 Сейчас в теме
(49) (54) в новых версиях платформы это файл "maker-settings.xml"
51. kinan 34 12.11.19 20:12 Сейчас в теме
52. KAV2 157 10.03.20 22:35 Сейчас в теме
(51) Подтверждаю, в 8.3.15.86 нет файла.
53. WKBAPKA 215 25.06.20 22:47 Сейчас в теме
Я писал под Scorpio X4. У них свой API под Андроид. Делал на чистой Java. Судя по граблям, что наступают в мобильной платформе, по времени наверное даже быстрее в реализации + все возможности Андроид. Обмен с 1С через HTTP сервис.
54. yorock 24.07.20 10:49 Сейчас в теме
а для версии платформы 8.3.16.142 нет решения? не найти файл permissions.xml
56. CyclesOfID 128 17.11.20 11:00 Сейчас в теме
https://infostart.ru/public/779912/

На прямо таком же терминале получилось сделать перехват события вставки текста после сканирования через эту обработку
57. Slotty 31.03.21 19:38 Сейчас в теме
Кто нить обращался к в андройде к keychain из Мобильного приложения 1С. ???? ( Сертификаты SSL есть, про лаунч то что нет знаю.) Приложение открывается и сразу закрывается .
58. KHoroshulinAV 174 20.04.23 18:21 Сейчас в теме
Коллеги можно ещё проще: отправлять уведомления в мобильном приложении. И другие данные и даже отчёты Дзен MIE
или публикация инфостарт Инфостарт MIE
59. user1665490 23.11.23 08:32 Сейчас в теме
Здравствуйте, хотел немного уточнить для понимания. Необходимо изменить файл настройки мобильной платформы, переподтянуть его в сборщике в разделе "Мобильные версии", написать указанный код в 1С и все? Со стороны андроид ничего дорабатывать не надо? или надо? Конец статьи не очень понятен (
60. user1381504 01.08.24 17:08 Сейчас в теме
(56), добрый день! Подскажите как вы настроили на RS30 перехват штрихкода.
Я поставил компоненту из вашей ссылки, события прилетают, а данных нет в Decoder_Data :(
61. user949769 06.08.24 12:59 Сейчас в теме
(60) Разобрался.

Инструкция для ТСД CipherLab RS30/RS31 для компоненты по ссылке из (56).

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

Перем пц_КомпонентаДля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 штрихкод строковыми функциями и всё работает.
Оставьте свое сообщение