Как исправить ошибку "Unknown config type" при сборке мобильного приложения в 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переходе на новые версии платформы 1С:Предприятие (в частности, начиная с релиза 8.3.14) разработчики мобильных решений часто сталкиваются с непредвиденным поведением системы при попытке собрать готовое мобильное приложение. Процесс компиляции в файл формата .apk прерывается критической ошибкой сборщика мобильных приложений: "Unknown config type" (неизвестный тип конфигурации). При этом более старые версии платформы собирали то же самое приложение абсолютно корректно.

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

Выясняем причину проблемы: анализ изменений в платформе 8.3.14

Для того чтобы понять природу возникновения ошибки, рассмотрим подробнее, как именно изменился процесс выгрузки мобильного приложения из конфигуратора 1С:

  1. Отказ от старого формата XML: В версиях платформы до 8.3.13 включительно конфигуратор выгружал мобильное приложение в виде единого текстового файла 1cema.xml. Этот файл напрямую загружался в Сборщик мобильных приложений. Начиная с версии 8.3.14, прямая выгрузка в незаархивированный XML-файл больше не поддерживается.
  2. Переход на ZIP-архивы: Теперь при выгрузке конфигуратор формирует архивный файл с расширением .zip (по умолчанию это 1cema.zip для мобильного приложения или 1cemca.zip для мобильного клиента).
  3. Изменение внутренней структуры файлов: Внутри созданного ZIP-архива теперь содержатся два критически важных компонента:
    • Файл 1cema.xml (или аналогичный), который содержит обновленное описание метаданных.
    • Бинарный файл 1Cv8.1CM. Этот файл содержит скомпилированную базу данных конфигурации. Данное нововведение было сделано разработчиками фирмы «1С» для существенного ускорения первого запуска приложения на мобильном устройстве пользователя.
  4. Новые XML-теги в структуре описания: Помимо изменения формата упаковки, изменился и внутренний формат самого XML-файла. Корневой тег описания мобильной конфигурации теперь имеет значение MobileAppInfo, тогда как в старых версиях использовался тег MobileApp.

Проанализируем ситуацию с технической стороны. Обратимся к коду Сборщика мобильных приложений версий 2.0.8.18 / 2.0.8.19. В модуле импорта конфигурации сборщика прописан жесткий алгоритм разбора входящего XML-файла:


if XMLReader.LocalName = "MobileApp" Then
    CfgProps.configType = Enums.MakeType.Application;
ElsIf XMLReader.LocalName = "MobileClient" Then
    CfgProps.configType = Enums.MakeType.Client;
Else
    Raise "Unknown config type";
EndIf;

Как мы видим из приведенного листинга, старая версия Сборщика мобильных приложений ожидает увидеть на входе строго теги MobileApp или MobileClient. Когда сборщик пытается разобрать новый файл из платформы 8.3.14, он натыкается на тег MobileAppInfo. Не проходя проверку по условиям if и ElsIf, код уходит в ветку Else и вызывает исключение "Unknown config type", полностью блокируя дальнейший процесс сборки пакета.

Таким образом, мы имеем классический конфликт версий: обновленный конфигуратор выгружает данные в новом формате, а старая версия сборщика не умеет корректно интерпретировать новые XML-теги и бинарные файлы внутри ZIP-архива.

Решение 1. Обновление Сборщика мобильных приложений до актуальной версии

Самым правильным, надежным и официально поддерживаемым решением является обновление конфигурации "Сборщик мобильных приложений" до версии, совместимой с новыми релизами платформы.

Разберем этот процесс по шагам:

  1. Выясним, в какой версии сборщика была добавлена поддержка нового формата выгрузки. Полная совместимость с ZIP-архивами и тегом MobileAppInfo реализована в сборщиках версии 2.0.8.39 (которая поставлялась в тестовых релизах мобильной платформы 8.3.13.59) и версиях семейства 2.0.9.х и выше.
  2. Перейдем на портал поддержки пользователей «1С» и скачаем дистрибутив мобильной платформы версии 8.3.14 (или более новой).
  3. Распакуем загруженный архив. Внутри каталога с дистрибутивом найдем папку под названием MobileAppMaker. Именно в ней находится актуальный файл конфигурации сборщика (обычно файл имеет расширение .cf или поставляется в виде готовой базы данных).
  4. Запустим конфигуратор вашей рабочей базы Сборщика мобильных приложений, предварительно создав ее резервную копию.
  5. Выполним обновление конфигурации сборщика через меню "Конфигурация" -> "Поддержка" -> "Обновить конфигурацию" или просто загрузим новую конфигурацию из файла .cf, если в базу не вносились доработки.
  6. Обновим саму мобильную платформу, используемую внутри сборщика для компиляции приложений, на аналогичную версию (8.3.14+).

После успешного обновления Сборщик мобильных приложений начнет корректно считывать ZIP-архивы и распознавать новый тег MobileAppInfo, а процесс генерации APK-файлов завершится без ошибок.

Решение 2. Использование конфигуратора предыдущих версий платформы

Если по каким-то организационным или техническим причинам вы не можете оперативно обновить Сборщик мобильных приложений и сопутствующее окружение (Android SDK, Java JDK), можно временно использовать обходной путь с понижением версии конфигуратора:

  1. Установим на рабочий компьютер разработчика платформу «1С:Предприятие» версии 8.3.13 (например, последний стабильный релиз этой ветки).
  2. Откроем разрабатываемую мобильную конфигурацию через конфигуратор платформы версии 8.3.13.
  3. Выполним выгрузку мобильного приложения стандартным способом. На этой версии платформы конфигуратор сформирует классический файл 1cema.xml в старом формате.
  4. Загрузим полученный файл 1cema.xml в ваш текущий Сборщик мобильных приложений версии 2.0.8.18 / 2.0.8.19. Сборка пройдет в штатном режиме без ошибок совместимости типов.

Важное примечание: данный способ является временной полумерой. Использование старых версий мобильной платформы может приводить к сбоям при работе приложения на современных версиях операционной системы Android (например, Android 9.0 и выше), где накладываются повышенные требования к безопасности, разрешениям и используемым системным библиотекам.

Решение 3. Переход на современный облачный Сервис сборки мобильных приложений

Если процесс развертывания локального Сборщика мобильных приложений, постоянная поддержка актуальности Java SDK, Android SDK, утилит сборки Gradle или Ant кажутся вам излишне сложными и трудоемкими, рассмотрим альтернативный современный подход.

Начиная с версий платформы 1С:Предприятие 8.3.20, фирма «1С» предоставила разработчикам удобную альтернативу — облачный Сервис сборки мобильных приложений. Этот инструмент интегрирован непосредственно в платформу и позволяет полностью отказаться от развертывания локальной базы сборщика.

Проанализируем преимущества использования облачного сервиса сборки:

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

← На главную