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

20.04.17

Разработка - Мобильная разработка

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

Добрый день, уважаемые коллеги!

В данной части доработаем наши мобильные приложения, описанные в 1 части (//infostart.ru/public/613072/) и посмотрим на примере, как передать данные, введенные в Java приложении, в 1С.

1.Открываем наш проект в Android Studio

Добавляем в activity_main.xml кнопку (Button) и элемент отображения текста (TextView)

<Button
    android:id="@+id/btnName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_margin="20dp"
    android:text="Ввести имя">
</Button>

<TextView
    android:id="@+id/tvName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="Ваше имя: ">
</TextView>

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

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:id="@+id/btnTime"
        android:text="Показать время">
    </Button>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:id="@+id/btnDate"
        android:text="Показать дату">
    </Button>
    <Button
        android:id="@+id/btnName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="20dp"
        android:text="Ввести имя">
    </Button>

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Ваше имя: ">
    </TextView>
</LinearLayout>

Кодим класс MainActivity. Определяем TextView и кнопку, настраиваем обработчик. В методе обработчика onClick создаем Intent и Action - ru.w0rm.intent.action.GetData. 

Для отправки используем startActivityForResult. Отличие от обычного startActivity в том, что MainActivity становится «родителем» для NameActivity. И когда NameActivity закрывается, вызывается метод onActivityResult в MainActivity, тем самым давая нам знать, что закрылось Activity, которое мы вызывали методом startActivityForResult.

В startActivityForResult в качестве параметров мы передаем Intent и requestCoderequestCode – необходим для идентификации.

В onActivityResult мы видим следующие параметры: 
requestCode – тот же идентификатор, что и в startActivityForResult. По нему определяем, с какого Activity пришел результат. 
resultCode – код возврата. Определяет успешно прошел вызов или нет.
data – Intent, в котором возвращаются данные

Должно получиться так MainActivity:

package ru.w0rm.develop.intentfilter;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements View.OnClickListener {

    TextView tvName;
    Button btnName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btnTime = (Button) findViewById(R.id.btnTime);
        Button btnDate = (Button) findViewById(R.id.btnDate);

        tvName = (TextView) findViewById(R.id.tvName);
        btnName = (Button) findViewById(R.id.btnName);
        btnName.setOnClickListener(this);

        btnTime.setOnClickListener(this);
        btnDate.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent;

        switch(v.getId()) {
            case R.id.btnTime:
                intent = new Intent("ru.w0rm.intent.action.showtime");
                startActivity(intent);
                break;
            case R.id.btnDate:
                intent = new Intent("ru.w0rm.action.showdate");
                startActivity(intent);
                break;
            case R.id.btnName:
                intent = new Intent("ru.w0rm.intent.action.GetData");
                startActivityForResult(intent, 1);
                break;
        }

    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data == null) {return;}
        String name = data.getStringExtra("name");
        tvName.setText("Ваше имя:  " + name);
    }
}

Создаем Layout, в котором будем вводить имя и потом передавать его в 1С name.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp">
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Имя">
        </TextView>
        <EditText
            android:id="@+id/etName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_weight="1">
            <requestFocus>
            </requestFocus>
        </EditText>
    </LinearLayout>
    <Button
        android:id="@+id/btnOK"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="OK">
    </Button>
</LinearLayout>

Создаем класс NameActivity:

package ru.w0rm.develop.intentfilter;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class NameActivity extends Activity implements OnClickListener {

    EditText etName;
    Button btnOK;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.name);

        etName = (EditText) findViewById(R.id.etName);
        btnOK = (Button) findViewById(R.id.btnOK);
        btnOK.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent = new Intent();
        intent.putExtra("name", etName.getText().toString());
        setResult(RESULT_OK, intent);
        finish();
    }
}

Определяем поле ввода и кнопку, прописываем обработчик. В методе onClick мы создаем Intent и помещаем в него данные из поля ввода под именем name. Обратите внимание, мы никак не адресуем этот Intent. Т.е. ни класс, ни action мы не указываем. И получается, что непонятно куда пойдет этот Intent. Но метод setResult знает, куда его адресовать - в «родительское» Activity, в котором был вызван метод startActivityForResult. Также в setResult мы передаем константу RESULT_OK, означающую успешное завершение вызова. И именно она передастся в параметр resultCode метода onActivityResult в MainActivity.java.

Прописываем класс NameActivity манифесте:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.w0rm.develop.intentfilter">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="ActivityTime">
            <intent-filter>
                <action android:name="ru.w0rm.intent.action.showtime"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>
        <activity android:name="ActivityDate" android:label="Date basic">
            <intent-filter>
                <action android:name="ru.w0rm.action.showdate"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>

        <activity android:name="NameActivity" android:label="Get data">
            <intent-filter>
                <action android:name="ru.w0rm.intent.action.GetData"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>

    </application>

</manifest>

Запускаем Java приложение и проверяем. Нажимаем кнопку Ввести имя. В открывшемся окне вводим текст и нажимает ОК. Видим, что данные передались на главную форму.

2.Теперь реализуем вызов окна Java приложения из 1С, введем данные в наше Java приложение и передадим введенные данные в 1С.

Открываем нашу конфигурацию 1С.

В общую форму НачальнаяФорма добавляем команду ПолучитьДанные

Добавляем обработчик команды:


&НаКлиенте
Процедура ПоказатьВремя(Команда)
	
	#Если МобильноеПриложениеКлиент Тогда 
		НовВз = Новый ЗапускПриложенияМобильногоУстройства();
    	НовВз.Действие="ru.w0rm.intent.action.showtime";
    	НовВз.Запустить(Истина);
	#КонецЕсли

КонецПроцедуры

&НаКлиенте
Процедура ПоказатьДату(Команда)
	
	#Если МобильноеПриложениеКлиент Тогда 
		НовВз = Новый ЗапускПриложенияМобильногоУстройства();
    	НовВз.Действие="ru.w0rm.action.showdate";
    	НовВз.Запустить(Истина);
	#КонецЕсли

КонецПроцедуры

&НаКлиенте
Процедура ПолучитьДанные(Команда)
	#Если МобильноеПриложениеКлиент Тогда 
		НовВз = Новый ЗапускПриложенияМобильногоУстройства();
    	НовВз.Действие="ru.w0rm.intent.action.GetData";
    	НовВз.Запустить(Истина);
	    Для Каждого Стр Из НовВз.ДополнительныеДанные Цикл
       	 Сообщить(Стр.Ключ+" - "+Стр.Значение);
   		КонецЦикла;  		
	#КонецЕсли

КонецПроцедуры

В обработчике запускаем Java приложение с Action - ru.w0rm.intent.action.GetData. Далее проходим по коллекции Дополнительные данные и выводим на экран.

Запускаем мобильное приложение 1С и проверяем:

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

На этом у меня все. В третьей части рассмотрим как передать данные из 1С в Java приложение.

Спасибо Виталию Непочатову за теорию по java http://startandroid.ru/ru/uroki.html

Спасибо за внимание!

Мобильное приложение Android Studio Intent Java

См. также

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

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

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

2880 руб.

03.12.2018    54608    137    102    

161

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

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

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

13200 9900 руб.

27.12.2021    33277    80    157    

174

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android

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

Простой мобильный терминал сбора данных для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    91943    511    186    

293

Магазин 15 - приемка товара по штрихкодам или инвентаризация в торговом зале

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

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

12950 руб.

30.05.2023    3387    2    0    

4

Работа с графикой в браузере (SimpleWEB). Векторный редактор

Мобильная разработка WEB-интеграция Мобильная платформа Абонемент ($m)

В SimpleWEB добавились средства для работы с графикой и отслеживание событий мыши, в онлайн редактор https://seditor.ru:1555/ добавился «Векторный редактор» на этом API. Теперь можно нарисовать схемы складов на ПК, сделать карты (*.sug-файлы) для мобильной платформы SimpleUI, выводить данные из 1С в графическом виде. Таким образом, API для работы с векторными файлами теперь есть и в веб- и в мобильной платформе, а также средства для создания и редактирования векторных файлов есть тоже в обеих платформах.

1 стартмани

20.03.2024    1469    0    informa1555    1    

39

Зачем нам 1С:Элемент

Мобильная разработка Языки и среды Бесплатно (free)

Flutter может быть использован с 1С:Предприятием для разработки кроссплатформенных мобильных приложений, обеспечивая единый интерфейс и функциональность на устройствах под управлением iOS и Android. Это позволяет создавать приложения с высокой производительностью благодаря использованию собственного движка рендеринга Flutter. Интеграция Flutter с 1С:Предприятием позволяет создавать мобильные приложения любого уровня сложности, интегрировать их в корпоративные информационные системы, а также реализовывать бизнес-логику

19.03.2024    6848    ROk_dev    56    

37

JavaScript в Simple

Мобильная разработка Бесплатно (free)

В SimpleUI и SimpleWEB, наряду с обработчиками на python и онлайн (1С и т.д.) добавляется интерпретатор JavaScript. В андроид платформе он скорее играет на поле python, т.к. является оффлайновым решением для самостоятельной обработки и расширяет аудиторию разработчиков для разработки самостоятельных решений. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

12.02.2024    1628    informa1555    0    

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

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

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

А по поводу публикаций то действительно Спасибо! По факту, для разбора интентов нужна специфика явовщика. Ну допустим, как получить IMEI устройства? Я так понял что нужно написать свое приложение которое получит IMEI і вернет в 1С.
8. Dementor 1015 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 401 27.08.18 23:50 Сейчас в теме
11. user1038868 28.08.18 05:44 Сейчас в теме
Добрый день.Сканирую камерой. А смартфон Redmi 4A. Вот его характеристики:
Прикрепленные файлы:
12. user1038868 28.08.18 07:44 Сейчас в теме
13. user621724_Dimav1979 401 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С Мобильная платформа. А успехи будут.
23. agostev 16.05.20 22:23 Сейчас в теме
(20)
Подскажите, а если в androidmanifest.xml описано так:
<service
name=".print.PassthroughService"
exported="true"/>

то не получится вызвать через ЗапускПриложенияМобильногоУстройства() ?
31. purik 22.11.22 21:54 Сейчас в теме
(23)
Подскажите, пожалуйста, вам удалось узнать, как запустить приложение, если в файле AndroidManifest.xml толком ничего не написано?
15. user1038868 28.08.18 16:29 Сейчас в теме
Качество Стандартных функций сканирования мобильной платформы 1С оставляет желать лучшего в сравнении с программами сканирования на телефоне, которые доступны бесплатно на Google Play. Поэтому существует настоятельная необходимость в интеграции мобильной платформы 1С и существующих программных продуктов Android. Мне показалось из Вашей статьи, что мобильная платформа 1С может решать эти задачи, хотя в документации ничего не нашёл, то есть "а ведь нам и нечего и не обещали что будет работать". Спасибо Вам новаторскую деятельность.
user621724_Dimav1979; +1 Ответить
22. user621724_Dimav1979 401 13.12.18 14:18 Сейчас в теме
(15) спасибо. Действительно на практике недавно скрещивал 1с и приложение андроид которое пришлось писать на китайском sdk к китайскому тсд. Скажу так все работает и такая методика написания приложений имеет быть место.
17. пользователь 01.09.18 14:31
Сообщение было скрыто модератором.
...
18. пользователь 02.09.18 05:10
Сообщение было скрыто модератором.
...
24. Dach 372 04.09.20 11:53 Сейчас в теме
Статья - пушка, спасибо Вам. Выходит, мы через интенты можем вызывать другие приложения, интегрироваться с ними и т.д. и т.п.

А можно гайд для тех, кто не в теме - как посмотреть манифест стороннего приложения, как узнать какое у него есть API и т.д.?
25. Treaqq 16.09.20 18:15 Сейчас в теме
(24) Я заюзал ManifestViewer. Пытаюсь использовать штатный сканер Xiaomi - пока безуспешно :(
26. AlexSeldom 29.09.20 11:49 Сейчас в теме
Статья супер!
Но осталось пара моментов непонятных. Получить фото в 1С с самописной камеры.
1С передает внешней камере URI файла которое задается в коде 1с, и по идее, камера должна создать файл который ожидает 1С.
И вот тут ничего и не получается
27. timeforlive 15 03.05.21 15:52 Сейчас в теме
Автор, спасибо тебе!
Начал думать над архитектурой приложения: 1С или Котлин, теперь решение найдено. Буду писать оба приложения:
Фронтенд в андроид студио; Бэкграунд в 1С (логику, метаданные и клиент-серверную работу).
Посмотрим, что получится.
28. s.sintsov 247 17.06.21 12:19 Сейчас в теме
Добрый день! Заранее прошу прощения за возможно дилетантский вопрос, я в мобильной платформе пока новичок. Подскажите, существует ли возможность через вызовы api какого-либо приложения Android получить текущие координаты gps устройства. Штатные функции 1с не работают на телефонах без Google Services, запуск мобильного клиента через gspace не очень подходит, при этом сторонние приложения типа yandex-карт или gps теста без проблем определяют координаты.
29. rhtr 90 17.09.21 20:46 Сейчас в теме
(28) Добрый вечер. Тоже маюсь с этой проблемой. Удалось что накопать?
30. ignorant 28.07.22 16:48 Сейчас в теме
В свежем android studio не нахожу Action
showtime
showdate
который использованы в статье (и в других примерах intent )
Можете привести примеры работы с этими Action или хотя бы их нынешние названия.
В списке Intent.action не нашел ничего похожего.
Возможно, плохо искал :(
32. sultbec 9 01.12.23 11:05 Сейчас в теме
Спасибо большое за примеры. первая часть скомпилировалась. Можете подсказать какая именно строка вызывает закрытие окна после ввода имени и нажатия ОК
33. user621724_Dimav1979 401 01.12.23 15:58 Сейчас в теме
Оставьте свое сообщение