До старта конференции

Мобильное приложение 1С и приложение Java. Совместная работа через Intent. Часть 1. Запуск приложения Java из 1С

0. Дмитрий Васильев (user621724_Dimav1979) 198 20.04.17 05:03 Сейчас в теме
Пишем два приложения - конфигурацию на мобильной платформе 1С и приложение Java Android Studio. На примере рассматриваем совместное использование двух приложений через Intent. Публикация состоит из 3 частей:
Часть 1. Запуск приложения Java из 1С
Часть 2. Получаем данные в 1С из приложения Java
Часть 3. Отправляем данные в приложение Java из 1С.

Перейти к публикации

Комментарии
1. Дмитрий Васильев (user621724_Dimav1979) 198 20.04.17 09:41 Сейчас в теме
Задавайте вопросы. С удовольствием отвечу.
AlexGroovy; dj_serega; smirnov.es; +3 Ответить 1
2. asd asd (user738101) 20.04.17 10:06 Сейчас в теме
3. Дмитрий Васильев (user621724_Dimav1979) 198 20.04.17 10:11 Сейчас в теме
4. Сергей Сячин (SyachinS) 20.04.17 10:31 Сейчас в теме
5. Дмитрий Васильев (user621724_Dimav1979) 198 20.04.17 10:38 Сейчас в теме
6. Кирилл Власов (neikist) 20.04.17 11:08 Сейчас в теме
Спасибо за статью, вечерком почитаю. Сейчас мельком пробежался по началу статьи и один вопрос возник: почему обработчики кнопкам не в разметке назначаете, а программно? С java и андроидом не особо разбирался, но по моему так разве что какие то анонимные обработчики передавать смысл есть (если это возможно, а судя по тому что нагуглил - невозможно), а явно задаваемые наверно все же лучше в xml описать. Например у меня как у полного чайника сразу вопрос появился: как повесить разные обработчики на кнопки? Судя по тому что нагуглил - нужно реализовать под каждый обработчик объект с соответствующим интерфейсом и его как обработчик устанавливать, другого способа не нашел: https://developer.android.com/reference/android/view/View.OnClickListener.html

Но это так, из разряда придирок мелких.
7. Ruslan Ruslan (flyer) 247 20.04.17 11:19 Сейчас в теме
однозначно плюс. жду 2 часть.
8. Дмитрий Васильев (user621724_Dimav1979) 198 20.04.17 13:45 Сейчас в теме
9. Дмитрий Васильев (user621724_Dimav1979) 198 20.04.17 15:15 Сейчас в теме
(6) спасибо Кирилл за вопрос. По обработчикам Java почитайте StartAndroid
10. Кирилл Власов (neikist) 20.04.17 16:44 Сейчас в теме
(9) странно как то что по ссылке не описано задание обработчиков в разметке, например здесь показаны оба способа как в коде, так и в разметке, в свое время почитал немного данный ресурс чтобы хоть какое то представление иметь.
11. Денис Козлов (Akbis) 45 21.04.17 08:41 Сейчас в теме
(10) Программно боле гибче, если понадобится переназначать. Ну здесь можно было и в разметке задать.
12. Кирилл Власов (neikist) 21.04.17 20:05 Сейчас в теме
(11) Соглашусь пожалуй, главное не начать набивать эту точку входа десятками вариантов обработок нажатий на разные кнопки, или на одну в разных условиях.
13. Илья Низамов (Region102) 44 26.04.17 07:50 Сейчас в теме
Это все интересно конечно, но было бы интересно тоже самое сделать с service, для 1с-ников - это типа фоновых заданий. Т.е. оправил данные, они там обсчитались, распечатались и еще что-нибудь и вернулся результат в 1С. Приложение 1с вроде слушает broadcast, оно же как-то получает push, но как возвращать данные из сервиса я так и не понял.
14. Дмитрий К. (Dementor) 9 26.04.17 15:01 Сейчас в теме
(13)
Т.е. оправил данные, они там обсчитались, распечатались и еще что-нибудь и вернулся результат в 1С.

Половина ответа в том, как вы собираетесь отправлять данные в сервис. Дело в том, что в мобильной платформе для работы с приложениями Android есть только ЗапускПриложенияМобильногоУстройства (пусть меня поправят, если я ошибаюсь). А этот объект в зависимости от булевского параметра в методе запустить использует или startActivity или startActivityForResult - т.е. никаких startService не предусмотрено вообще, а потому и получение из них данных колбеками или подпиской на "слушанье" тоже не реализовано.

А вот если вы дергаете какую-то активити (возможно даже невидимую), которая стартует сервис, то вы можете продолжить развитие этой темы и сделать обработчик ожидания, который периодически будет дергать вашу активити, которая будет получать данные из сервиса и сообщать назад в 1С.
15. Илья Низамов (Region102) 44 26.04.17 19:41 Сейчас в теме
Просто когда я дергаю активити, идет инициализация bluetooth ККМ и распечатка чека и все это время у меня заместо активити 1С черный экран ). Я пытался запускать сервис и закрывать активити, в принципе получилось, но мне надо получить результат выполнения операции (ok или результат exception).
16. Павел Апарин (taishy) 49 28.06.17 09:17 Сейчас в теме
(15) Я использовал ASyncTask, и теперь вместо черного экрана четкое отображение текущих действий
Оставьте свое сообщение