0. user621724_Dimav1979 272 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 502 20.04.17 14:03 Сейчас в теме
Вроде бы интересно, но что если у нас есть уже готовое андроид приложение, кода которого мы не знаем? что тогда, смотреть в манифест и пытаться понять что за данные нам вернутся?
2. user621724_Dimav1979 272 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 365 22.04.17 08:12 Сейчас в теме
(4)
Статьи интересные и полезные, имхо, объяснение гораздо понятнее и лучше чем у "курсы по 1с".

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

А по поводу публикаций то действительно Спасибо! По факту, для разбора интентов нужна специфика явовщика. Ну допустим, как получить IMEI устройства? Я так понял что нужно написать свое приложение которое получит IMEI і вернет в 1С.
8. Dementor 419 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 272 27.08.18 23:50 Сейчас в теме
11. user1038868 28.08.18 05:44 Сейчас в теме
Добрый день.Сканирую камерой. А смартфон Redmi 4A. Вот его характеристики:
Прикрепленные файлы:
12. user1038868 28.08.18 07:44 Сейчас в теме
13. user621724_Dimav1979 272 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 272 13.12.18 14:18 Сейчас в теме
(15) спасибо. Действительно на практике недавно скрещивал 1с и приложение андроид которое пришлось писать на китайском sdk к китайскому тсд. Скажу так все работает и такая методика написания приложений имеет быть место.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

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

Программист 1С
Москва
Полный день

Консультант-аналитик 1С
Москва
Полный день

Консультант ERP-систем
Москва
Временный (на проект)