При разработке мобильных приложений на платформе 1С перед разработчиками часто возникает задача регулярного выполнения процедур в фоновом режиме, когда приложение усыплено или заблокирован экран устройства. Распространенный сценарий — непрерывный гео-мониторинг местоположения курьеров или водителей с отправкой координат на центральный сервер.
Рассмотрим подробнее, почему привычные механизмы платформы 1С не работают в мобильной среде в привычном виде, с какими системными ограничениями iOS и Android приходится сталкиваться и какие существуют способы решения этой задачи.
В стационарной платформе 1С для периодических вычислений традиционно используются регламентные задания. В мобильном приложении архитектура исполнения кода при неактивном интерфейсе имеет ряд существенных особенностей:
ФоновыеЗадания.Выполнить предназначены только для распараллеливания задач и выполнения тяжелых операций без блокировки интерфейса, пока само приложение открыто и активно.ПодключитьОбработчикОжидания перестает срабатывать сразу после сворачивания приложения или блокировки экрана. Операционная система приостанавливает выполнение циклов и таймеров приложения для экономии заряда аккумулятора.Для задач трекинга в платформе предусмотрен специализированный объект СредстваГеопозиционирования. Разберем пример подключения обработчика изменения координат:
// Подключение отслеживания изменения координат
СредстваГеопозиционирования.ПодключитьОбработчикИзмененияМестоположения(
"ОбработчикИзмененияКоординат",
60, // Интервал опроса в секундах
10 // Минимальное смещение в метрах
);
Работа данного механизма в фоновом режиме зависит от версии платформы и настроек операционной системы:
Background Modes (в частности, Location updates). Однако следует учитывать, что в некоторых версиях платформы (например, 8.3.9) фоновое геопозиционирование для iOS отключалось из-за обновленных правил политики безопасности компании Apple.Если штатных возможностей мобильной платформы недостаточно или требуется гарантированное выполнение задач по расписанию при закрытом приложении, проанализируем следующие архитектурные подходы:
Таким образом, для реализации фоновых задач в мобильной 1С рекомендуется использовать актуальные версии платформы с корректно настроенными разрешениями ОС либо выносить фоновые службы в нативные компоненты и сторонние сервисы.