Как выложить мобильное приложение на базе 1С для телефонов и планшетов
Содержание
Опубликовать мобильное приложение 1С можно двумя путями: как мобильный клиент — он работает только на связи с опубликованной базой, и как автономное мобильное приложение — отдельный APK (Android) или сборка под iOS с собственной базой на устройстве. Выбор пути определяет всё остальное: нужен ли вам веб-сервер постоянно, будете ли собирать установочный пакет и подписывать его ключом.
Ниже — как подготовить базу, настроить файл публикации, собрать APK для телефона на Android, что требует Apple для iOS, как раздать права и чем обычно заканчивается первая попытка развернуть приложение «в бой».
Мобильный клиент или автономное приложение: что выбрать
Прежде чем что-то публиковать, определитесь с моделью работы — от неё зависит весь дальнейший процесс.
- 📱 Мобильный клиент — на телефон ставится универсальное приложение «1С:Предприятие. Мобильный клиент» из Google Play или App Store. Оно подключается к вашей опубликованной базе по интернету и показывает её интерфейс. Своей базы на устройстве нет, данные живут на сервере.
- 📦 Автономное мобильное приложение — отдельная программа, собранная из мобильной платформы и вашей конфигурации. У неё своя база прямо на устройстве, а с центральной 1С она обменивается данными по расписанию через веб-сервис. Работает без постоянной сети.
Мобильный клиент доступен на платформе не ниже 8.3.14 и требует, чтобы в конфигурации было добавлено назначение использования «Мобильный клиент». Автономное приложение собирается из конфигурации с назначением «Мобильное устройство».
Дальше шаги показаны для автономного приложения — это полный цикл. Если вам достаточно мобильного клиента, хватит разделов про публикацию базы и права доступа .
Подготовка веб-сервера и публикация базы
И мобильный клиент, и обмен автономного приложения работают через веб-сервер. Без опубликованной базы телефон просто не найдёт точку подключения.
Что нужно на стороне сервера:
- Веб-сервер — IIS на Windows Server (2016 и новее) или Apache. Установите его до публикации.
- Установленная платформа 1С:Предприятие той же разрядности, что и веб-сервер (для IIS обычно 64-битная).
- Модуль расширения веб-сервера из дистрибутива платформы — он связывает 1С и веб-сервер.
Саму публикацию делают из конфигуратора: пункт Администрирование → Публикация на веб-сервере. В окне задают имя виртуального каталога (латиницей, например mobile), путь к каталогу на диске и адрес веб-сервера.
Публикуйте под HTTPS. Мобильное устройство ходит в базу через открытый интернет, и пароли по HTTP уходят в сеть незашифрованными.
После публикации база доступна по адресу вида https://ваш-сервер/mobile. Проверьте его в обычном браузере — если открылось окно 1С, веб-часть работает и можно двигаться к мобильной настройке.
Настройка файла публикации для мобильных устройств
Публикация создаёт в каталоге файл default.vrd — это описание того, что именно доступно по данному адресу. Для телефонов в нём важны два момента: опубликован ли мобильный клиент и опубликован ли веб-сервис обмена данными.
В окне публикации в конфигураторе за это отвечают:
- 🔹 флажок публикации мобильного клиента — он включает в
default.vrdстроку, по которой универсальный клиент из маркета понимает, что базу можно открыть на телефоне; - 🔹 вкладка с веб-сервисами — для автономного приложения публикуют сервис обмена, через который устройство скачивает и отдаёт данные.
Если правите default.vrd руками, делайте это после закрытия базы в конфигураторе и обязательно сохраните исходную копию. Ошибка в XML оставит базу недоступной по вебу без внятного сообщения.
После любой правки публикации перезапустите пул приложений IIS (или службу Apache), иначе веб-сервер отдаёт старую версию default.vrd из кэша.
Перед изменением файла публикации на рабочем сервере сделайте резервную копию каталога — вернуть прежнее состояние быстрее, чем искать опечатку в XML.
Сборка установочного пакета APK для Android
Автономное приложение превращается в APK не в конфигураторе, а в отдельной веб-программе — сборщике мобильных приложений. Это тоже 1С-приложение, которое вы разворачиваете на веб-сервере и открываете в браузере.
Чтобы сборщик смог собрать APK, на машине сборки нужен внешний инструментарий:
Порядок действий:
- В конфигураторе выгрузите конфигурацию мобильного приложения в файл (конфигурация должна иметь назначение использования «Мобильное устройство»).
- В сборщике создайте новую сборку: укажите имя пакета (вида
ru.company.app), версию, иконку и загруженный файл конфигурации. - Укажите версию мобильной платформы — её номер должен быть не ниже того, под который написана конфигурация.
- Подготовьте ключ подписи. Хранилище ключей создаётся утилитой
keytoolиз JDK и сохраняется в файле формата.keystore(или.jks). Один и тот же ключ используйте для всех будущих обновлений приложения. - Запустите сборку. На выходе получите подписанный файл
.apk.
Потеряете ключ подписи — не сможете выпустить обновление в Google Play: магазин принимает новую версию только с тем же ключом, что и первая. Храните .keystore и пароль к нему отдельно от компьютера сборки.
Готовый APK ставят на телефон тремя способами: вручную файлом (нужно разрешить установку из неизвестных источников), по ссылке с протоколом 1cem-https прямо с веб-сервера или через публикацию в Google Play. Для внутреннего приложения компании первых двух способов обычно достаточно.
Особенности выпуска под iOS
Под iPhone и iPad действует другой порядок — Apple не разрешает ставить произвольные APK, и «собрать и раздать файлом», как на Android, не получится.
Что понадобится:
- 💻 компьютер на macOS с установленным Xcode — без него собрать и подписать iOS-приложение нельзя;
- 🍎 аккаунт Apple Developer Program (платный, ориентировочно около 99 долларов в год);
- 🔐 сертификат разработчика и профиль обеспечения (provisioning profile) из кабинета разработчика Apple.
Сборщик мобильных приложений 1С в этом случае готовит не готовый файл, а проект Xcode. Его открывают на Mac, подставляют свой сертификат и профиль и собирают приложение уже средствами Xcode.
Распространяют iOS-приложение двумя путями:
| Способ | Когда подходит | Что требует |
|---|---|---|
| App Store | публичное приложение для всех | модерация Apple, публичная карточка |
| Корпоративное распространение | только для сотрудников компании | отдельная корпоративная программа Apple |
Для теста на своём устройстве хватает обычного аккаунта разработчика и установки через Xcode по кабелю. Для раздачи коллегам уже нужен App Store либо корпоративная программа.
Установка и обновление приложения на устройствах
Собрать пакет — половина дела. Дальше его надо доставить на телефоны сотрудников и наладить выпуск обновлений, иначе через месяц у каждого окажется своя версия.
Способы раздать автономное приложение:
- 🔗 По ссылке с веб-сервера. Сборщик публикует приложение по адресу с протоколом
1cem-https(или1cem-httpбез шифрования). Сотрудник открывает ссылку на телефоне — приложение скачивается и ставится. Этот же адрес используется для проверки обновлений. - 📥 Файлом APK. Для Android можно просто передать файл и поставить вручную, разрешив установку из неизвестных источников. Годится для нескольких устройств, но обновлять придётся тоже вручную.
- 🏬 Через магазин. Google Play и App Store удобны, когда приложение публичное или устройств много: обновления прилетают сами.
Обновление автономного приложения — это пересборка пакета с новым номером версии и выкладка его по тому же адресу публикации. При следующем запуске приложение сверяет версию и предлагает обновиться.
Повышайте номер версии при каждой сборке. Если номер не изменился, устройство посчитает, что обновлять нечего, и останется на старой сборке — частая причина «у меня всё по-старому» после правок.
Мобильный клиент обновлять проще: достаточно обновить конфигурацию на сервере. Клиент подтягивает изменения при подключении, пересобирать ничего не нужно — в этом его главное удобство при частых доработках.
Права доступа и безопасность подключения
Мобильное приложение показывает ровно то, что разрешено пользователю, под которым он вошёл. Права настраиваются не на телефоне, а в конфигурации — через роли.
- 👤 Для каждого пользователя в списке пользователей базы задайте роли, которые ограничивают доступные документы, справочники и действия.
- 🔑 Включите аутентификацию по логину и паролю. Пустой пароль администратора на опубликованной базе — открытая дверь в учёт.
- 🌐 Для автономного приложения отдельным пользователем работает веб-сервис обмена. Дайте ему минимальные права — только на те данные, которыми обменивается устройство.
Разделяйте учётные записи: один пользователь — один сотрудник. Так в журнале регистрации видно, кто и с какого устройства менял данные.
Для автономного приложения помните: данные физически лежат на телефоне. Если устройство теряется, защитой служит пароль входа в приложение и возможность не хранить на устройстве лишние справочники. Передавайте по сети только нужный срез данных, а не всю базу.
Типичные ошибки при развёртывании
Первая публикация почти всегда спотыкается на одном из нескольких мест. Вот как отличить их по симптому.
Отдельно про версии: номер мобильной платформы в сборке должен быть не ниже версии, под которую собрана конфигурация. Если собрать приложение на платформе старее, оно либо не запустится, либо откажется открывать базу.