Собираем мобильное приложение 1С для Android и iOS своими руками
Содержание
Мобильное приложение
на платформе 1С собирают из обычной конфигурации: в свойствах корня включают назначение использования «Мобильное устройство», выгружают конфигурацию в XML и пропускают её через сборщик мобильных приложений вместе с дистрибутивом мобильной платформы. На выходе — готовый .apk для Android или проект Xcode для iOS, который дальше публикуют в магазине.
Сложность не в самой сборке, а в окружении: для Android нужны JDK и Android SDK, для iOS — компьютер с macOS, Xcode и платный аккаунт Apple Developer. Ниже — порядок действий от подготовки конфигурации до выкладки в магазин, с подписью ключом и настройкой ролей.
Сразу определитесь с форматом: автономное мобильное приложение (данные живут на устройстве) или мобильный клиент (тонкий клиент к серверной базе). От этого зависит и сборка, и способ обновления.
Мобильный клиент или автономное приложение — что собирать
Платформа 1С умеет делать мобильные решения двух типов, и это первое, что нужно выбрать до любой сборки.
- 📦 Автономное мобильное приложение. Конфигурация и данные хранятся прямо на телефоне, в локальной базе. Работает без интернета, обменивается с центральной базой через веб-сервисы или планы обмена. Подходит для выездных сотрудников: торговый представитель, курьер, кладовщик на удалённом складе.
- 🌐 Мобильный клиент. Это тонкий клиент, который работает онлайн с серверной базой 1С через веб-сервер. По сути — та же база, что на компьютерах, только в телефоне. Без связи не работает . Подходит там, где важны единые данные в реальном времени.
Для автономного приложения конфигурацию придётся адаптировать: не все объекты и методологии доступны на мобильной платформе. Мобильный клиент ближе к обычной 1С, но требует постоянного соединения и серверной инфраструктуры.
Подготовка конфигурации к сборке
Мобильное приложение собирают не из «воздуха», а из конфигурации, у которой в корне включено нужное назначение использования.
- Откройте конфигурацию в Конфигураторе и перейдите в свойства корневого узла дерева (самая верхняя строка с названием конфигурации).
- В свойстве
Назначение использованияустановите флаг «Мобильное устройство». Для гибридных решений оставляют и «Персональный компьютер», и «Мобильное устройство» одновременно. - Проверьте объекты: часть возможностей «большой» 1С на мобильной платформе недоступна. Конфигуратор подсветит несовместимые места при проверке конфигурации.
Мобильная платформа поддерживает ограниченный набор объектов и методов. Регламентные задания, некоторые типы форм и часть встроенного языка работают иначе или недоступны. Проверяйте конфигурацию на совместимость до сборки, а не после.
Дальше конфигурацию нужно отдать сборщику. Для автономного приложения в Конфигураторе есть пункт Конфигурация → Мобильное приложение → Записать в файл — он выгружает конфигурацию в XML, который понимает сборщик. Для мобильного клиента используют ветку Конфигурация → Мобильный клиент: его можно записать в файл или сразу опубликовать на веб-сервере.
Если приложение автономное и должно обмениваться с центральной базой, заранее настройте механизм обмена — через HTTP-сервисы, Web-сервисы или планы обмена. Без этого приложение останется изолированным: данные с телефона не попадут в учётную базу.
Окружение и инструменты сборки
Чтобы превратить XML конфигурации в устанавливаемый файл, нужен сборщик и правильно настроенное окружение. Состав зависит от целевой платформы.
| Компонент | Для Android | Для iOS |
|---|---|---|
| Сборщик мобильных приложений | да | да |
| Дистрибутив мобильной платформы | да | да |
| JDK (Java Development Kit) | да | да |
| Android SDK | да | нет |
| macOS + Xcode | нет | да |
| Платный аккаунт разработчика | Google Play (~25 $ единоразово) | Apple Developer (~99 $ в год) |
Сборщик мобильных приложений — это специальная конфигурация от 1С. Её публикуют на веб-сервере (Apache или IIS) и работают с ней через браузер. В сборщик загружают три вещи: дистрибутив мобильной платформы, XML вашей конфигурации и ключи подписи. Он сам вызывает инструменты сборки и выдаёт готовый пакет.
Дистрибутив мобильной платформы скачивают отдельно под нужную версию. Версия мобильной платформы в сборщике должна совпадать с версией, под которую вы проверяли конфигурацию — иначе приложение соберётся, но может падать на старте.
JDK нужен для работы с Android-сборкой и для создания ключа подписи (утилита keytool входит в JDK). Android SDK предоставляет инструменты упаковки .apk. Пути к JDK и Android SDK прописывают в настройках сборщика один раз.
Для первого знакомства не обязательно сразу собирать магазинный пакет. Установите на телефон тестовое приложение мобильной платформы 1С (оно есть в Google Play и App Store), опубликуйте конфигурацию на веб-сервере и подключитесь к ней — так вы увидите интерфейс, не настраивая JDK и SDK.
Роли и права доступа в мобильном приложении
Права в мобильном решении работают по тем же принципам, что и в обычной 1С: доступ к объектам определяют роли, назначенные пользователю. Но сценарии входа различаются.
- 👥 Мобильный клиент. Пользователь аутентифицируется на серверной базе — логином и паролем 1С или по доменной учётной записи, если так настроен веб-сервер. Роли и ограничения на уровне записей (RLS) действуют те же, что и для настольных клиентов той же базы.
- 📱 Автономное приложение. Список пользователей и их роли хранятся внутри приложения на устройстве. Можно сделать вход с паролем, а можно собрать приложение без аутентификации — тогда работает один «безымянный» пользователь с полными правами.
Минимально безопасный набор ролей закладывают ещё в конфигурации:
- Создайте отдельные роли под мобильные сценарии (например, «Торговый представитель»), не давайте мобильным пользователям роль с полными правами.
- Для автономного приложения с обменом ограничьте права так, чтобы с устройства нельзя было изменить то, что меняется только в центральной базе.
- Если приложение уходит на устройства, которые легко потерять, не храните в локальной базе лишние чувствительные данные и предусмотрите пароль на вход.
В автономном приложении данные физически лежат на телефоне. Роль ограничивает действия внутри приложения, но не защищает файл базы при краже устройства — для этого нужен пароль на приложение и, по возможности, шифрование средствами ОС.
Сборка приложения под Android
Android-пакет собирают в сборщике, предварительно создав ключ подписи. Без подписи приложение не установится и тем более не попадёт в Google Play.
Шаг 1. Создайте хранилище ключей (keystore). Выполните команду keytool из состава JDK:
keytool -genkey -v -keystore mobile.keystore -alias mobilekey -keyalg RSA -keysize 2048 -validity 10000
Утилита спросит пароль хранилища, пароль ключа и данные владельца. Сохраните файл mobile.keystore и оба пароля в надёжном месте — потерять их нельзя: без того же ключа вы не сможете выпустить обновление в Google Play, придётся публиковать приложение заново под другим идентификатором.
Шаг 2. Загрузите данные в сборщик. В опубликованном сборщике создайте приложение для платформы Android и укажите:
- XML конфигурации, выгруженный ранее;
- версию мобильной платформы;
- файл
keystore, алиас ключа и пароли; - идентификатор пакета (package name) вида
ru.company.app— он должен быть уникальным в магазине.
Шаг 3. Запустите сборку. Сборщик вызовет JDK и Android SDK и соберёт .apk (или .aab — формат пакета Android App Bundle, который сейчас требует Google Play). Файл можно скачать из сборщика.
Шаг 4. Проверьте на устройстве. Установите собранный .apk на телефон вручную (для этого на устройстве включают установку из неизвестных источников) и прогоните основные сценарии до публикации в магазине.
Если сборка падает, почти всегда дело в окружении: не тот путь к SDK, несовпадение версий платформы, неверный пароль ключа. Конкретные симптомы разобраны ниже в разделе про ошибки.
Сборка и публикация под iOS
С iOS сложнее по одной причине: собрать приложение под iPhone можно только на компьютере с macOS и установленным Xcode. Это требование Apple, обойти его легально нельзя.
Что понадобится, помимо самого Mac:
- Аккаунт Apple Developer Program. Платный, ориентировочно 99 $ в год. Без него нельзя получить сертификаты распространения и выложить приложение в App Store.
- App ID — идентификатор приложения, который регистрируют в кабинете разработчика Apple.
- Сертификат распространения (distribution certificate) и профиль обеспечения (provisioning profile), привязанный к App ID.
Порядок действий:
- В сборщике создайте приложение для платформы iOS, укажите XML конфигурации, версию мобильной платформы и идентификатор. На выходе сборщик отдаёт не готовый файл для магазина, а проект для Xcode.
- Откройте проект в Xcode на Mac, подставьте сертификат и профиль обеспечения, соберите архив (
Product → Archive). - Из архива загрузите приложение в App Store Connect — прямо из Xcode или через утилиту Transporter.
- В App Store Connect заполните карточку, приложите скриншоты и отправьте на ревью. Модерация Apple строже, чем у Google, и может занять несколько дней.
Нет своего Mac? Подойдёт любой компьютер Apple или арендованный в облаке «mac в аренду». Для разовой сборки этого хватит, но для регулярных обновлений удобнее иметь постоянный доступ к macOS.
Распространение и обновление приложения
Собранный пакет распространяют тремя способами — выбор зависит от того, внешние это пользователи или сотрудники компании.
- 🏪 Через магазины. Google Play и App Store — для публичных приложений. Нужны аккаунты разработчика (см. выше), карточка, скриншоты и прохождение модерации.
- 🏢 Напрямую внутри компании.
.apkдля Android можно раздать сотрудникам файлом или через корпоративную систему управления устройствами (MDM), минуя Google Play. Для iOS внутренняя раздача сложнее и требует отдельной корпоративной программы Apple. - 🔗 Мобильный клиент — без сборки пакета. Если выбран мобильный клиент, во многих случаях приложение вообще не публикуют: пользователь ставит тестовое приложение мобильной платформы 1С из магазина и подключается к вашей опубликованной базе по ссылке или QR-коду.
Обновление различается по типу решения и по тому, что именно поменялось.
| Что изменилось | Автономное приложение | Мобильный клиент |
|---|---|---|
| Прикладной код, формы, реквизиты | Обновление конфигурации «по воздуху» через обмен/веб-сервис, без переустановки | Достаточно обновить серверную базу — клиент подтянет изменения |
| Версия мобильной платформы | Нужна новая сборка пакета и публикация в магазине | Обновляют само приложение мобильной платформы |
То есть автономное приложение удобно тем, что прикладные правки доезжают до телефонов без похода в магазин — через механизм обновления конфигурации. А вот смена версии платформы (например, ради новой возможности ОС) всегда означает пересборку и новую публикацию.
Google Play и App Store периодически поднимают минимальные требования к версии целевой ОС. Даже если ваше приложение не менялось, раз в год-два придётся пересобрать его под более свежую мобильную платформу, чтобы магазин не снял его с публикации.
Частые ошибки при сборке и как их обойти
Большинство проблем возникает не в коде конфигурации, а в окружении сборки. Вот типовые симптомы и причины.
keystore. Обновление должно быть подписано тем же ключом, что и первая публикация. Нужен исходный файл хранилища и пароли.Отдельная категория — несовместимые объекты. Если конфигурация большая и изначально писалась под настольную 1С, часть функций на мобильной платформе просто не заработает. Разумнее собрать под мобильное устройство отдельную облегчённую конфигурацию, а не пытаться «впихнуть» всю учётную систему в телефон.
Частые вопросы
Нужен ли Mac, чтобы собрать приложение только под Android?
Можно ли обойтись без публикации в магазине?
.apk раздают сотрудникам напрямую или через MDM. А мобильный клиент часто вообще не собирают: пользователь ставит тестовое приложение мобильной платформы из магазина и подключается к вашей базе по ссылке.