Мобильный клиент: установка, отладка, сборка под Android"

Программирование - Мобильные приложения

Это статья для тех, кто интересуется мобильным клиентом. Мы рассмотрим установку мобильного клиента на Android, подключение отладки и сборку apk приложения в конфигурации «Сборщик мобильных приложений».

Это статья для тех, кто интересуется мобильным клиентом. Мы рассмотрим установку мобильного клиента на Android, подключение отладки и сборку apk приложения в конфигурации «Сборщик мобильных приложений».

Наконец-то появилась тестовая мобильная платформа 8.3.12, и теперь мы может протестировать работу мобильного клиента. Не знаю, как Вы, а вот у меня многие знакомые разработчики ждали этого еще с выхода статьи на «1С:Зазеркалье» (Мобильный клиент).

Я предполагаю, что Вы знакомы с установкой мобильного приложения и сборщиком мобильных приложений, а также, что у Вас уже установлен Android SDK, Apache Ant и прочее. Статей на эту тему уже полно.

Возьмем для наших экспериментов демонстрационную конфигурацию «Управляемое приложение» и, для начала, попробуем подключить ее в готовый мобильный клиент. В моем случае, дистрибутив клиента – это файл «1cem-client-arm.apk». Предварительно на смартфоне должна быть включена возможность установки приложений из неизвестных источников. У меня это выглядит так:

Мобильный клиент – это аналог веб-клиента, поэтому, для доступа к базе, ее необходимо опубликовать на веб-сервере. Здесь все стандартно, я публикую на веб-сервере IIS с именем “demo”. База у меня файловая, так что нужно дать права на каталог пользователю IUSR. Радует, что система сама об этом напомнила.

Подключаем базу в мобильном клиенте:

Сразу в базу войти, конечно же, не удалось J Все дело в том, что у Администратора открывается обработка по работе с электронной почтой и пытается установить значок для панели задач, которой в мобильном клиенте нет. Поскольку данной функциональности также нет и в веб-клиенте, код обрамлен в директивы компиляции «#Если Не ВебКлиент Тогда». Нам просто необходимо найти все места, где используется данная директива и поменять ее на «#Если Не ВебКлиент И Не МобильныйКлиент Тогда». Для начала этого вполне достаточно, и мы можем наконец-то увидеть работу мобильного клиента. Командный интерфейс выглядит следующим образом:

А вот список контрагентов:

Конечно же, это не все места, которые необходимо адаптировать под работу мобильного клиента. Проверить конфигурацию можно с помощью «Главное меню – Конфигурация – ­­­Проверка конфигурации»:

У меня нашлось 84 ошибки, включая неподдерживаемые объекты метаданных. Плюс те три места в коде, которые я уже ограничил директивами. Так что придется еще поработать над адаптацией, но это конечно не то же самое, что писать мобильное приложение с нуля.

Запуск под другими ролями происходит также, только необходимо установить право запуска мобильного клиента.

Если мы не понимаем в чем же ошибка – нам поможет отладка. Она в мобильном клиенте есть, но используется только отладка по HTTP. У меня база файловая, так что я воспользуюсь локальным сервером отладки («Сервис – Параметры – Отладка») и настрою автоматическое подключение для мобильного клиента («Отладка – Подключение – Автоматическое подключение»):

Указываем параметры и готово:

 

Настройка для предварительно подготовленного apk клиента от 1С завершена.

Теперь соберем свой apk, воспользовавшись сборщиком мобильный приложений. Признаться, я потратил несколько часов, пытаясь собрать приложение первый раз. Сборка проходила, но открывался пустой список баз.  

И так, имеем архив мобильной версии платформы. Загружаем его в справочник «Мобильные версии»:

В настройках сборщика отдельно появился пункт для SDK 26 и выше (кто, как и я, давно не обновлял – запускаем SDK Manager и загружаем новые пакеты):

Далее необходимо подготовить файл конфигурации. Вот с этим шагом у меня и были проблемы в самом начале. Потом я открыл документацию и все немного прояснилось. Руководство разработчика говорит по этому поводу следующее: «Каждая конфигурация, которая может работать в мобильном клиенте, содержит некоторую вспомогательную информацию, позволяющую отследить подмену конфигурации».
Файл конфигурации необходимо подписать. При этом для каждой конфигурации формируется свой закрытый ключ, а в файл 1cemca.xml выгружается открытый ключ (поле DSAKey), с помощью которого и сравнивается подпись конфигурации.

Чтобы сформировать ключ и подпись, заходим в свойства конфигурации «Подпись мобильного клиента» (сразу под требуемыми разрешениями, если у Вас свойства разделены по категориям, а не по алфавиту) и видим настройки подписи:

Сначала создаем закрытый ключ, прячем его от шпионов и врагов. Далее формируем подпись конфигурации. На будущее, руководство советует зайти в «Главное меню – Конфигурация – Мобильный клиент – Настройка использования мобильного клиента». В диалоге установить флажок «Проверять подпись мобильного клиента при обновлении конфигурации базы данных» и нажать кнопку «ОК». Судя по руководству, подпись будет меняться, если у нас меняется состав или имена объектных типов метаданных, а также имена и/или состав ключей записи регистров. Т.е. изменение форм определенно не влияет на подпись и, судя по описанию, изменение состава реквизитов существующих справочников, документов (но это не точно).

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

Заходим в меню «Конфигурация – Мобильный клиент – Записать в файл» и сохраняем «1cemca.xml». В сборщике мобильных приложений добавляем нашу конфигурацию (группу и элемент):

Создаем группу справочника «Мобильные приложения» и настраиваем параметры сборки по умолчанию:

Добавляем нашу Демо конфигурацию:

Добавляем адрес базы на веб-сервере:

Собираем приложение. Первый раз сборка проходит дольше, последующие разы за несколько минут. После успешной сборки сохраняем готовый apk («Получить приложение»):

Публиковать приложение я, конечно, не буду. Воспользуемся прямой установкой и увидим окно авторизации приложения:

См. также

Комментарии
2. Alex Fesenko (FesenkoA) 22 12.03.18 10:48 Сейчас в теме
То есть по-сути это веб клиент стационарной 1С, который нормально и красиво работает на МП? Или там полное приложение ? (с сервером)
3. Валерий Дяченко (davealone) 90 12.03.18 11:10 Сейчас в теме
(2) Да, это именно клиент для МП. База при этом остается серверной. По поводу нормально и красиво, если была адаптация под запуск веб клиента, то скорее всего взлетит с минимальными правками. Если же писали без оглядки на функционал, править придётся больше.
Но в плане того, что это не отдельное приложение со своими обменами, синхронизацией и прочим - адаптация будет проще.
Хотя здесь понадобится постоянное соединение с веб-сервером.
4. Alex Fesenko (FesenkoA) 22 12.03.18 11:28 Сейчас в теме
(3) просто на ойфоне веб-клиент очень качественно работает (в отличие от ведроида, не говоря уж о вФоне), а главным + МП является его автономность: в этой стране временно нет 4Ж, да и даже вай фай не такой и стабильный способ связи в условиях плотной городской застройки (пока не поменял антену дома - его глушили соседсткие вайфаи/микроволновки). Очень часть приходилось решать проблему битых баз из за того что толстый клиент подключался по вай-фаю к файловой базе на другом пк.

=> Вопрос: Как 1С справляется с обрывами связи? Не пробовали отключать на МП интернет на 30,120,300 сек? Есть ли настройки ожидания связи и какова функциональность без оной?
5. Валерий Дяченко (davealone) 90 12.03.18 13:30 Сейчас в теме
(4) В параметрах запуска поддерживается указание низкой скорости соединения.
При обрывах включает режим ожидания с попыткой повторной отправки запроса, до 2 минут точно переподключает. на больших интервалах не пробовал.
Прикрепленные файлы:
FesenkoA; +1 Ответить
6. Alex Fesenko (FesenkoA) 22 12.03.18 13:48 Сейчас в теме
(5) Прикольно, нужно будет попробовать в условиях переменной сети (в селе каком то) затестировать работу. Но все же мобильное приложение оно не заменит: ниже расход трафика/батареи, МП делается или для сотрудника (позволяет закрыть ненужные данные на уровне обмена, не использовать излишнюю детализацию ведения учета в ИБ, например маршрутный лист сократить из 10 заданий в 1 документ с 10 строками заказами покупателей) или для руководителя, которому важны определенные разделы учета + финрезультат.

В любом случае спасибо за статью!! Будем пробовать :)
7. starasta Старцев (starasta) 12.03.18 17:50 Сейчас в теме
А кто-то пробовал работу с камерой или геопозицией?
8. Plague Fox (A1ice1990) 94 13.03.18 10:25 Сейчас в теме
(0) Нигде в статьях не сказано о некоторых ньюансах сборки под айфон (возможно этот комментарий для страждущих окажется очень полезным), поделюсь опытом:

1) Вместо мака с икскодом можно использовать VMware с виртуалкой мака (купленной на торрентах, как и сама VMware)
2) Возможна последующая установка на айфон. Для этого надо подключить его к физической машине с VMware и выбрать в xcode режим отладки. Затем на айфоне в настройках нужно утвердить ваш сторонний сертификат и тогда приложением можно будет пользоваться недельку (через неделю сертификат умрет и надо будет повторить). Чтоб пользоваться постоянно - надо уже покупать учетку разработчика.

В общем для сборки сам мак не необходим. А если вам потестировать-начальству показать, то и учетка разработчика не нужна.

ЗЫ: с андроидом, естественно, все проще и дешевле.
davealone; +1 Ответить
9. Семён Павлюков (7OH) 31 14.03.18 12:10 Сейчас в теме
Работать - работает.
Как сказали выше - во многих местах надо добавить директиву МобильныйКлиент.
Формы - если вы действительно с чем-то хотите удобно работать - надо расставить приоритеты (новое свойство).
Немного поигравшись с приоритетом или положением элементов - можно добиться нормального показа и на десктопе и на телефоне - платформа приводит вид формы к мобильной версии - то есть формы не будут выглядеть так же как на компе.
У себя пришлось кое-где кодом исправлять положение элементов, точнее пришлось сделать дубли и прятать в зависимости от клиента.
Но эти затраты не сравнимы с написанием полного мобильного приложения.
davealone; gradi; +2 Ответить
10. Plague Fox (A1ice1990) 94 15.03.18 10:12 Сейчас в теме
(9) А еще можно с помощью HTML, CSS и JS верстать нормальный адаптивный дизайн в определенных случаях)

ЗЫ: Как ведет себя JS на мобильниках не проверял, на вскидку WebView поле не понравилось только тем, что его можно маштабировать пальцами (возможно ридонли или обработка кликов решила бы эту проблему, также не проверял).
11. andrey P (andrey314) 10 05.04.18 14:27 Сейчас в теме
Могу ли я подключиться к тестовой конфигурации в 1С-облаке?
Такая ошибка:
Прикрепленные файлы:
20. Илья Низамов (Region102) 32 31.05.18 05:38 Сейчас в теме
Оставьте свое сообщение