Это статья для тех, кто интересуется мобильным клиентом. Мы рассмотрим установку мобильного клиента на 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 («Получить приложение»):
Публиковать приложение я, конечно, не буду. Воспользуемся прямой установкой и увидим окно авторизации приложения: