# Push-уведомления

Раздел описывает, какие типы push-уведомлений получают пользователи мобильного приложения, как ими управлять и на каких платформах они работают.

---

## Что должен настроить администратор

Push-уведомления в МП настраиваются в основном на стороне платформы и клиента, а не в админ-панели 1Ф. Большинство параметров администратору 1Ф трогать не нужно. Конкретные точки контроля:

| Что | Где настраивается | Кто отвечает |
|---|---|---|
| Сертификаты APNs / ключи FCM / HMS | На стороне сборки мобильного клиента — добавляются разработчиком при выпуске брендированной версии МП | Команда сопровождения 1Ф / разработчик сборки |
| Регистрация устройства пользователя в системе | Автоматически при первом входе пользователя в МП | МП |
| Удаление токена устройства (отключение push на конкретном устройстве) | В админ-панели, в разделе Настройки МП/Push-токены | Администратор |
| Настройка типов уведомлений (звук, скрытие текста, 20 типов событий) | Пользователь в настройках МП. | Пользователь |
| Включение тредов | На стороне сервера — версия API ≥ v2.263. **Отдельных админских ключей нет** | Администратор сервера |

**Страница настроек push.** Ключи мобильных приложений администратор ведёт на странице `/administration/push-settings` (раздел «МП» → «Настройка PUSH»): просмотр записей, создание и правка, скачивание и замена файла ключа. Для обычной записи TeamID, KeyID и BundleID обязательны, файл ключа нужен при создании, а при правке без нового файла сохраняется прежний ключ. Строка провайдера Huawei используется для секрета: он не отображается и не скачивается, пустое поле оставляет его без изменений. Подробные правила — в администрировании Mobile push. Прежняя форма `push-settings` остаётся рабочей по прямому адресу (`/admin-ds/forms/push-settings/grid`) — на неё больше не ведёт пункт меню. Часть настроек на новую страницу не переносилась: например, приоритеты push для Android остаются только на прежней форме. Адрес кастомной страницы задаётся не в коде, а в настройке формы в дереве администрирования.

Если для колонки сертификата задан blob-режим, табличное представление показывает значок скачивания вместо строки base64; бинарные колонки без этой опции отображаются как раньше — текстом.

> ⚠️ Если push не приходят при правильно настроенной сборке — это, как правило, не вопрос админ-панели 1Ф, а проблема на стороне APNs / FCM / HMS или прав уведомлений в настройках устройства пользователя. Сначала пройдите по чек-листу из раздела «[Диагностика push-уведомлений](#диагностика-push-уведомлений)» ниже.

---

## Платформы доставки

Мобильное приложение доставляет уведомления через разные платформы в зависимости от устройства пользователя:

| Платформа | Для каких устройств |
|---|---|
| **APNs** (Apple Push Notification service) | Устройства iOS (iPhone, iPad) |
| **FCM** (Firebase Cloud Messaging) | Устройства Android |
| **HMS** (Huawei Mobile Services) | Устройства Huawei без Google-сервисов |

Выбор платформы происходит автоматически — пользователю и администратору ничего настраивать не нужно. При первом входе в систему устройство регистрирует свой токен на сервере, и с этого момента уведомления начинают поступать.

---

## Типы уведомлений

### Уведомления о задачах и событиях

Это основной тип уведомлений. Пользователь получает push при появлении новых комментариев, изменении статуса задачи, получении новой задачи в работу и других событиях, связанных с задачами.

### Уведомления о звонках ВКС

При входящем звонке по видеоконференцсвязи (ВКС) пользователь получает push-уведомление с предложением принять или отклонить звонок. Для iOS используется специальный тип уведомлений — VoIP push, который обеспечивает надёжную доставку даже при свёрнутом приложении.

### Уведомления о событиях календаря

Напоминания о предстоящих встречах и событиях из календаря. Время напоминания пользователь может настроить в настройках приложения (за сколько минут до события получить уведомление: индивидуально, никогда, за 0/5/15/30 минут).

### Системные уведомления

Ряд уведомлений служит для технического управления приложением и не отображается пользователю как обычный push. К таким относятся:

- **Обновление настроек** — сервер может передать новую конфигурацию приложения без ведома пользователя.
- **Добавление учётной записи** — автоматическое подключение дополнительного аккаунта.
- **Очистка кэша** — команда на сброс локального кэша приложения.
- **Скрытие учётной записи** — команда скрыть аккаунт без явного выхода пользователя.
- **Принудительное обновление приложения** — уведомление с предложением обновить версию МП.
- **Запрос геолокации** — запрос на разовое получение координат устройства (если функция геолокации включена).

### Уведомления о ссылках

Push может содержать ссылку, при нажатии на которую приложение открывает соответствующий раздел или внешнюю страницу.

### Уведомления по тредам (обсуждениям)

Треды (ветки обсуждений внутри задачи) поддерживаются мобильным приложением начиная с **API v2.263+**. Push-уведомления о новых сообщениях в треде приходят автоматически — отдельных типов уведомлений или каналов для них нет, они доставляются как обычные «уведомления о задачах и событиях».

**Что нужно настраивать администратору**

Отдельных админских ключей включения/отключения тредов, прав доступа или управления видимостью на стороне 1Ф **нет**. Функция управляется только версией API сервера и версией мобильного клиента — никаких записей в `MobileAppSettings`, ролях или правах для тредов делать не нужно.

**Пример: что увидит администратор/пользователь в МП**

- В контекстном меню сообщения в чате задачи появляется пункт **«Создать тред»**.
- Под сообщением, у которого уже есть тред, отображается счётчик **«Обсуждения (N)»** — по нажатию открывается экран со списком тредов задачи.
- В списке тредов задачи доступны действия: **создать**, **переименовать**, **закрыть**, **открыть (активировать)** тред.

Если в МП этих элементов нет — значит у клиента сервер на версии API ниже v2.263 или используется устаревшая версия мобильного клиента; включить функцию через настройки приложения нельзя.

---

## Настройки уведомлений

### Настройки пользователя

Каждый пользователь может самостоятельно настроить для себя:

- **Звук уведомлений** — отдельно для чатов, для вопросов, для ответов.
- **Скрытие текста задачи в push** — раздельно для чатов и не-чатов. При включении вместо текста задачи в уведомлении будет показано только «Новое уведомление».
- **Настройки для 20 типов событий** — для каждого типа события (новый комментарий, изменение статуса, упоминание и т.д.) пользователь выбирает, как он хочет об этом узнавать: через push, через ленту непрочитанных или не уведомляться вовсе.

> В текущих кодовых базах эти пользовательские параметры меняет сам пользователь внутри МП или внутри веб-интерфейса системы 1Форма.

**Детальные push-уведомления по сообщениям** настраиваются в основном блоке типов событий веб-профиля — раздельно для чатов (включая закреплённые задачи) и остальных задач, с режимами «Все», «Только вопросы», «Выкл». Пункты «По чатам» и «Вопросы» из дополнительного блока профиля исключены, чтобы настройки не дублировались.

### Управление устройствами пользователя

> **Платформенное различие**

На **iOS** в настройках аккаунта есть отдельный экран **«Устройства»**, где показан список зарегистрированных устройств. Для каждого токена доступно отключение push-уведомлений.

На **Android** отдельного пользовательского экрана «Устройства» в обычных настройках нет. Техническая работа с токенами и вендорами push выполняется через раздел диагностики: там доступны список локальных/серверных токенов и действия вроде обновления токена.

---

## Диагностика push-уведомлений

Если пользователь жалуется на то, что уведомления не приходят, или приходят с задержкой, полезно проверить следующее:

1. В настройках телефона для приложения разрешена отправка уведомлений.
2. Устройство зарегистрировано в системе — проверяется через экран **«Устройства»** в настройках аккаунта (iOS) или через диагностические экраны push-токенов / вендоров (Android).
3. Приложение не удалялось и не переустанавливалось без повторного входа в систему — при переустановке токен устройства меняется, и его нужно обновить.

Для более детальной диагностики используется раздел «Диагностика МП» — он описан в отдельном разделе документации. А также журнал Отправка push в админ-панели.
