В процессе разработки мобильных приложений на платформе 1С программисты часто сталкиваются с неожиданным поведением специализированного инструмента — Сборщика мобильных приложений. Одной из наиболее раздражающих проблем в версиях 2.0.9.x является настойчивое требование системы указать Имя поставщика для Windows Store, даже если вы планируете собрать пакет только для Android или iOS.
В этой статье мы подробно разберем, почему возникает эта ошибка, как ее обойти «подручными» средствами и как исправить корень проблемы, если у вас есть доступ к конфигурации Сборщика. Также мы проанализируем ситуацию с поиском журналов сборки, которые необходимы для диагностики более глубоких ошибок компиляции.
Рассмотрим ситуацию подробнее. Начиная с версии 2.0.9.49, в Сборщике мобильных приложений была обновлена логика подготовки проектов для экосистемы Microsoft. Однако разработчики допустили небольшую неточность в модуле проверки заполнения реквизитов. Программа инициирует проверку поля Имя поставщика (Publisher Name) безусловно, не проверяя, установлен ли флаг «Собирать для Windows».
В результате, когда вы пытаетесь сохранить настройки мобильного приложения или запустить процесс генерации ключей, система блокирует действие, требуя данные, которые вам по факту не нужны. При этом ввести «любые» данные напрямую часто не удается, так как поле может быть заблокировано или ожидать определенного формата (строка вида CN=...).
Проанализируем самый простой способ обхода этой ошибки, который не требует изменения программного кода Сборщика. Если система «пристала» к вам с требованием заполнить данные для Windows, мы можем временно обмануть логику формы.
Разберем этот процесс по шагам:
Имя поставщика (и, возможно, другие поля, связанные с Windows) станет доступным для редактирования.CN=MyCompany).Этот метод позволяет быстро продолжить работу, не вникая в устройство самого Сборщика.
Если вы часто пользуетесь Сборщиком и вам надоело выполнять вышеописанные манипуляции, мы можем применить более радикальный и правильный подход — исправить ошибку в коде конфигурации Сборщика. Сборщик мобильных приложений сам по себе является конфигурацией 1С, которую можно открыть в режиме Конфигуратора.
Рассмотрим, как это сделать. Нам необходимо найти процедуру, отвечающую за проверку заполнения перед записью. Обычно это модуль формы справочника или обработки, где настраиваются параметры приложения.
Проанализируем пример кода, который нужно внедрить или изменить в модуле формы:
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// Стандартная проверка может выглядеть так:
// Если ПустаяСтрока(ТекущийОбъект.ИмяПоставщикаWindows) Тогда ...
// Нам нужно обернуть её в условие проверки флага платформы
Если ТекущийОбъект.СобиратьДляWindows Тогда
Если ПустаяСтрока(ТекущийОбъект.ИмяПоставщикаWindows) Тогда
Сообщить("Для сборки под Windows необходимо заполнить имя поставщика!");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
После внесения таких правок Имя поставщика будет требоваться только тогда, когда оно действительно необходимо. Не забудьте обновить конфигурацию базы данных после внесения изменений.
Допустим, проблему с Windows Store мы обошли, но процесс сборки всё равно завершился с ошибкой: «Процесс сборки завершился с ошибками. Ошибки в процессе сборки (связанные с инструментами мобильной ОС) можно увидеть в соответствующих журналах сборки». Выясним, где именно искать эти «соответствующие журналы».
Процесс сборки 1С — это сложная цепочка вызовов внешних утилит (JDK, Android SDK, Gradle). Ошибки могут возникать на любом этапе. Посмотрим, где хранятся логи:
C:\Users\ИмяПользователя\AppData\Local\Temp\1C_Mobile_Build\. Там вы найдете папки с именами ваших приложений, а внутри них — файлы с расширением .log.build.log. Это самый важный файл, в котором подробно расписано, на каком этапе «упал» Gradle.Часто ошибки сборки, следующие за проблемой «Имени поставщика», связаны с неправильно настроенной средой. Рассмотрим критические моменты, которые помогут избежать неудач:
Build-Tools версии, соответствующей требованиям текущей платформы 1С. Например, для последних релизов это API level 33 или 34.Подводя итог, можно сказать, что Сборщик мобильных приложений — инструмент мощный, но требующий внимания к деталям. Ошибка с Windows Store является лишь досадным багом интерфейса, который легко обходится либо временным переключением флагов, либо небольшой правкой кода. Главное — всегда анализировать build.log, так как именно там кроются ответы на 99% вопросов, возникающих при сборке мобильных решений на платформе 1С.