Разработка под мобильную платформу 1С:Предприятие имеет множество нюансов, связанных как с поведением интерфейса на различных версиях Android, так и со спецификой сборки мобильного приложения (APK). В этой статье мы подробно разберем ситуацию, когда при нажатии на строку в списке документов ничего не происходит, а также проанализируем типичные ошибки компиляции, возникающие при использовании современных Android SDK.
Рассмотрим ситуацию: у нас есть корректно работающее мобильное приложение, которое было пересобрано на более новой версии платформы (например, переход с 8.3.10 на 8.3.14 или 8.3.18). После обновления пользователи замечают, что при открытии списка документов и попытке выбора конкретного объекта форма документа не открывается, хотя строка выделяется цветом. Проанализируем, почему это происходит.
В мобильной платформе 1С логика открытия формы из динамического списка тесно завязана на состав командной панели. Выясним основную причину: действие "Выбор" (одинарный или двойной тап по строке) по умолчанию сопоставлено со стандартной командой Изменить. Если в свойствах формы списка эта команда не включена в состав отображаемых команд или явно удалена, платформа "теряет" обработчик по умолчанию для открытия формы.
Для решения этой проблемы выполним следующие шаги:
Список (динамический список) проверим значение свойства ИспользованиеТекущейСтроки. Обычно оно установлено в Авто.Изменить (или ИзменитьОбъект) присутствует в составе команд.Изменить в состав видимых кнопок, механизм открытия формы по клику начинает работать автоматически. Это особенность мобильного клиента и мобильного приложения: 1С интерпретирует "открытие для просмотра/редактирования" именно через вызов этой команды.Если нам не нужно отображать кнопку "Изменить" на экране, но мы хотим сохранить функционал открытия, можно попробовать программно назначить действие в обработчике Выбор:
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура("Ключ", ВыбраннаяСтрока);
ОткрытьФорму("Документ.НазваниеВашегоДокумента.ФормаОбъекта", ПараметрыФормы, Элемент);
КонецПроцедуры
При попытке собрать обновленное приложение мы часто сталкиваемся с ошибками в логе сборщика, связанными с невозможностью скачать зависимости. Например, сообщения вида Could not resolve com.google.android.gms:play-services-iid или Connect to dl.google.com:443 failed: Connection timed out.
Проанализируем ситуацию: современный процесс сборки мобильного приложения 1С использует инструмент Gradle, который во время компиляции обращается к внешним репозиториям (Google Maven, JCenter) для загрузки необходимых библиотек (Firebase, сервисы Google Play и т.д.). В условиях сетевых ограничений или блокировок со стороны зарубежных ресурсов эти запросы завершаются ошибкой по таймауту.
Рассмотрим способы обхода этой проблемы:
dl.google.com.C:\Users\ИмяПользователя\.gradle\) нужно создать или отредактировать файл gradle.properties, добавив туда следующие строки:
systemProp.http.proxyHost=ваш_адрес_прокси
systemProp.http.proxyPort=ваш_порт
systemProp.https.proxyHost=ваш_адрес_прокси
systemProp.https.proxyPort=ваш_порт
Также важно помнить, что начиная с версии мобильной платформы 8.3.18.61, компания 1С рекомендует использовать JDK 11 (например, Liberica JDK Full). Использование устаревшей JDK 8 с новыми версиями Android SDK (API 31 и выше) часто приводит к непредсказуемым ошибкам в процессе слияния ресурсов (mergeResources).
Еще одна часто встречающаяся ошибка при сборке на новых платформах звучит так: Используемая версия мобильной платформы не поддерживает использование разрешений в мобильной конфигурации. Это происходит, когда в свойствах корневого узла конфигурации выбраны права, которые появились в экосистеме Android (и, соответственно, в 1С) позже, чем была выпущена используемая вами версия мобильной платформы.
Разберем алгоритм исправления:
Реклама, Биометрия или специфические параметры геолокации в фоновом режиме.Чтобы не тратить время на постоянную сборку APK для проверки каждой мелочи, воспользуемся проверенным методом: запуском мобильного приложения в режиме обычного клиента на десктопе. Большинство проблем с логикой динамических списков воспроизводятся и на ПК.
Проанализируем преимущества этого подхода:
ПриСозданииНаСервере или ОбработкаВыбора и посмотреть, какие параметры передаются в форму.#Если МобильноеПриложениеКлиент для проведения тестов на ПК.В завершение отметим, что стабильная работа мобильного приложения на Android 9+ требует комплексного подхода: актуальной версии JDK, правильно настроенных прав в конфигурации и обязательного наличия стандартных команд управления в формах списков. Рассмотрим эти аспекты как фундамент, на котором строится разработка современных мобильных решений на платформе 1С.