# Уведомления

Система уведомлений 1Формы обеспечивает многоканальное информирование пользователей о событиях: через индикатор непрочитанных сообщений ("конверт"), ленту комментариев, уведомления рабочего стола, почтовые рассылки и мобильные push-уведомления. Уведомления конфигурируются на трех уровнях: глобальные настройки по умолчанию (для новых пользователей), персональные настройки пользователя и настройки на уровне категории. Предусмотрен отдельный механизм контроля просроченных задач с автоматической рассылкой отчетов.

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

Система поддерживает 19 типов событий, по каждому из которых можно независимо включить/отключить уведомление ("в конверт") и отображение в ленте комментариев. Каждый тип управляется двумя флагами: попадание "в конверт" (увеличивает счетчик непрочитанных) и отображение в ленте комментариев. Если для пользователя настройки отсутствуют — все галочки уведомлений считаются снятыми.

### Типы уведомлений — маршрут, подписи и комментарии

В эту группу входят события, связанные с движением задачи по маршруту, запросами подписей и обменом комментариями между участниками.

| CommentTypeID | Тип уведомления | Описание | Кому отправляются | Примеры |
|---|---|---|---|---|
| 1 | Движения по маршруту БП | Смена статуса задачи, выполнение перехода | Подписчикам | «Статус изменён на Выполняется. Задача ожидала перехода 22 часа 17 минут» |
| 2 | Подписи | Запрос, акцепт, отклонение, делегирование, отзыв подписи, изменение списка акцептантов и параметров подписи | Акцептантам (в т.ч. прежним и новым); сотруднику, запросившему подпись | «Запрошена подпись (Менеджер) для перехода в статус Выполняется»; «Акцепт получен (Подпись заказчика). Время реакции: 2 минуты»; «Изменил причину запроса подписи» |
| 3 | Комментарии | Отправка или редактирование комментария | Адресатам сообщения | «Смирнов Иван → Иванов Николай: Смотри сюда» |
| 5 | Служебные | Установка или срабатывание повторений и напоминаний. Служебные сообщения о действиях пользователя не отображаются для его заместителей | Всем подписчикам задачи | «Срок 20.12.2024 19:00» |
| 6 | Подзадачи и связи | Создание или удаление связей между задачами, назначение родительской/подчинённой задачи, изменение статуса связанной задачи | Заказчику, исполнителям | «Добавлена связь с (Продажи/Необходимо следующ...)»; «В родительской задаче сменили статус на Завершена»; «В категорию Продажи ошибки поставлена подзадача Подготовить КП» |

### Типы уведомлений — параметры, задачи и файлы

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

| CommentTypeID | Тип уведомления | Описание | Кому отправляются | Примеры |
|---|---|---|---|---|
| 7 | Параметры | Изменение значения ДП (требует включенной опции "Сохранять историю изменений ДП") | Заказчику, исполнителям | «Изменён параметр "Проверено" на "да"» |
| 8 | Создание задачи | Создание новой задачи (в том числе подчинённой или связанной), копирование задачи | Пользователям, перечисленным в поле «Уведомить» | «Поступила новая задача» |
| 9 | Изменение текста задачи | Редактирование текста задачи | Заказчику, исполнителям | «Текст задачи изменён» |
| 10 | Вложение файла | Вложение файла в задачу «через скрепку» | Подписчикам | «Вложен файл Редактирование документов.docx» |
| 11 | Перенос задачи | Перенос задачи в другую категорию | Заказчику, исполнителям | «Перенесено из категории "Продажи" в категорию "Проекты". Уведомлены: Смирнов Иван» |
| 12 | Перенос сроков | Установка или перенос срока в задаче, простановка даты начала работы | Заказчику, исполнителям | «Перенос срока на 7 дней 19 часов. Причина: по факту»; «Установлена дата начала работы 29.01.2019 16:10» |
| 13 | Назначение исполнителя | Назначение/удаление исполнителя, смена ответственного | Заказчику, исполнителям | «Иванов Николай больше не является исполнителем»; «Добавлен исполнитель: Иванов Николай»; «Новый ответственный исполнитель Смирнов Иван (предыдущий: Сидоров Сергей)» |
| 23 | Назначение меня исполнителем (TASKPERFORMERADDEDME) | Назначение/удаление текущего пользователя из исполнителей или как ответственного исполнителя | Исполнителю (текущему пользователю) | — |
| 15 | Получать уведомление о подписчиках (SUBSCRIBERS) | Добавление или удаление подписчика | Сотрудникам, которых добавляют или удаляют из числа подписчиков задачи | «Добавлен подписчик: Смирнов Иван» |

### Типы уведомлений — сроки, заказчик и календарь

Группа включает события контроля сроков, смены заказчика, операций с файлами, трудозатрат и синхронизации с календарными встречами.

| CommentTypeID | Тип уведомления | Описание | Кому отправляются | Примеры |
|---|---|---|---|---|
| 16 | Превышение срока | Превышение срока задачи. Генерируется заданием по таймеру в 17:00 только в категориях, где режим включён администратором | Заказчику | «17:00 → Иванов Николай: Задача. Срок превышен на 22 дня 7 часов» |
| 18 | Смена заказчика задачи (OWNERCHANGED) | Смена заказчика задачи | Прежнему и новому заказчикам | «Изменён заказчик (Смирнов Иван → Иванов Николай)» |
| 19 | Другие действия с файлами | Вложение файла через сообщение, замена файла, редактирование файла в WebApps, удаление файла | Подписчикам | «Файл отредактирован через Web Apps»; «Заменён файл Полезные ссылки.docx» |
| 20 | Трудозатраты | Внесение или изменение плановых либо фактических трудозатрат | Заказчику | «Иванов Николай внёс 1 час трудозатрат за 29.02.2016»; «Индивидуальные планы пересчитаны»; «Изменены плановые трудозатраты» |
| 21 | Календарные события (CALENDAREVENTCHANGE) | Приглашение на встречу, изменение параметров встречи, создание встречи при наличии связи с задачей (push при изменении участников/статуса не отправляются). За уведомление пользователей в поле «Уведомить» отвечает галочка «Создание задачи» | Участникам встречи | «Внимание! Параметры встречи изменились»; «Вы приглашены на встречу. Пожалуйста, рассмотрите возможность участия» |

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

На вкладке "Уведомления" категории настраиваются автоматические действия для конкретных пользователей и групп при событиях с задачами:

| Действие | Описание |
|---|---|
| Добавить в исполнители | Пользователь автоматически добавляется в исполнители при создании задачи. Требуется право "Исполнять" |
| Назначить ответственным | Пользователь добавляется в исполнители и назначается ответственным при создании задачи |
| Автоматически подписать | Пользователь добавляется в подписчики при создании задачи |
| Новая задача в категории | Уведомление о создании новой задачи |
| Смена срока | Уведомление об изменении срока выполнения задачи |
| Отклонение задачи | Уведомление об отклонении задачи |

Адресатами могут быть конкретные пользователи, группы или значения из ДП "Выпадающий список" (если ДП содержит ID пользователя).

**Приоритет выполнения**: смарт-пакеты категории выполняются раньше настроек вкладки "Уведомления". Поэтому настройки вкладки «Уведомления» имеют более высокий приоритет и могут перезаписать результаты смарт-действий (последний пишет — выигрывает). Например, если смарт-действие назначает ответственного A, а настройки уведомлений — ответственного B, в итоге будет назначен B.

### Контроль просроченных задач

Два задания по таймеру (по умолчанию ежедневно в 17:00):

- Генерация комментариев в просроченных задачах
- Рассылка почтовых отчётов о просроченных задачах

Условия: в настройках категории включена опция напоминания о приближении срока, и в общих настройках разрешена работа с почтой.

Два параметра категории совместно управляют включением:

- **Исключить из отчета о просроченных сроках** (страница "Основные настройки") — исключает категорию
- **В отчет включать задачи со статусами** (вкладка "Уведомления") — определяет, в каких статусах задачи попадают в отчет. Этот параметр имеет более высокий приоритет: если указаны статусы, уведомления генерируются даже при включенном исключении

### Отключение email-уведомлений на уровне категории

Настройка **«Не посылать почтовые сообщения»** (Дополнительные настройки → Почта → Почтовые сообщения) полностью отключает email-рассылку для задач/чатов конкретной категории. При этом сообщения продолжают приходить в ленту и помечаться как непрочитанные, push-уведомления продолжают работать.

Практическое применение: для категории групповых чатов эта настройка решает проблему email-спама из групповых чатов, сохраняя push и ленту. Это важно для сценариев миграции из внешних мессенджеров (Telegram, WhatsApp).

**Связь с per-chat mute:** кнопка «Выключить уведомления» в чате (`ChatNotificationMode`) влияет только на push/непрочитанность и **не влияет на email**. Для управления email из чатов нужна именно эта настройка категории.

Выбор режима уведомлений в чате (`ChatNotificationMode` — «Все уведомления», «Без звука», «Только личные», «Отключить всё») влияет только на push и непрочитанность и **не влияет на email**. Кнопка с колокольчиком в шапке чата и в карточке задачи открывает этот список режимов.

### Почтовые уведомления внешним контрагентам

В настройках категории администратор может указать отдельный почтовый ящик и имя отправителя для внешних пользователей (тех, у кого в профиле не отмечен признак «Сотрудник компании»). Это позволяет, например, отправлять уведомления внешним клиентам от адреса `support@company.ru`, а внутренним сотрудникам — от адреса платформы. Уведомление уходит внешнему получателю независимо от того, заходил ли он в систему хотя бы раз.

### Отписка от задачи по ссылке из почтового уведомления

В письмах о задачах есть ссылка «Отписаться» — она ведёт на legacy-страницу `/EmailUnsubscribe.aspx?TaskID={id}`, которая редиректит на карточку задачи в SPA с query-параметром `?action=unsubscribe` (распознаётся без учёта регистра). При открытии задачи фронт показывает диалог «Отписаться от задачи?». Если пользователь уже не подписан — вместо диалога выводится «Вы не подписаны на эту задачу». При подтверждении выполняется такое же снятие подписки, как через кнопку «Отписаться» в шапке задачи (единый метод `performUnsubscribeFromTask`); после успеха кнопка в шапке переключается на «Подписаться». После любого исхода (подтвердил, отменил, закрыл) параметр `action` удаляется из URL, чтобы перезагрузка страницы не запускала диалог повторно. Если отписка запрещена ролью пользователя в задаче или групповой подпиской, диалог показывает ту же причину отказа, что и кнопка «Отписаться» в карточке задачи.

## Пользовательские настройки

### Персональные, глобальные настройки и отчёты о просрочке

Каждый пользователь может настроить типы уведомлений на вкладке "Уведомления" в профиле (как в пользовательском, так и в административном интерфейсе). Для каждого типа события — два столбца: уведомлять "в конверт" и показывать в ленте.

Изменённые настройки записываются кнопкой «Сохранить» внизу вкладки. Если изменения не сохранены, переключение на другую вкладку и уход со страницы открывают окно с выбором: сохранить и уйти, уйти без сохранения или остаться. Переход по кнопке сохранения выполняется только после успешной записи — при ошибке пользователь остаётся на вкладке с введёнными значениями. Подробнее об этом окне — в [users-and-groups/business.md](https://help.1forma.ru/domains/users-and-groups/business.md).

![Вкладка «Уведомления» в профиле пользователя](https://help.1forma.ru/help-images/notifications/user_notification-1.png)

Если для пользователя настроены уведомления по конкретным категориям, они отображаются в блоке "По категориям" с соответствующими иконками.

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

- **Получать файлы в письмах вложениями, а не ссылками** — файлы из ДП отправляются вложениями при уведомлении о новой задаче и изменении ДП. Администратор может ограничить максимальный размер
- **Не получать уведомления о просроченных задачах и подписях** — отключает ежедневные отчеты
- **Не присылать почтовые сообщения** — отключает дублирование уведомлений на почту. Режимы: "Когда я в онлайне" (почта только офлайн), "В рабочее время" (почта только в рабочие часы), "Когда я отсутствую" (почта не приходит при нерабочем отсутствии)
- **Не получать SMS** — отключает SMS-уведомления
- **Автопрочтение при просмотре задачи** — автоматическая отметка "прочитано" при открытии карточки (вручную отмеченные как непрочитанные сохраняют статус)
- **Уведомления рабочего стола** — работают только по HTTPS
- **Звуки** — звуковые оповещения и голосовые сообщения о непрочитанных при входе в систему

Пользователь получает отчет о просроченных задачах, если: **не** активна настройка "Не присылать почтовые сообщения" и он состоит в группе со спецправом "Получать отчет о просроченных задачах". Отчеты не отправляются уволенным пользователям, пользователям с настройкой "Не получать уведомления о просроченных задачах" и пользователям с нерабочим отсутствием (при соответствующей настройке).

**Особенности строк сообщений.** Вместо единой строки «Сообщения» в таблице две строки:

- **«Сообщения в чатах»** — переписка в личных и групповых чатах, а также в задачах, закреплённых пользователем в чатах.
- **«Сообщения в задачах»** — переписка во всех остальных задачах.

Для обеих строк действуют особые правила:

- в колонке **«Видно в ленте»** чекбокса нет: отображение зафиксировано некликабельной галочкой — сообщения всегда присутствуют в ленте, снять это нельзя;
- в колонке **«Уведомлять»** вместо чекбокса выпадающий список режимов push-уведомлений: **«Все»** — приходят уведомления обо всех сообщениях области; **«Только вопросы»** — только если сообщение помечено вопросом и вы указаны адресатом; **«Выкл»** — push для этой области не отправляются;
- если снята галочка в колонке **«Непрочитанные»**, выбор в списке «Уведомлять» автоматически сбрасывается в **«Выкл»**, и список становится только для чтения — вернуть режим можно, включив «Непрочитанные» обратно.

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

### Формат push-уведомлений

Содержимое push формируется по правилам:

- **Title**: для личных чатов — имя собеседника; для групп/задач — текст задачи (до 500 символов)
- **Subtitle**: для чатов — пусто; для задач — маршрут комментария (от кого к кому)
- **Body**: текст комментария; если текст пуст (есть вложения) — "изображение", "видео", "голосовое сообщение" или имя файла; при нескольких файлах — "вложены файлы"
- **Даты в тексте**: даты из текста системного комментария (например, срок) приводятся к часовому поясу профиля получателя
- **Стикер**: у комментария, отправленного стикером, текста нет — вместо него в push, в теме и тексте письма и в СМС выводится «[Стикер]»; изображение стикера в уведомление не вкладывается; та же пометка подставляется в тему и цитату письма, когда на такой комментарий отвечают или пересылают его
- При включенной опции скрытия текста в push (задается в персональных настройках) title и subtitle пусты, body заменяется на "Новое сообщение"

Push-формат различается для iOS (с группировкой по задаче/чату) и Android (плоская структура).

### Диагностика push и журнал отправок

Если пользователь не получает push:
1. Проверить настройки типов уведомлений в профиле (столбец "Уведомлять")
2. Проверить параметр "Получать пуш-уведомление" (должно быть "Всегда")
3. Проверить разрешения на устройстве
4. Проверить актуальность сертификатов push-уведомлений
5. Проверить наличие push-токенов в отчете "Статистика использования мобильных приложений" (вкладка Push-токены). При отсутствии — переавторизоваться или переустановить приложение

Push о вопросе или ответе, адресованном пользователю, приходит, если в соответствующей области — в чатах или в задачах — у него включены push вопросов или push обычных сообщений. Чатом здесь считается задача, закреплённая у пользователя в чатах. Полное заглушение задачи или чата отключает и эти push.

Системный журнал push содержит информацию обо всех отправленных push-уведомлениях в мобильное приложение. Поддерживает фильтрацию, сортировку и экспорт в CSV/Excel.

### Включение уведомлений рабочего стола

Чтобы получать уведомления рабочего стола, нужно одновременно разрешить их в браузере и в операционной системе.

**В браузере (на примере Google Chrome):**

1. Открыть «Первую Форму» в браузере и нажать на значок «Сведения о сайте» в адресной строке.
2. Перейти в «Настройки сайта».
3. Найти пункт «Уведомления» и активировать переключатель.
4. При необходимости перейти с этой страницы в «Дополнительные настройки и разрешения» и настроить нужные разрешения.

<img src="https://help.1forma.ru/help-images/notifications/notification_chrome-3.png" alt="Пункт «Уведомления» в настройках сайта Chrome" width="400">

Для тонкой настройки разрешений откройте «Дополнительные настройки и разрешения».

<img src="https://help.1forma.ru/help-images/notifications/notification_chrome-4.png" alt="Дополнительные настройки разрешений в Chrome" width="400">

**В операционной системе (на примере Windows 10):**

1. Открыть настройки Windows → раздел «Система» → «Уведомления и действия».
2. Убедиться, что общесистемные уведомления включены.
3. В списке приложений найти браузер и активировать переключатель уведомлений. Нажав на строку с браузером, можно дополнительно настроить параметры его уведомлений.
4. Если браузер отсутствует в списке — сначала получить любое уведомление от сайта, после чего браузер появится в списке. Также проверить, что не активирован режим «Не беспокоить», блокирующий все уведомления.

![Разрешение уведомлений для браузера в настройках Windows 10](https://help.1forma.ru/help-images/notifications/notification_win10-2.png)

Уведомления рабочего стола работают **только по HTTPS**. При прочтении сообщения соответствующее уведомление автоматически скрывается.

![Уведомление рабочего стола от 1Формы в браузере Chrome](https://help.1forma.ru/help-images/notifications/desktop_notification.jpg)

#### Уведомления в десктопном приложении

В десктопном приложении уведомления о новых сообщениях — в чатах и в комментариях к задачам — оформляются по правилам системы, а не по общему оформлению браузера:

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

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

### Логика отправки сообщений и непрочитанности

Получение уведомления (push, рабочего стола, email) и установка непрочитанности зависят от четырёх факторов:

1. Где отправлено сообщение: задача / групповой чат / личный чат.
2. Кому адресовано: вам / другому / всем / никому (без адресата).
3. Включена ли в настройках уведомлений колонка «Уведомлять» для типа «Сообщения».
4. Включены ли уведомления в конкретной задаче/чате (кнопка в тулбаре).

> «Тихие» комментарии (отправленные смарт-автоматизацией без адресатов) не имеют адресатов, не увеличивают счётчик непрочитанных и не отправляют push независимо от настроек.

![Сообщение без адресата («Никому») и сообщение всем](https://help.1forma.ru/help-images/notifications/tickers_and_notifications-04.png)

**Задачи и групповые чаты:**

| Уведомления задачи/чата | «Уведомлять» для «Сообщений» | Адресат | Уведомление | Непрочитано |
|---|---|---|---|---|
| Включено | Включено | Вам / Другому / Всем / Никому | Да | Да |
| Отключено | Включено | Вам | Да | Да |
| Отключено | Включено | Другому | Нет | Нет |
| Отключено | Включено | Всем | Да | Да |
| Отключено | Включено | Никому | Нет | Да |
| Включено | Отключено | Вам | Да | Да |
| Включено | Отключено | Другому | Нет | Нет |
| Включено | Отключено | Всем / Никому | Да | Да |
| Отключено | Отключено | Вам | Нет | Да |
| Отключено | Отключено | Другому | Нет | Нет |
| Отключено | Отключено | Всем / Никому | Нет | Да |

Непрочитанные сообщения выделяются жирным; при прочтении выделение снимается.

![Непрочитанное (жирный) и прочитанное сообщение с индикаторами](https://help.1forma.ru/help-images/notifications/tickers_and_notifications-03.png)

**Личные чаты** (адресат всегда определён — вы или собеседник):

| Уведомления чата | «Уведомлять» для «Сообщений» | Сообщение от собеседника | Непрочитано |
|---|---|---|---|
| Включено | Включено | Уведомление + push | Да |
| Отключено | Включено | Уведомление + push | Да |
| Включено | Отключено | Уведомление + push | Да |
| Отключено | Отключено | Только непрочитанность, без push | Да |

### Редактирование адресатов комментария

При редактировании комментария можно изменить список адресатов. Система сравнивает старый и новый набор и корректирует push-уведомления:

- **Добавленные адресаты** получают push-уведомление — аналогично отправке нового комментария.
- **Исключённые адресаты** получают сигнал удаления push — уведомление исчезает из центра уведомлений на устройстве (тот же механизм, что и при удалении комментария; сам комментарий при этом не удаляется).
- **Сужение «Всем» → конкретный пользователь:** push удаляется у всех, кроме указанного.

> Историческая справка: ранее в общих настройках приложения существовал флаг «Комментарии без адресата всегда непрочитанные для подписчиков», который превращал комментарий «Никому» в эквивалент «Всем». Настройка убрана в 2024 году. Сейчас «Никому» рассылается всем подписчикам с уважением их мьюта чата.

### Особенности отдельных типов уведомлений

Ряд типов уведомлений имеет нестандартное поведение, которое не следует из общей логики включения/отключения флагов.

- **Сообщения в чатах и задачах** — отображение в ленте зафиксировано, галочка не снимается. Управление push вынесено в выпадающие списки с режимами «Все», «Только вопросы» и «Выкл». Снятие отметки «Непрочитанные» принудительно переводит push в «Выкл» и блокирует изменение. В блоке настроек приложения дублирующие пункты «По чатам» и «Вопросы» упразднены.
- **Назначение меня исполнителем** — флаг «Непрочитанные» неактивен.
- **Получать уведомления о подписчиках** — на почту не отправляются и среди непрочитанных не учитываются.
- **Календарные события** — уведомления об отмене встречи участникам не отправляются. Push при изменении состава или статуса не приходят.
- **Создание задачи** — в чатах создание оформляется как «тихий» комментарий пользовательского типа независимо от настроек.
- **Запись и расшифровка ВКС** — для автоматических уведомлений нужно включить «Видно в ленте» + «Непрочитанность» по этому типу.

### Прочие пользовательские настройки

Помимо управления типами уведомлений, пользователь может настроить формат доставки: вложения в письмах, email-дублирование, SMS, звуки и поведение счётчиков непрочитанных.

| Настройка | Что делает |
|---|---|
| **Получать файлы в письмах вложениями** | ДП-файлы в email-уведомлениях приходят как вложения, а не ссылки. Размер вложений ограничивается администратором |
| **Не получать уведомления о просроченных задачах и подписях** | Отключает ежедневные отчёты |
| **Не присылать почтовые сообщения** | Отключает дублирование на email. Режимы: «Когда я в онлайне», «В рабочее время», «Когда я отсутствую» |
| **Не получать SMS** | Отключает SMS-напоминания. В личных настройках пользователя показывается, только если в системе подключена отправка SMS; при отключённой отправке настройка скрыта, а ранее сохранённое значение остаётся без изменений. В администраторских настройках пользователя и в настройках по умолчанию отображается всегда |
| **Автопрочтение при просмотре задачи** | Новые сообщения автоматически отмечаются прочитанными при открытии карточки задачи. Помеченные вручную как непрочитанные сохраняют статус |
| **Звуки** | Звуковые оповещения и голосовое сообщение о количестве непрочитанных при входе |
| **Напоминания о встречах** | Всплывающий баннер за 15 минут до начала события |
| **Счётчик на иконке** | Что показывать: число непрочитанных сообщений или число чатов с непрочитанными |
| **Скрывать текст сообщения в push** | Отдельно для чатов и для сообщений к задачам |
| **Звуки в мобильном приложении** | Разные звуки для разных типов уведомлений |

Изменение настроек применяется и к уже существующим сообщениям: после отключения типа в колонке «Непрочитанные» старые сообщения этого типа перестают быть непрочитанными.

## Представление «Лента»

![Лента сообщений: структура сообщения «автор → адресат» и типы событий](https://help.1forma.ru/help-images/notifications/tickers_and_notifications-02.png)

Представление «Лента» показывает задачи и сообщения в хронологическом порядке: свежие записи находятся сверху. Экран состоит из двух областей: слева лента задач, справа сообщения из выбранных задач. По умолчанию соотношение областей 40/60, пользователь может изменить ширину перетаскиванием разделителя. В каждой области есть набор вкладок, собирающих задачи и сообщения по определённым правилам; при сужении области задач и сообщений (или одной из них) вкладки группируются в раскрывающийся список.

**Узкое окно.** В узком окне браузера страница «Лента» показывает только сообщения, а список задач открывается отдельно — значком задач в нижней панели навигации. Если отдельный список задач открыть в широком окне, например по сохранённой ссылке, открывается обычная «Лента» из двух областей, параметры адреса сохраняются. Клик по задаче в узком окне открывает карточку во всплывающем окне, а не отдельной страницей; исключение — пространства, они и в узком окне открываются отдельной страницей. Во всплывающем окне у карточки нет кнопок «Развернуть» и «Открыть в новой вкладке». Граница — ширина окна до 960 px, а не тип устройства, поэтому так же ведёт себя узкое окно браузера на компьютере.

**Состояние при открытии.** Раздел «Лента» открывается в исходном состоянии: при каждом входе настройки отображения заменяются значениями по умолчанию — лента задач в режиме «Исполнитель», новые сверху, сортировка «По последнему комментарию», в блоке «Отобразить» отмечены «Не отвеченные вопросы». Исключение одно: выбор между «Группировать» и «Все сообщения» запоминается и переживает обновление страницы, повторный вход в раздел и возврат с ленты непрочитанных. Ленты внутри представлений категорий и разделов работают иначе: там сохраняются все выбранные настройки.

### Режимы ленты задач

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

| Режим | Что показывает | Особенности карточки |
|---|---|---|
| Заказчик | Задачи, где пользователь является заказчиком. | В карточке не показывается заказчик, потому что это текущий пользователь. |
| Исполнитель | Задачи, где пользователь является исполнителем. Это режим по умолчанию. | В карточке не показываются исполнители. |
| Подписка | Все задачи, к которым пользователь имеет отношение, включая справочники. | Используется для расширенного просмотра своего информационного потока. |

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

> ⚠️ Для постановки задач из ленты в категории не должно быть обязательных полей.

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

### Режимы ленты сообщений

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

| Режим | Что показывает |
|---|---|
| Лента | Все сообщения в задачах, на которые пользователь подписан. |
| Новые | Непрочитанные сообщения; загружаются последние 200 новых сообщений. Из этого режима можно прочитать все новые сообщения в ленте. Переключатель «Прочитано» (по умолчанию выключен) добавляет в тот же список уже прочитанные сообщения, которые были адресованы пользователю. |
| Входящие | Неотвеченные вопросы, заданные пользователю другими пользователями. При настройке «Все вопросы» отображаются также ответы на вопросы других пользователей. |
| Исходящие | Неотвеченные вопросы, заданные текущим пользователем другим пользователям. При настройке «Все вопросы» отображаются ответы пользователей на эти вопросы. |
| Избранные | Сообщения, добавленные пользователем в избранное. |

![Главная лента: вкладки режимов сообщений (Лента, Новые, Входящие, Исходящие, Избранные) и карточки задач с количеством сообщений](https://help.1forma.ru/help-images/notifications/main_feed.png)

**Где видно число непрочитанных и вопросов.** Счётчики непрочитанных сообщений и неотвеченных вопросов показаны прямо на вкладках ленты — «Новые» и «Входящие»; отдельных значков с теми же числами в панели инструментов нет. Значения обновляются сами при поступлении новых сообщений и вопросов, без перезагрузки страницы.

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

**Переключатель «Прочитано».** Во вкладке «Новые», справа от вкладок, есть переключатель «Прочитано». По умолчанию он выключен: вкладка показывает только непрочитанные. Включённый переключатель догружает сюда же уже прочитанные сообщения, которые были адресованы текущему пользователю, — вперемешку с непрочитанными, по дате написания. Это не вся подписка на события, а те сообщения, по которым пользователь получал непрочитанные.

**Что именно попадает в список.** При включённом переключателе вкладка собирает непрочитанные сообщения и прочитанные, у которых текущий пользователь указан среди «Прочтений» — тех, кто отмечен по правому клику на сообщении. Это, в частности, адресаты, копии и сообщения, отмеченные системой автоматически. Собственные сообщения пользователя и сообщения, адресованные только другим людям, в список не добавляются. Все непрочитанные, которые видны при выключенном переключателе, при включённом остаются на месте.

Состояние переключателя не запоминается: после обновления страницы он снова выключен.

Пока переключатель включён, клик по непрочитанному сообщению не убирает его из списка и не перечитывает ленту целиком: сообщение остаётся на месте, уже без отметки непрочитанного.

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

- сняли отметку «Непрочитанные» у типа события — такие сообщения перестают быть непрочитанными, и вкладка «Новые» их больше не показывает; под включённым «Прочитано» уже полученные остаются, а новые сообщения этого типа не приходят;
- сняли отметку «Видно в ленте» — события пропадают из вкладки «Лента»; во вкладке «Новые» с включённым «Прочитано» уже полученные остаются, новые не приходят.

### Кнопка «Прочитать все» во вкладке «Новые»

При открытии задачи из вкладки **«Новые»** ленты сообщений в карточке комментариев доступна кнопка **«Прочитать все»**. После подтверждения действия:

- все комментарии задачи помечаются прочитанными;
- счётчик непрочитанных сообщений (конверт) уменьшается;
- строка задачи в фоновом списке ленты непрочитанных автоматически меняет начертание с жирного (непрочитанное) на обычное (прочитанное) сразу после ответа сервера — без необходимости перезагрузки страницы или повторного клика по строке.

Чтобы прочитать отдельное непрочитанное сообщение, достаточно кликнуть по нему в ленте — начертание строки задачи также изменится немедленно.

### Группировка и теги

Опция «Группировать» в настройках ленты меняет представление: задача показывается в ленте один раз по последнему сообщению. В сгруппированном виде у задачи видны аватары участников и счётчики сообщений. Список аватаров строится по частоте участия пользователей среди последних 50 сообщений задачи.

Счётчики в сгруппированном виде считаются по обсуждению, а не по всей задаче: в строке показывается состояние того обсуждения, последнее сообщение из которого выведено в этой строке.

Не путать со второй группировкой того же экрана: сами задачи левой области группируются по сроку, категории, статусу, заказчику, исполнителю или дате создания — тогда у заголовка группы показывается число задач, а у просроченных отдельный красный счётчик. Полное описание режимов — в разделе «Лента задач» документа [Работа с задачами](https://help.1forma.ru/domains/tasks/business.md). На мобильных устройствах и при направлении ленты «вниз» задачи не группируются.

| Что показано | Что означает |
|---|---|
| Число сообщений | Сколько сообщений в этом обсуждении |
| Первая отметка | Непрочитанные сообщения в обсуждении |
| Вторая отметка | Входящие — вопросы, заданные вам, на которые не отвечено |
| Третья отметка | Исходящие — ваши вопросы, на которые не отвечено |

Отметка, за которой нет сообщений, не показывается. У сообщения, которое не входит в обсуждение, счётчики и отметки не выводятся: они относятся к обсуждению целиком. Значения считаются под того, кто смотрит ленту, поэтому у разных пользователей в одной задаче числа отличаются.

Отметить вопрос можно в самом сообщении — галочкой «Нужен ответ» или командой контекстного меню; снимается она тем же действием, когда вопрос отмечен отвеченным. Про фильтр неотвеченных вопросов над лентой и о настройках категории — см. [Комментарии → бизнес-логика](https://help.1forma.ru/domains/comments/business.md).

В ленте активные просроченные задачи выделяются красным, завершённые — серым. Системные теги всегда включают название категории с иконкой. Дополнительно администратор может настроить теги по статусу, приоритету, заказчику или значению ДП; для статуса и приоритета применяются служебные иконки.

### Контекстное меню задачи в ленте

Правый клик по карточке задачи в ленте задач открывает меню:

| Пункт | Описание |
|---|---|
| Открыть | Карточка задачи в текущей вкладке |
| Открыть на новой странице | Карточка в новой вкладке |
| В избранное / В избранное и выбрать цвет | Добавление в избранное (пункты видны только для не добавленных задач) |
| Удалить из избранного / Изменить цвет избранного | Управление избранным (только для уже добавленных задач) |
| Настройки уведомлений | Подменю с двумя режимами, выбор как переключатель (активен ровно один, отмечен галкой): «Уведомления по правилам чатов» — задача остаётся в списке чатов, во вкладке «Все»; «Уведомления по правилам задач» — задача убирается из списка чатов. Меняется только для текущего пользователя, на других подписчиков не влияет. Подробнее — [Чаты](https://help.1forma.ru/domains/chat/business.md) |
| Копировать текст | Копирование текста задачи в буфер обмена |
| Установить срок | Окно установки или изменения срока |

### Ответ из ленты и связь с доменом comments

Ответить на сообщение можно, не заходя в задачу, — через контекстное меню сообщения в ленте. При ответе из ленты система сохраняет связь с исходным сообщением и в блоке цитаты отображает автора этого сообщения. Имя автора сохраняется и после перезагрузки страницы, поэтому ответ остаётся однозначно связан с тем сообщением, на которое он был отправлен.

UI-операции с отдельным сообщением — ответы, треды, пересылка, реакции, избранное, форматирование, @-упоминания и emoji-only сообщения — относятся к домену комментариев. Их нужно смотреть в [../comments/business.md](https://help.1forma.ru/domains/comments/business.md), чтобы не дублировать правила ленты сообщений в notifications.

В десктопном приложении 1Формы для Windows на иконке в панели задач отображается счётчик непрочитанных сообщений. При нуле непрочитанных счётчик скрывается.

Если счётчик не отображается, проверьте настройки Windows:

- В настройках панели задач выбран режим **больших значков** (при маленьких значках счётчик не показывается).
- В параметрах персонализации панели задач включён показ эмблем на приложениях.

На macOS счётчик на иконке в Dock работает независимо от этих настроек.
На иконке в системном трее — и в Windows, и в macOS — при непрочитанных появляется красная точка в правом верхнем углу. Числа она не показывает: точка отвечает только на вопрос «есть непрочитанное или нет», количество смотрите на иконке в Dock или в панели задач. Когда непрочитанных не остаётся, точка пропадает. Меню трея и разворачивание окна по клику работают как раньше.
