Как выложить мобильное приложение на базе 1С для телефонов и планшетов

· 9 мин

Содержание

Опубликовать мобильное приложение 1С можно двумя путями: как мобильный клиент — он работает только на связи с опубликованной базой, и как автономное мобильное приложение — отдельный APK (Android) или сборка под iOS с собственной базой на устройстве. Выбор пути определяет всё остальное: нужен ли вам веб-сервер постоянно, будете ли собирать установочный пакет и подписывать его ключом.

Ниже — как подготовить базу, настроить файл публикации, собрать APK для телефона на Android, что требует Apple для iOS, как раздать права и чем обычно заканчивается первая попытка развернуть приложение «в бой».

Мобильный клиент или автономное приложение: что выбрать

Прежде чем что-то публиковать, определитесь с моделью работы — от неё зависит весь дальнейший процесс.

  • 📱 Мобильный клиент — на телефон ставится универсальное приложение «1С:Предприятие. Мобильный клиент» из Google Play или App Store. Оно подключается к вашей опубликованной базе по интернету и показывает её интерфейс. Своей базы на устройстве нет, данные живут на сервере.
  • 📦 Автономное мобильное приложение — отдельная программа, собранная из мобильной платформы и вашей конфигурации. У неё своя база прямо на устройстве, а с центральной 1С она обменивается данными по расписанию через веб-сервис. Работает без постоянной сети.

Мобильный клиент доступен на платформе не ниже 8.3.14 и требует, чтобы в конфигурации было добавлено назначение использования «Мобильный клиент». Автономное приложение собирается из конфигурации с назначением «Мобильное устройство».

Какой вариант публикации подойдёт вашей задаче?

Дальше шаги показаны для автономного приложения — это полный цикл. Если вам достаточно мобильного клиента, хватит разделов про публикацию базы и права доступа .

Подготовка веб-сервера и публикация базы

И мобильный клиент, и обмен автономного приложения работают через веб-сервер. Без опубликованной базы телефон просто не найдёт точку подключения.

Что нужно на стороне сервера:

  1. Веб-сервер — IIS на Windows Server (2016 и новее) или Apache. Установите его до публикации.
  2. Установленная платформа 1С:Предприятие той же разрядности, что и веб-сервер (для IIS обычно 64-битная).
  3. Модуль расширения веб-сервера из дистрибутива платформы — он связывает 1С и веб-сервер.

Саму публикацию делают из конфигуратора: пункт Администрирование → Публикация на веб-сервере. В окне задают имя виртуального каталога (латиницей, например mobile), путь к каталогу на диске и адрес веб-сервера.

Публикуйте под HTTPS. Мобильное устройство ходит в базу через открытый интернет, и пароли по HTTP уходят в сеть незашифрованными.

После публикации база доступна по адресу вида https://ваш-сервер/mobile. Проверьте его в обычном браузере — если открылось окно 1С, веб-часть работает и можно двигаться к мобильной настройке.

Настройка файла публикации для мобильных устройств

Публикация создаёт в каталоге файл default.vrd — это описание того, что именно доступно по данному адресу. Для телефонов в нём важны два момента: опубликован ли мобильный клиент и опубликован ли веб-сервис обмена данными.

В окне публикации в конфигураторе за это отвечают:

  • 🔹 флажок публикации мобильного клиента — он включает в default.vrd строку, по которой универсальный клиент из маркета понимает, что базу можно открыть на телефоне;
  • 🔹 вкладка с веб-сервисами — для автономного приложения публикуют сервис обмена, через который устройство скачивает и отдаёт данные.

Если правите default.vrd руками, делайте это после закрытия базы в конфигураторе и обязательно сохраните исходную копию. Ошибка в XML оставит базу недоступной по вебу без внятного сообщения.

После любой правки публикации перезапустите пул приложений IIS (или службу Apache), иначе веб-сервер отдаёт старую версию default.vrd из кэша.

Перед изменением файла публикации на рабочем сервере сделайте резервную копию каталога — вернуть прежнее состояние быстрее, чем искать опечатку в XML.

Сборка установочного пакета APK для Android

Автономное приложение превращается в APK не в конфигураторе, а в отдельной веб-программе — сборщике мобильных приложений. Это тоже 1С-приложение, которое вы разворачиваете на веб-сервере и открываете в браузере.

Чтобы сборщик смог собрать APK, на машине сборки нужен внешний инструментарий:

Что поставить перед сборкой APK
Выполнено: 0 / 5

Порядок действий:

  1. В конфигураторе выгрузите конфигурацию мобильного приложения в файл (конфигурация должна иметь назначение использования «Мобильное устройство»).
  2. В сборщике создайте новую сборку: укажите имя пакета (вида ru.company.app), версию, иконку и загруженный файл конфигурации.
  3. Укажите версию мобильной платформы — её номер должен быть не ниже того, под который написана конфигурация.
  4. Подготовьте ключ подписи. Хранилище ключей создаётся утилитой keytool из JDK и сохраняется в файле формата .keystore (или .jks). Один и тот же ключ используйте для всех будущих обновлений приложения.
  5. Запустите сборку. На выходе получите подписанный файл .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 удобны, когда приложение публичное или устройств много: обновления прилетают сами.

Обновление автономного приложения — это пересборка пакета с новым номером версии и выкладка его по тому же адресу публикации. При следующем запуске приложение сверяет версию и предлагает обновиться.

Повышайте номер версии при каждой сборке. Если номер не изменился, устройство посчитает, что обновлять нечего, и останется на старой сборке — частая причина «у меня всё по-старому» после правок.

Мобильный клиент обновлять проще: достаточно обновить конфигурацию на сервере. Клиент подтягивает изменения при подключении, пересобирать ничего не нужно — в этом его главное удобство при частых доработках.

Права доступа и безопасность подключения

Мобильное приложение показывает ровно то, что разрешено пользователю, под которым он вошёл. Права настраиваются не на телефоне, а в конфигурации — через роли.

  • 👤 Для каждого пользователя в списке пользователей базы задайте роли, которые ограничивают доступные документы, справочники и действия.
  • 🔑 Включите аутентификацию по логину и паролю. Пустой пароль администратора на опубликованной базе — открытая дверь в учёт.
  • 🌐 Для автономного приложения отдельным пользователем работает веб-сервис обмена. Дайте ему минимальные права — только на те данные, которыми обменивается устройство.

Разделяйте учётные записи: один пользователь — один сотрудник. Так в журнале регистрации видно, кто и с какого устройства менял данные.

Для автономного приложения помните: данные физически лежат на телефоне. Если устройство теряется, защитой служит пароль входа в приложение и возможность не хранить на устройстве лишние справочники. Передавайте по сети только нужный срез данных, а не всю базу.

Типичные ошибки при развёртывании

Первая публикация почти всегда спотыкается на одном из нескольких мест. Вот как отличить их по симптому.

Диагностика: выберите симптом

Отдельно про версии: номер мобильной платформы в сборке должен быть не ниже версии, под которую собрана конфигурация. Если собрать приложение на платформе старее, оно либо не запустится, либо откажется открывать базу.

Частые вопросы

Нужен ли платный аккаунт, чтобы просто протестировать приложение на своём телефоне?
Для Android — нет: подписанный вами APK ставится на устройство напрямую, достаточно разрешить установку из неизвестных источников. Для iOS нужен аккаунт разработчика Apple, но для установки на собственное устройство через Xcode подойдёт его базовый уровень.
Можно ли обойтись без сборки APK и сразу дать людям работать?
Да, если выбрать мобильный клиент. Пользователь ставит готовое приложение из маркета и вводит адрес вашей опубликованной базы — собственная сборка не нужна. Но тогда нужен постоянный доступ в интернет.
Чем мобильный клиент отличается от мобильного приложения по данным?
У мобильного клиента данных на устройстве нет, он всё время работает с базой на сервере. У автономного приложения своя копия базы на телефоне, а с сервером оно синхронизируется по расписанию и может работать без сети.
Что будет, если потерять файл ключа подписи Android?
Вы не сможете выпустить обновление в Google Play под той же записью приложения — магазин требует подпись тем же ключом. Придётся публиковать приложение заново как новое. Поэтому хранилище ключей держат в надёжном месте с самого начала.
Обязательно ли публиковать базу по HTTPS?
Технически приложение заработает и по HTTP, но тогда логины и пароли передаются по сети в открытом виде. Для любого реального использования публикуйте только по HTTPS с действующим сертификатом.