Как реализовать push-уведомления и фоновую геолокацию в мобильном приложении 1С

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

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

Реализация push-уведомлений в 1С

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

Рассмотрим механизм работы подробнее. На стороне 1С основным объектом для работы является ДоставляемоеУведомление. Процесс отправки выглядит следующим образом:

  1. Серверная база формирует объект уведомления с заголовком и текстом.
  2. Через API уведомление передается в Google Firebase Cloud Messaging (FCM) для Android или Apple Push Notification service (APNs) для iOS.
  3. Сервис доставки пересылает сообщение на конкретное устройство по его уникальному токену.

Важно понимать различие между типами уведомлений. Разберем их:

Проанализируем пример кода для инициализации уведомлений на мобильном устройстве:


// Пример получения токена устройства для отправки Push
Процедура ПриЗавершенииРегистрацииУведомлений(Токен, ДополнительныеПараметры) Экспорт
    Если ЗначениеЗаполнено(Токен) Тогда
        // Передаем токен на сервер для сохранения в справочнике мобильных устройств
        ЗаписатьТокенНаСервере(Токен);
    КонецЕсли;
КонецПроцедуры

Обратите внимание на ограничения 2024 года: Начиная с Android 13, система требует от пользователя явного разрешения на получение уведомлений (Runtime Permission). Если вы не запросите это право программно или через настройки платформы, уведомления не будут отображаться.

Геолокация в фоновом режиме и при заблокированном экране

Вопрос получения координат при закрытом приложении является одним из самых сложных. Современные ОС (Android и iOS) жестко ограничивают работу приложений в фоне для экономии заряда батареи. Рассмотрим основные способы решения этой задачи, доступные в 1С.

Многие разработчики ошибочно полагают, что получение координат в фоне невозможно. Однако мы можем использовать механизм Геозон (Geofencing). Вместо того чтобы постоянно опрашивать GPS-датчик и разряжать телефон, мы задаем области на карте, за которыми должна следить сама операционная система.

Проанализируем алгоритм работы с геозонами:

  1. Программа задает координаты центра и радиус зоны.
  2. Приложение регистрирует эту зону в системе через методы платформы 1С.
  3. Когда пользователь пересекает границу зоны (входит или выходит), ОС автоматически «будит» приложение 1С и передает ему событие.
  4. В этот момент приложение может выполнить код (например, отправить статус на сервер «Курьер прибыл на точку»).

Для непрерывного отслеживания (трекинга) в 1С используется метод НачатьПолучениеКоординат. Посмотрим, как настроить его работу в фоновом режиме:


// Настройка фонового получения координат
ПараметрыОпроса = Новый ПараметрыОпросаГеопозиции;
ПараметрыОпроса.ОбновлениеПриИзменении = Истина;
ПараметрыОпроса.МинимальноеРасстояние = 10; // в метрах

НачатьПолучениеКоординат(СпособОпределенияГеопозиции.GPS, ПараметрыОпроса);

Чтобы это работало при заблокированном экране, необходимо соблюдение нескольких условий:

Выбор архитектуры: Мобильная платформа или Мобильный клиент

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

1. Мобильная платформа (автономное приложение): Имеет собственную базу данных (SQLite). Идеально подходит для работы без интернета. Все Push-уведомления и фоновые задачи программируются внутри мобильной конфигурации.

2. Мобильный клиент: По сути, это браузер для вашей основной базы. Он работает только при наличии связи. Реализация фоновых задач здесь сложнее, так как клиент сильно зависит от активной сессии с сервером.

3. Мобильный клиент с автономным режимом: Гибридное решение. Оно позволяет использовать интерфейс мобильного клиента, но при потере связи переключаться на локальные данные. Это наиболее современный подход для корпоративных систем.

Полезные интеграции и ресурсы

Помимо уведомлений и карт, современные мобильные приложения 1С могут взаимодействовать с «железом» устройства. Разберем, что еще можно использовать для повышения качества вашего продукта:

Для углубления знаний рекомендуем регулярно изучать материалы на специализированных ресурсах. Хотя Инфостарт остается крупнейшей базой знаний, за оперативной информацией о новых требованиях магазинов приложений (App Store и Google Play) лучше обращаться в тематические Telegram-каналы сообщества 1С-разработчиков и официальный Центр разработки (Developer Hub) фирмы 1С. Там публикуются свежие кейсы по оптимизации интерфейсов и обходу системных ограничений новых версий мобильных ОС.

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

← На главную