Собираем мобильное приложение 1С для Android и iOS своими руками

· 10 мин

Содержание

Мобильное приложение на платформе 1С собирают из обычной конфигурации: в свойствах корня включают назначение использования «Мобильное устройство», выгружают конфигурацию в XML и пропускают её через сборщик мобильных приложений вместе с дистрибутивом мобильной платформы. На выходе — готовый .apk для Android или проект Xcode для iOS, который дальше публикуют в магазине.

Сложность не в самой сборке, а в окружении: для Android нужны JDK и Android SDK, для iOS — компьютер с macOS, Xcode и платный аккаунт Apple Developer. Ниже — порядок действий от подготовки конфигурации до выкладки в магазин, с подписью ключом и настройкой ролей.

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

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

Платформа 1С умеет делать мобильные решения двух типов, и это первое, что нужно выбрать до любой сборки.

  • 📦 Автономное мобильное приложение. Конфигурация и данные хранятся прямо на телефоне, в локальной базе. Работает без интернета, обменивается с центральной базой через веб-сервисы или планы обмена. Подходит для выездных сотрудников: торговый представитель, курьер, кладовщик на удалённом складе.
  • 🌐 Мобильный клиент. Это тонкий клиент, который работает онлайн с серверной базой 1С через веб-сервер. По сути — та же база, что на компьютерах, только в телефоне. Без связи не работает . Подходит там, где важны единые данные в реальном времени.
Автономное приложение или мобильный клиент?

Для автономного приложения конфигурацию придётся адаптировать: не все объекты и методологии доступны на мобильной платформе. Мобильный клиент ближе к обычной 1С, но требует постоянного соединения и серверной инфраструктуры.

Подготовка конфигурации к сборке

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

  1. Откройте конфигурацию в Конфигураторе и перейдите в свойства корневого узла дерева (самая верхняя строка с названием конфигурации).
  2. В свойстве Назначение использования установите флаг «Мобильное устройство». Для гибридных решений оставляют и «Персональный компьютер», и «Мобильное устройство» одновременно.
  3. Проверьте объекты: часть возможностей «большой» 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) действуют те же, что и для настольных клиентов той же базы.
  • 📱 Автономное приложение. Список пользователей и их роли хранятся внутри приложения на устройстве. Можно сделать вход с паролем, а можно собрать приложение без аутентификации — тогда работает один «безымянный» пользователь с полными правами.

Минимально безопасный набор ролей закладывают ещё в конфигурации:

  1. Создайте отдельные роли под мобильные сценарии (например, «Торговый представитель»), не давайте мобильным пользователям роль с полными правами.
  2. Для автономного приложения с обменом ограничьте права так, чтобы с устройства нельзя было изменить то, что меняется только в центральной базе.
  3. Если приложение уходит на устройства, которые легко потерять, не храните в локальной базе лишние чувствительные данные и предусмотрите пароль на вход.

В автономном приложении данные физически лежат на телефоне. Роль ограничивает действия внутри приложения, но не защищает файл базы при краже устройства — для этого нужен пароль на приложение и, по возможности, шифрование средствами ОС.

Сборка приложения под 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:

  1. Аккаунт Apple Developer Program. Платный, ориентировочно 99 $ в год. Без него нельзя получить сертификаты распространения и выложить приложение в App Store.
  2. App ID — идентификатор приложения, который регистрируют в кабинете разработчика Apple.
  3. Сертификат распространения (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 периодически поднимают минимальные требования к версии целевой ОС. Даже если ваше приложение не менялось, раз в год-два придётся пересобрать его под более свежую мобильную платформу, чтобы магазин не снял его с публикации.

Частые ошибки при сборке и как их обойти

Большинство проблем возникает не в коде конфигурации, а в окружении сборки. Вот типовые симптомы и причины.

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

Отдельная категория — несовместимые объекты. Если конфигурация большая и изначально писалась под настольную 1С, часть функций на мобильной платформе просто не заработает. Разумнее собрать под мобильное устройство отдельную облегчённую конфигурацию, а не пытаться «впихнуть» всю учётную систему в телефон.

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

Нужен ли Mac, чтобы собрать приложение только под Android?
Нет. Для Android достаточно Windows или Linux с установленными JDK и Android SDK. Компьютер с macOS нужен исключительно для сборки под iOS — это требование Apple.
Можно ли обойтись без публикации в магазине?
Да. Для Android собранный .apk раздают сотрудникам напрямую или через MDM. А мобильный клиент часто вообще не собирают: пользователь ставит тестовое приложение мобильной платформы из магазина и подключается к вашей базе по ссылке.
Сколько стоит выложить приложение в магазины?
Ориентировочно: аккаунт Google Play — около 25 $ единоразово, участие в Apple Developer Program — около 99 $ в год. Цены задаёт сам магазин и со временем меняются.
Нужна ли отдельная лицензия 1С для мобильного приложения?
Для автономного приложения лицензия встраивается в сборку по условиям поставки мобильной платформы. Для мобильного клиента действует лицензирование серверной базы, к которой он подключается. Точные условия уточняйте для вашей конфигурации.
Можно ли обновлять приложение без переустановки?
Для автономного приложения — да, прикладные изменения конфигурации доставляются «по воздуху» через механизм обмена. Но смена версии мобильной платформы всегда требует пересборки и новой публикации.