1. Ключевое понимание: что мы публикуем?
Вы не публикуете саму «1С» или платформу. Вы публикуете специальную сборку мобильного клиента 1С (Mobile Client), в которую уже встроена ваша конфигурация (база данных, метаданные, часть бизнес-логики). По сути, это standalone-приложение.
Аналогия: Это, как если бы вы создали кросс-платформенное приложение на React Native или Flutter, которое уже содержит весь необходимый код и данные для работы офлайн.
2. Подготовительный этап: Сборка мобильного клиента
Это делается в Конфигураторе 1С (не в режиме «1С:Предприятие»).
- Открытие конфигурации: Зайдите в Конфигуратор и откройте вашу конфигурацию.
- Публикация мобильного приложения: Меню Администрирование -> Публикация мобильных приложений... (в современных платформах путь может незначительно отличаться).
- Настройки публикации:
- Каталог публикации: Укажите пустую папку, куда будут сгенерированы файлы.
- Тип приложения: Автономное мобильное приложение.
- Настройки: Укажите имя, версию, идентификатор (важно! Он же Application ID для Google Play, например ru.mycompany.myapp1c). Идентификатор потом очень сложно поменять!
- Включение в приложение: Выберите нужные роли, пользователей, данные для предварительной загрузки (справочники, нормативно-справочная информация). Важно! Чем больше данных зашьёте на старте — тем больше размер приложения (APK/AAB).
- Генерация: Нажмите «Опубликовать». В указанной папке появятся файлы для разных платформ:
- android.zip — сырой проект для Android.
- index.html и другие — для веб.
Практический совет №1: Сначала генерируйте приложение в режиме отладки (debug), чтобы протестировать базовую логику на реальном устройстве через Android Studio. Финальную сборку для магазина делайте в режиме релиза (release).
3. Подготовка Android-проекта к публикации
Архив android.zip — это заготовка Android-проекта. С ним нужно работать в Android Studio.
- Распаковка и открытие: Распакуйте android.zip и откройте папку проекта в Android Studio.
- Ключевые настройки в build.gradle (модуль app):
- applicationId — должен совпадать с идентификатором, заданным в Конфигураторе.

- versionCode — целое число, увеличивается с каждой публикацией в маркет.
- versionName — строковая версия (обычно как в конфигурации).
- minSdkVersion, targetSdkVersion — актуальные версии. Внимание! Поднимая targetSdkVersion, обязательно тестируйте работу приложения на новых Android из-за ужесточения политик безопасности (доступ к файлам, разрешения).
- Иконка и ресурсы: Замените стандартную иконку 1С (ic_launcher в папках mipmap-*) на свою. Отредактируйте строковые ресурсы (res/values/strings.xml) — название приложения.
- Подписание (Signing): Создайте ключ для подписи (jks-файл). Это самый важный шаг! Без этого ключа вы не сможете обновлять приложение. Храните его в надёжном месте! Настройте подписание в Gradle или через меню Build -> Generate Signed Bundle / APK.
- Сборка релизного APK или AAB: Современный формат — Android App Bundle (.aab). Именно его требует Google Play. Соберите его через Android Studio.
Практический совет №2: Обязательно протестируйте собранный APK/AAB на нескольких устройствах с разными версиями Android перед загрузкой в консоль. Проверьте запуск, базовую функциональность, работу с локальными данными.
4. Публикация в Google Play Console
- Создание приложения: Зайдите в Google Play Console. Создайте новое приложение. Application ID должен точно совпадать с applicationId из проекта.
- Заполнение магазина:
- Название, краткое/полное описание. Укажите, что это офлайн-приложение для работы с данными, созданное на платформе 1С.
- Скриншоты: Обязательно сделайте реальные скрины с вашего приложения на разных устройствах. Не оставляйте стандартные от 1С.
- Иконка: Та же, что и в приложении.
- Категория: Соответствующая (Бизнес, Финансы, Производительность и т.д.).
- Контент: Рейтинг, анкета о конфиденциальности.
- Контентная часть (самое важное):
- Политика конфиденциальности: Даже если приложение не собирает данные явно, оно работает с пользовательскими бизнес-данными. Вам обязательно нужен размещённый в сети документ "Политика конфиденциальности". Можно сгенерировать на специальных сервисах.
- Особенности: Отметьте, что приложение работает офлайн.
- Загрузка сборки: В разделе Релизы -> Производство создайте новый релиз и загрузите ваш .aab файл. Заполните описание изменений.
- Тестирование: Настоятельно рекомендую использовать внутреннее тестирование. Загрузите сборку, добавьте тестеров (достаточно просто создать список на почту). Это позволит проверить установку из магазина до публикации для всех. Тестирование в открытом (open testing) или закрытом (closed testing) — на ваше усмотрение.
5. Ключевые сложности и их решение (Практический опыт)
- Размер приложения (APK/AAB). Может легко достигать 50-100 МБ и более.
- Решение: Минимизируйте предустановленные данные в Конфигураторе. Оставляйте только самое необходимое (справочники валют, единиц измерения). Основные данные загружайте при первом подключении к серверу. Используйте Android App Bundle (AAB) — Google Play будет выдавать оптимизированный APK под каждое устройство.
- Офлайн-работа и синхронизация. Это основная фишка, но и головная боль.
- Решение: Чётко продумайте сценарий синхронизации. Как пользователь получит первую полную базу? (Через прямое подключение к серверу 1С по адресу). Как будет обновлять конфигурацию? (Чаще всего — через полную переустановку приложения с увеличенной versionCode). Обеспечьте в приложении понятный интерфейс для настройки адреса сервера и запуска синхронизации.
- Обновление конфигурации. Чтобы выпустить новую версию приложения с обновлённой конфигурацией, нужно пройти весь путь заново: генерация в 1С -> сборка в Android Studio -> загрузка новой сборки в Play Console.
- Разрешения (Permissions). Приложение по умолчанию может запрашивать доступ к файлам/памяти для работы своей БД.
- Решение: В AndroidManifest.xml указаны необходимые разрешения. Будьте готовы в описании в магазине объяснить, зачем они нужны ("для хранения локальной базы данных").
- Поддержка разных экранов. Клиент 1С адаптивен, но ваши формы могут быть не очень удобны на маленьких экранах.
- Решение: Активно используйте мобильный клиент в Конфигураторе при разработке. Оптимизируйте формы, используйте адаптивные макеты.
Есть так же и подводные камни:
Технические моменты:
- Миграция данных при обновлении приложения:
- Проблема: При установке новой версии APK из магазина старые локальные данные пользователя (его база) могут быть утеряны, так как Android рассматривает это как установку нового приложения, а не обновление.
- Решение: В настройках публикации мобильного приложения в 1С есть критически важный параметр — "Идентификатор приложения для магазина" (он же mobileAppId в манифесте). Если он остаётся неизменным при генерации новой версии, Android и клиент 1С распознают это как обновление и сохраняют каталог данных. Никогда не меняйте этот идентификатор без крайней необходимости.
- Работа с файлами и разрешениями на Android 10+ (Scoped Storage):
- Проблема: На новых версиях Android приложение по умолчанию работает в "песочнице". Если вашему приложению нужно экспортировать отчёт в общую папку Downloads или импортировать файл оттуда — могут возникнуть сложности.
- Решение: Используйте действия для выбора файлов через системный проводник (ACTION_OPEN_DOCUMENT, ACTION_CREATE_DOCUMENT). В 1С для этого есть встроенные методы ОткрытьФайл() и СохранитьФайл(). Не пытайтесь писать файлы напрямую по путям типа /storage/emulated/0/Download/.
- Push-уведомления:
- Проблема: Нативные пуш-уведомления в автономном мобильном клиенте 1С не работают из коробки.
- Решение: Реализовать их можно только через собственный сервис. Алгоритм:
- Регистрируете приложение в Firebase Cloud Messaging (FCM).
- Модифицируете Android-проект: добавляете службу для получения токена и пушей.
- При первом запуске отправляете токен устройства на ваш сервер 1С (при синхронизации).
- При возникновении события на сервере 1С ваш серверный код отправляет запрос на FCM API, который доставляет уведомление на устройство.
- Это сложная и отдельная задача на стыке 1С, Android и бэкенд-разработки.
Процессные и организационные нюансы
- Сертификация в Google Play (особенно для финансовых приложений):
- Если ваше приложение связано с финансами, платежами или персональными данными, будьте готовы к более тщательной проверке.
- Google может запросить видео с демонстрацией работы приложения, подтверждение легальности бизнеса, детализацию запрашиваемых разрешений. Пример XML кода с перечнем представлен ниже.
- Политика конфиденциальности должна быть не "для галочки", а реальным документом, описывающим, какие данные (в том числе метаданные 1С) хранятся и как обрабатываются. Её нужно разместить на доступном публично URL.
- Распространение внутри организации (как альтернатива публичному магазину):
- Закрытый канал (Closed Track): Можно опубликовать приложение в Google Play, но сделать его доступным только по ссылке или для определённой группы тестеров (до 100 человек). Удобно для пилотных групп.
- Корпоративный магазин (Managed Google Play): Для организаций с Google Workspace. Администратор может назначать приложения конкретным пользователям или группам. Идеально для внутренних корпоративных решений.
- Сайдинг (Sideloading): Просто раздавать APK-файл сотрудникам. Минусы: постоянные предупреждения системы безопасности, сложность обновлений, невозможность для Android 14+ установить приложения с низким targetSdkVersion.
- Версионирование:
- Согласуйте схему версий между 1С (ВерсияКонфигурации), Android (versionName) и цифровым кодом (versionCode). Например:
- versionName: 1.2.5.12 (где 1.2 — версия конфигурации, .5 — номер мобильной сборки, .12 — versionCode для Play Market).
- versionCode: просто инкрементируется на +1 с каждой загрузкой в консоль. Можно привязать к дате (например, 24101501 для 2024-10-15 сборка №1).

- Тонкая настройка содержимого пакета:
- В мастере публикации можно очень детально настраивать, что именно войдёт в приложение:
- Выбирать конкретные роли и права.
- Включать/отключать отдельные подсистемы.
- Задавать начальные данные для заполнения (предзаполненные справочники "Контрагенты", "Номенклатура" и т.д.). Это мощный инструмент для создания специализированных легковесных приложений (например, "Торговый представитель" только с его маршрутом и товарами).
- Смешанный режим работы (офлайн + онлайн):
- Стандартный сценарий — полная автономность. Но можно реализовать логику, когда часть данных (справочники) — локально, а оперативные документы (заказы, оплаты) создаются и сразу отправляются на сервер, если есть связь. Это требует аккуратной настройки механизма синхронизации (планового и принудительного) и обработки конфликтов.
После публикации
- Мониторинг и обратная связь:
- В Play Console есть разделы "Аналитика" и "Отзывы". Обязательно настройте получение уведомлений о критических ошибках (ANR — Application Not Responding, падениях — Crashlytics).
- Падения (Crashes) будут отображаться в виде стектрейсов Java (Android), а не стектрейсов 1С. Их сложно добавить без опыта. Внедрение систем типа Firebase Crashlytics в Android-проект сильно упростит диагностику.
- На отзывы пользователей нужно отвечать (особенно на негативные с техническими проблемами). Это сигнал для Google, что разработчик активен.
- Стоимость и лицензирование:
- Регистрация разработчика в Google Play — единоразовый взнос $25.
- Не забудьте про лицензии 1С! Мобильный клиент требует соответствующих лицензий (платформа 1С, конфигурация). Публикация приложения в магазине не отменяет необходимости легализации ПО 1С.
Итоговая последовательность действий:
- Разработка и отладка конфигурации с упором на мобильный клиент.
- Генерация автономного мобильного приложения в Конфигураторе 1С.
- Настройка, подписание и сборка AAB-файла в Android Studio.
- Подготовка всех графических и текстовых материалов для магазина (иконки, скриншоты, описания, политика конфиденциальности).
- Создание приложения и заполнение страницы в Google Play Console.
- Загрузка AAB в канал внутреннего тестирования.
- Тестирование установки и работы через магазин.
- Постепенное открытие (внутр. тест -> закрытый тест -> открытый тест -> продакшн).
- Публикация в производство (production).
Схожим образом реализован механизм публикации приложений и в RuStore
RuStore поддерживает загрузку приложений в форматах APK и ААВ.
Требования к загрузке файла APK:
- При загрузке первой версии убедитесь, что:
- размер файла не превышает 5 Гб;
- файл подписан цифровым сертификатом;
- имя пакета уникально;
- сборка проверена и настроена.
- При загрузке второй и последующих версий проверьте, что:
- размер файла не превышает 5 Гб;
- файл подписан цифровым сертификатом;
- подпись соответствует предыдущей;
- пакет соответствует предыдущему;
- сборка проверена и настроена;
- номер новой версии приложения больше предыдущего.
- Требования к загрузке файла ААВ
- подписи приложения должны быть добавлены отдельно перед загрузкой .aab файла.
- размер файла приложения не должен превышать 5 Гб;
- имя пакета должно быть уникально;
- сборка должна быть проверена и настроена.
Этот путь требует комбинирования экспертизы в 1С и Android-разработке. Зачастую над такой задачей работают два специалиста или один fullstack-разработчик, владеющий обеими областями. Удачи в публикации