0. user621724_Dimav1979 282 20.04.17 10:54 Сейчас в теме

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

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

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

Комментарии
Избранное Подписка Сортировка: Древо
1. kiv1c 536 20.04.17 14:03 Сейчас в теме
Вроде бы интересно, но что если у нас есть уже готовое андроид приложение, кода которого мы не знаем? что тогда, смотреть в манифест и пытаться понять что за данные нам вернутся?
2. user621724_Dimav1979 282 20.04.17 15:04 Сейчас в теме
(1) Если в манифесте прописан Action <action android:name="ru.w0rm.intent.action.GetData"></action> то можно вызвать без проблем из 1С. А далее анализируем то, что вернулось через Дополнительные данные

НовВз = Новый ЗапускПриложенияМобильногоУстройства();
НовВз.Действие="ru.w0rm.intent.action.GetData";
НовВз.Запустить(Истина);
Для Каждого Стр Из НовВз.ДополнительныеДанные Цикл
Сообщить(Стр.Ключ+" - "+Стр.Значение);
КонецЦикла;
dj_serega; smirnov.es; +2 Ответить
3. smirnov.es 21.04.17 05:26 Сейчас в теме
Очень полезная статья. Ждем дальнейших публикаций
4. neikist 21.04.17 19:53 Сейчас в теме
Статьи интересные и полезные, имхо, объяснение гораздо понятнее и лучше чем у "курсы по 1с". Большое спасибо. Ждем третьей статьи, хотя конечно провести аналогии между типами "ЗапускПриложенияМобильногоУстройства"-Intent и "ДополнительныеДанныеЗапускаПриложенияМобильногоУстройства"-Bundle довольно просто теперь) Получается зеркальный процесс где мы в 1с в как бы "Intent" указываем дополнительные данные, а в нативном приложении извлекаем из Bundle. Ох уж эти 1сники с их тягой к длинным именам)))
5. dj_serega 368 22.04.17 08:12 Сейчас в теме
(4)
Статьи интересные и полезные, имхо, объяснение гораздо понятнее и лучше чем у "курсы по 1с".

Ну да... тут в 2х словах а там на пальцах ;)

А по поводу публикаций то действительно Спасибо! По факту, для разбора интентов нужна специфика явовщика. Ну допустим, как получить IMEI устройства? Я так понял что нужно написать свое приложение которое получит IMEI і вернет в 1С.
8. Dementor 610 26.04.17 14:36 Сейчас в теме
(5)
Ну допустим, как получить IMEI устройства?

Большинство Android-телефонов на рынке поставляется с двумя сим-слотами, у каждого из которых свой условно уникальный IMEI. Типовым методом getDeviceId() из стандартного класса TelephonyManager можно получить IMEI только активной симки. При использовании двух сим-карт получение этого кода вообще не предсказуемо. А ведь еще есть телефоны на 3 СИМки!!!

Простого метода получить IMEI для всех СИМ-слотов не существует. Есть НЕ универсальные приемы на рефлексию, которые работают только на конкретных моделях телефонов. Детальнее можно почитать тут.

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

Увлекся :) Я хотел сказать, что программа на Android - это не серебренная пуля!
6. saudin 25.04.17 11:08 Сейчас в теме
7. saudin 25.04.17 11:33 Сейчас в теме
Ага, появилась. Спасибо большое.
9. privin731 27.08.18 15:52 Сейчас в теме
Уважаемый Автор, смею побеспокоить Вас,
ибо у меня не работает подключение Barcode Scanner 4.2.3
в мобильной платформе 1С даже 8.3.11.57.
Испытывая чувство вины перед 10668 читателями этой статьи,
смею попросить Вас, объяснить мне в чём моя ошибка, ибо
написал такой код:
НовВз.Действие="com.manateeworks.barcodescanners.BARCODESCANNERS";
а он не работает и просто висит...

Процедура СканерШтрихКодов477(Команда)
	// РАБОТАЕТ
	#Если МобильноеПриложениеКлиент Тогда
		НовВз=Новый ЗапускПриложенияМобильногоУстройства();
		НовВз.Действие="com.google.zxing.client.android.SCAN";
		НовВз.Запустить(Истина);
		Для Каждого Стр Из НовВз.ДополнительныеДанные Цикл
			Сообщить(Стр.Ключ+" -<|>- "+Стр.Значение);
		КонецЦикла;
	#КонецЕсли	
КонецПроцедуры

&НаКлиенте
Процедура BarcodeScanner423(Команда)
	// НЕ РАБОТАЕТ  и где ошибка?
	#Если МобильноеПриложениеКлиент Тогда
		НовВз=Новый ЗапускПриложенияМобильногоУстройства();
		НовВз.Действие="com.manateeworks.barcodescanners.BARCODESCANNERS";
		НовВз.Запустить(Истина);
		Для Каждого Стр Из НовВз.ДополнительныеДанные Цикл
			Сообщить(Стр.Ключ+" -<|>- "+Стр.Значение);
		КонецЦикла;
	#КонецЕсли	
КонецПроцедуры
Показать
Прикрепленные файлы:
21. user605751_svyatishenko.aleksey 13.12.18 12:26 Сейчас в теме
(9) Дело в том, что далеко не все приложения сканирования работают через zxing. По опыту - около половины. Но всяко лучше, чем кривое штатное сканирование 1С-кой.
10. user621724_Dimav1979 282 27.08.18 23:50 Сейчас в теме
11. user1038868 28.08.18 05:44 Сейчас в теме
Добрый день.Сканирую камерой. А смартфон Redmi 4A. Вот его характеристики:
Прикрепленные файлы:
12. user1038868 28.08.18 07:44 Сейчас в теме
13. user621724_Dimav1979 282 28.08.18 14:31 Сейчас в теме
(12) Мысли такие, что данное приложение не поддерживает возврат данных через Intent...если у вас не ТСД а телефон и сканируете через камеру, используйте стандартные функции сканирования мобильной платформы, это очень облегчит жизнь.
16. user1038868 30.08.18 22:08 Сейчас в теме
(13)
что данное приложение не поддерживает возврат данных через Intent..


А как узнать какое приложение Android поддерживает возврат данных через intent ? А как узнать манифест приложение Android, если его скачиваю с Google Play ? Именно эти знания мне нужны для запуска приложение Android из ЗапускПриложенияМобильногоУстройства() !
14. user1038868 28.08.18 15:49 Сейчас в теме
«The Cognex Mobile Barcode SDK поддерживает все основные символики штрих-кодов, в том числе Aztec Code, Codabar, Code 11, Code 25 (Interleaved, промышленному и ITF-14), Code 39, Code 93, Code 128, матрица данных, DotCode, EAN, ISBN, GS1 Databar, MaxiCode, MSI Плесси, PDF417, почтовый индекс, QR Code (Micro и Standard), а также типы штрих-кодов UPC, а также все GS1 конкретные типы суб как GS1 QR-код, GS1 DataMatrix и GS1-128.» из: https://play.google.com/store/apps/details?id=com.manateeworks.barcodescanners
19. vsesam80 02.09.18 19:16 Сейчас в теме
(14)Есть успехи по использованию .того приложения для чтения шк? очень быстрое, просто шикарное. Но тоже не смог прикрутить к 1С мобильному
20. user1038868 04.09.18 11:40 Сейчас в теме
(19)Огромное спасибо за интерес к освоению "1С Мобиль Приложение". Для запуска ЛЮБОГО приложение Android из ЗапускПриложенияМобильногоУстройства() сначала надо: 1)Установить на смартфон App Detective от zmarties с Google Play https://play.google.com/store/apps/details?id=com.zmarties.detective. 2) Запустить App Detective, выбрать
нужную программу и прочитать её файл AndroidManifest.xml 3) Внимательно изучить intent action и .... изучать AndroidManifest.xml 4) Сопоставлять с командами счастливчиков, которым удалось хоть что-то запустить из ЗапускПриложенияМобильногоУстройства() 1С Мобильная платформа. А успехи будут.
15. user1038868 28.08.18 16:29 Сейчас в теме
Качество Стандартных функций сканирования мобильной платформы 1С оставляет желать лучшего в сравнении с программами сканирования на телефоне, которые доступны бесплатно на Google Play. Поэтому существует настоятельная необходимость в интеграции мобильной платформы 1С и существующих программных продуктов Android. Мне показалось из Вашей статьи, что мобильная платформа 1С может решать эти задачи, хотя в документации ничего не нашёл, то есть "а ведь нам и нечего и не обещали что будет работать". Спасибо Вам новаторскую деятельность.
user621724_Dimav1979; +1 Ответить
22. user621724_Dimav1979 282 13.12.18 14:18 Сейчас в теме
(15) спасибо. Действительно на практике недавно скрещивал 1с и приложение андроид которое пришлось писать на китайском sdk к китайскому тсд. Скажу так все работает и такая методика написания приложений имеет быть место.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист/Cтарший программист 1С
Москва
зарплата от 100 000 руб. до 250 000 руб.
Полный день

Программист 1С
Калининград
зарплата от 60 000 руб. до 80 000 руб.
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Программист 1С
Красноярск
зарплата от 50 000 руб.
По совместительству