# Чаты

Механизм обмена сообщениями в 1Форме с поддержкой четырёх типов чатов: личные (1-на-1), групповые (открытые и закрытые), каналы и социальные сети. Документ описывает типы чатов, роли участников, МТФ-панель, матрицу возможностей, права на действия с подписчиками, создание и закрытие чатов, конфиденциальность, уведомления, настройки, представление в интерфейсе, опросы и закреплённые сообщения. Для администраторов, настраивающих категории чатов, и пользователей.

## Типы чатов и роли участников

В 1Форме поддерживается несколько типов чатов, каждый со своими правилами участия и возможностями.

| Тип | Описание | Max участников |
|---|---|---|
| **Personal** | Личный чат 1-на-1 | 2 |
| **Group** | Открытый групповой чат | Без ограничений |
| **Group (закрытый)** | Закрытый групповой чат | Без ограничений |
| **Channel** | Канал (broadcast) | Без ограничений |
| **SocialNetwork** | Публикация в соцсети | Без ограничений |
| **SavedMessages** | Личный чат «Избранное» — переписка с самим собой | 1 |

### Особенности каналов (Channel)

Каналы реализуют модель broadcast, аналогичную Telegram. Ключевое ограничение: неподписанные пользователи и пользователи без права писать в чат **не могут отвечать на сообщения**.

- Если пользователь не подписчик канала или не имеет права писать в чат, в контекстном меню сообщения (ПКМ) скрываются пункты:
  - **Ответить**
  - **Ответить всем**
  - **Начать обсуждение**
  - **Переслать → Текущий чат**

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

### Особенности чата «Избранное» (SavedMessages)

**Как появляется чат.** Личный чат «Избранное» создаётся лениво: он возникает при первом открытии пункта «Избранное» или при первой пересылке в него, а до этого в интерфейсе показана заглушка. Повторный вход открывает тот же чат, второй не создаётся. Заказчиком задачи-чата становится сам пользователь, системного владельца нет. Он же единственный подписчик и владелец чата. Уведомления по этому чату не приходят.

**Название и вид.** Название собирается как «Избранное: <отображаемое имя владельца>», а в шапке открытой переписки заголовок постоянный — «Избранное». Аватара собеседника в сообщениях нет: собеседник — сам пользователь. Пункт в списке личных чатов и аватар — с иконкой закладки в основном брендовом цвете. Чат закреплён, оформлен системно и виден во вкладках «Все» и «Личные».

**Что закрыто.** В чате недоступны создание вручную, добавление подписчиков, переименование, изменение настроек и внешнего вида, закрытие и удаление, а также снятие закрепления; сменить тип смарт-действием и перевести задачу по маршруту тоже нельзя. Действия скрыты в интерфейсе, а попытка выполнить их через API отклоняется сервером.

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

> Чат «Избранное» — не то же самое, что вкладка «Избранное» в списке чатов: вкладка показывает чаты, отмеченные пользователем (см. [«Системные папки»](#системные-папки-дополнительные-вкладки-и-личные-чаты-в-ленте)), а сам чат — переписку с собой.

### Роли участников

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

| Роль | Может назначать |
|---|---|
| **Owner** (Владелец) | Owner, Admin, Moderator, Author |
| **Admin** (Администратор) | Admin, Moderator, Author |
| **Moderator** (Модератор) | Author |
| **Author** (Автор) | Никого |

Иерархия: Владелец > Администратор > Модератор > Автор. Создатель чата автоматически получает роль Владельца. Пользователь может наследовать роль от замещаемого (кроме Owner).

Роли Администратора и Модератора назначаются и группам пользователей, а не только отдельным людям: участник группы получает права своей роли в полном объёме. Если у пользователя несколько ролей — свои и через разные группы, — действует сильнейшая.

В зависимости от роли каждый участник может выполнять определённые действия:

- **Владелец** — создатель чата. Роль неизменяема: её нельзя удалить, отредактировать или передать другому пользователю. Владелец может назначать администраторов и модераторов, управлять подписчиками (добавлять и удалять), редактировать настройки чата и удалять чужие сообщения. Его не могут удалить администраторы или модераторы.
- **Администратор** — роль, назначаемая владельцем или другим администратором. Обладает теми же правами, что и владелец: может назначать других администраторов и модераторов, редактировать настройки чата и удалять чужие сообщения. Может самостоятельно снять с себя эту роль. Не может удалить владельца, но может добавлять и удалять других администраторов и модераторов.
- **Модератор** — роль, назначаемая владельцем или администратором. Модератор может публиковать посты, добавлять подписчиков, редактировать настройки чата и удалять чужие сообщения. По функционалу близок к администратору, но не может назначать или снимать роли других участников. Также не может самостоятельно снять с себя роль модератора.
- **Автор** — предоставляет право создавать и публиковать сообщения в группе. За ролью не закреплены права на управление участниками или настройками группы: автор не может удалять других пользователей, назначать или снимать с них роли. Пользователь с ролью автора отображается как подписчик, но с активной возможностью публикации. Назначать данную роль могут пользователи с правами владельца, администратора или модератора.

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

## МТФ-панель

МТФ-панель — правая боковая панель в интерфейсе чата, которая отображает карточку задачи (МТФ): заголовок, дополнительные поля (ДП) и блок бизнес-информации (BI). Лента сообщений и панель инструментов чата в МТФ-панели не отображаются.

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

Если панель доступна для аккаунта пользователя, при открытии чата она раскрывается автоматически. Скрыть или снова показать панель можно кнопкой в шапке чата. Ширину панели можно изменить, перетащив разделитель между лентой сообщений и панелью.

Для пользователей, не подписанных на групповой чат или канал (видят кнопку «Подписаться» вместо поля ввода), в контекстном меню сообщения скрываются пункты, требующие роли подписчика: подпункт «В текущий чат» меню «Переслать» и пункт «Удалить». Пересылка в другие чаты, где у пользователя есть право на публикацию, остаётся доступной.

## Матрица возможностей по типу чата

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

| Возможность | Personal | Group | Channel | SocialNetwork |
|---|---|---|---|---|
| Добавление подписчиков | **НЕТ** | ДА* | НЕТ | ДА |
| Редактирование профиля | **НЕТ** | ДА* | ДА | НЕТ |
| Изменение настроек | **НЕТ** | ДА** | ДА** | ДА** |
| Обсуждения (треды) | ДА | ДА | ДА | НЕТ |
| Корневые сообщения | ДА | ДА | НЕТ | НЕТ |
| Конференция (ВКС) | ДА | ДА | НЕТ | НЕТ |
| Вложения файлов | ДА | ДА | НЕТ | НЕТ |
| Закрепление сообщений | ДА | ДА | ДА | ДА |
| Опросы | ДА | ДА | ДА | ДА |
| Реакции | ДА | ДА | ДА | ДА |
| Голосовые сообщения | ДА | ДА | ДА | ДА |
| Приватность | Всегда private | Настраиваемо | Public | Настраиваемо |

`*` — если соответствующая настройка включена и чат не закрыт.
`**` — только Владелец/Администратор.

## Права на действия с подписчиками

Возможность добавлять участников и управлять чатом зависит от его типа и роли пользователя.

### Права по типу чата

**Личный чат (Personal).** В личном чате добавление подписчиков, изменение внешнего вида и настроек **заблокировано по дизайну** — это не ошибка.

**Групповой чат (Group, Channel, SocialNetwork).** В групповых чатах возможности зависят от роли и открытости чата:

| Действие | Owner/Admin | Подписчик | Не подписчик |
|---|---|---|---|
| Добавить подписчика | ДА | Если включена настройка «Добавлять других подписчиков» И чат открыт | НЕТ |
| Изменить профиль | ДА | Если включена настройка «Редактирование профиля» И чат открыт | НЕТ |
| Изменить настройки | ДА | НЕТ | НЕТ |

**С версии 2.268.422** ограничение «Добавлять других подписчиков» (при выключенной настройке, для обычного подписчика — не owner/admin/модератора) действует шире, чем кнопка добавления:
- в списке участников также скрывается кнопка удаления;
- в полях «Кому» и «Копия» ручной поиск предлагает только уже подписанных пользователей, без общего поиска по сотрудникам;
- упоминание через `@` по-прежнему ищет по всем пользователям системы, но если выбран не подписчик, оно вставляется в текст как обычное упоминание — не добавляя автора в получатели.

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

**Управление подписчиками.** Добавлять и удалять участников чата может разный круг лиц в зависимости от режима конфиденциальности:

| Условие | Кто может менять подписчиков |
|---|---|
| Обычная задача (не чат) | Любой с доступом |
| Чат с включённой настройкой «Добавлять других подписчиков» | Владелец, администраторы, модераторы и любой подписчик |
| Чат с выключенной настройкой, а также личные диалоги и каналы | Только владелец, администраторы и модераторы |
| Конфиденциальная задача/чат | Только заказчик (owner) |
| Системный пользователь | Всегда может |

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

**Серверная проверка.** Ограничение по настройке «Добавлять других подписчиков» держится не только интерфейсом. При выключенной настройке сервер отклоняет любое изменение состава чата, если у инициатора нет роли владельца, администратора или модератора: отказ приходит и на скрытые в интерфейсе действия, и на прямой вызов API, и на смарт-действие «Удалить подписчика», и на пакетное действие над задачами. Роль «Автор» в число разрешённых не входит, как и отсутствие роли в чате. Правило действует во всех типах чатов: в личных диалогах и каналах настройка выключена всегда, поэтому состав там меняют только владелец, администраторы и модераторы. Для обычных задач, не являющихся чатами, порядок прежний.

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

## Создание, закрытие и выход из чата

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

### Ограничения по типу и проверка дубликатов

По количеству участников: **Personal** — максимум 2 участника, **SavedMessages** — один (сам владелец), **Group / Channel / SocialNetwork** — без ограничений.

При создании личного чата система проверяет, существует ли уже чат между теми же участниками. Если да — возвращает существующий.

Завершить участие в чате можно двумя способами в зависимости от ситуации:

| Действие | Кто может | Результат |
|---|---|---|
| **Закрыть чат** | Owner или пользователь с правом на переход по шагу | Чат переходит в финальный статус |
| **Выйти из чата** | Подписчик группового чата; из личного чата выход недоступен | Пользователь отписывается от чата. Владельцу, оставшемуся в чате в одиночку, выход запрещён — сначала нужно передать чат другому владельцу |

### Подписка и отписка в интерфейсе

Действие подписки называется единообразно во всех местах, где оно встречается: в шапке открытого чата, в контекстном меню списка чатов и в меню «Подписчики» карточки задачи. Названия — «Подписаться» и «Отписаться»; слово «Выйти» для этого действия не используется. Исключение — личный чат: кнопок подписки и отписки в нём нет, завершение работы с чатом выполняется пунктом «Закрыть чат», переписка при этом сохраняется.

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

Отписка от задачи, закреплённой как чат, требует подтверждения: система спрашивает, убрать ли задачу из списка чатов. Подтверждение снимает и закрепление, и подписку; отмена не меняет ничего. Открепить задачу из списка чатов, не отписываясь, можно отдельным действием — подписка при этом сохраняется.

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

При изменении состава административной группы пользователей сервер синхронизирует её участников во всех задачах и групповых чатах, где подписана группа, независимо от того, закреплены они в списке чатов. Если пользователь входит в подписанную группу, отдельная кнопка «Подписаться» в интерфейсе не показывается, а текстовые упоминания (`@упоминание`) внутри переписки не переводят его в персональные подписчики. Лента прошлых сообщений при подписке и отписке не пересчитывается: добавление в подписанную группу не подтягивает историю комментариев задним числом, а при выходе из группы или отписке записи получателей комментариев не удаляются — сообщения, где сотрудник был прямым адресатом или автором, в его ленте сохраняются.

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

Чаты обрабатываются при увольнении отдельно от остальных задач — переписка не должна остаться без владельца или «зависнуть» на уволенном собеседнике.

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

**Групповому чату назначается новый владелец.** Если уволенный владел групповым чатом, владелец переназначается в открытой или закрытой категории, в том числе когда задача уже закрыта. Если в параметрах увольнения указан преемник (новый заказчик задач), владельцем становится он. Если преемник не указан, владельцем становится первый неуволенный подписчик — при равных условиях выбирается пользователь с наименьшим идентификатором, то есть зарегистрированный раньше остальных; если неуволенных подписчиков не осталось, владельцем становится системный пользователь. Смена выполняется от имени системного пользователя и не требует прав на смену владельца. Личные чаты этой логикой не затрагиваются.

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

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

#### Ретро-чистка исторических групповых чатов

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

**Что попадает в обработку.** Только **незакрытые** групповые чаты — и в открытой, и в закрытой категории, — где подписчик или владелец уволены.

**Что не попадает.** Личные чаты, закрытые задачи-чаты и подписки работающих пользователей. Уволенный, как и при увольнении «на лету», остаётся в истории переписки личных чатов.

**Кому передаётся чат.** Правила те же, что при увольнении: сначала преемник из настройки увольнения, затем первый неуволенный подписчик — при равных условиях пользователь с наименьшим идентификатором, — затем системный пользователь.

**Что видно в интерфейсе.** Состав чата меняется сразу: уволенный исчезает из списка подписчиков, у чата появляется работающий владелец. Системных сообщений в переписке при этом не появляется, изменения оформляются от имени системного пользователя. Если чат остался с уволенным владельцем или содержит уволенного подписчика, это уже не результат обработки, а запись, которую нужно разобрать вручную; отчёт о прогоне пишется в журнал административных действий, и строка с числом неудачных замен — признак того, что часть чатов требует проверки.

Техническое описание обработки — в backend.md.

**Уволенные участники помечены.** В списке участников чата рядом с именем уволенного сотрудника выводится пометка «Уволен».

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

### Конфиденциальность чата

Администратор может настроить режим конфиденциальности для всей категории чатов:

| Режим | Описание |
|---|---|
| Отключено | Нет ограничений |
| Выборочно | Можно флагировать конкретные чаты |
| Обязательно | Все чаты конфиденциальны |

При включённой конфиденциальности:

- Только подписчики видят содержимое
- Подписчики (кроме owner) не могут приглашать не-подписчиков
- Эскалация просроченных чатов отключена

**Под перевоплощением.** Если администратор работает через «Перевоплотиться» в подписчика конфиденциального чата, но сам в подписчики не входит, чат фильтруется из списка чатов, ленты задач, поиска и истории просмотров. Тексты задачи и комментариев заменяются на «Текст задачи скрыт» / «Комментарий скрыт». В избранном чат остаётся в списке, но с скрытым заголовком. Счётчики непрочитанных и сигнальные события **продолжают учитывать** конфиденциальные чаты — известное ограничение текущей итерации (с версии 2.268.326). Подробности и список изменений: [permissions/impersonation.md § 7.1](https://help.1forma.ru/domains/permissions/impersonation.md).

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

Уровень уведомлений задаётся для каждого чата отдельно и хранится у подписчика чата. В веб-интерфейсе режим выбирается из списка четырёх вариантов: кнопка с колокольчиком в шапке чата и на странице «Информация», пункт «Уведомления» в меню чата и в меню списка чатов, а также блок уведомлений в карточке задачи и в карточке сообщества. На кнопке подписан текущий режим, в списке у активного режима стоит галочка. Выбранный режим применяется сразу, перезагрузка страницы не нужна.

| Режим | Push-уведомления | Непрочитанность |
|---|---|---|
| **Все уведомления** | Приходят на любое сообщение, включая сообщение «Никому» | Ставится на любое сообщение |
| **Без звука** | Приходят на личное обращение, «Всем» и группу; сообщение «Никому» push не вызывает | Ставится на любое сообщение, включая «Никому» |
| **Только личные** | Приходят только на личное обращение | Ставится только на личное обращение, остальные сообщения помечаются прочитанными автоматически |
| **Отключить всё** | Не приходят | Все сообщения помечаются прочитанными автоматически |

Режимы, которые раньше назывались «Только персональные обращения» и «Заглушить», теперь выбираются прямо в интерфейсе как «Только личные» и «Отключить всё»; режим «Без звука» — прежнее «Выключить уведомления».

### По каким правилам приходят уведомления: чата или задачи

Кроме выбора режима уведомлений у каждого подписчика есть переключатель, по каким правилам обрабатывать уведомления этой задачи — как у чата или как у задачи. Он открывается из подменю «Настройки уведомлений»: по правой кнопке мыши в списке чатов, в меню `…` в шапке чата и в карточке задачи (МТФ) — на десктопе и в мобильном приложении.

| Режим | Что происходит |
|---|---|
| **Уведомления по правилам чатов** | Задача ведёт себя как чат и остаётся во вкладке «Все» |
| **Уведомления по правилам задач** | Задача ведёт себя по правилам задачи: уходит из вкладки «Все», остаётся доступной в «Группах» (для групповых чатов) |

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

### Что регулирует настройка, особенности групповых чатов и email

Настройка уведомлений влияет на: push-уведомления, непрочитанность сообщений, уведомления рабочего стола. **Не влияет на:** email-уведомления. Email управляется двумя отдельными механизмами:
1. **Настройка категории** «Не посылать почтовые сообщения» (per-категория) — см. [subcategory-mail-messages-settings](https://help.1forma.ru/domains/mail/admin.md)
2. **Пользовательская настройка** «Не присылать почтовые сообщения» (глобальная) — см. [уведомления](https://help.1forma.ru/domains/notifications/business.md)

**Особенности групповых чатов.** В групповом чате, где больше двух подписчиков (подписанные через группу тоже считаются), даже в режиме «Без звука», сообщения **всегда** приходят при личном обращении (сообщение адресовано конкретно пользователю) и отправке сообщения «Всем». Это задокументированное поведение (см. [уведомления](https://help.1forma.ru/domains/notifications/business.md), тип событий «Сообщения»). Режимы «Только персональные обращения» и «Заглушить» строже: в первом push приходит при личном обращении и по вопросам и ответам, а по сообщению «Всем» — нет, даже если пользователь указан в нём адресатом явно; во втором push о сообщениях не приходит совсем, в том числе при личном обращении, отправке «Всем», по вопросам и ответам. Групповой чат ровно с двумя подписчиками уведомляет по правилам личной переписки: режим «Без звука» глушит в нём и личное обращение, и «Всем» — проходят только вопросы и ответы, — а режим «Только персональные обращения» не глушит ничего.

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

| Выбор в UI | Push-уведомления | Мьют чата |
|---|---|---|
| **«Всем»** — выбрана группа «Всем» | Все подписчики, даже выключившие уведомления, кроме режимов «Только персональные обращения» и «Заглушить» | **Пробивает** мьют |
| **Никому** — адресат не выбран | Все подписчики с уважением персональных настроек мьюта | **Уважает** мьют |

Принцип как в Telegram: обычное сообщение без адресатов рассылается всем, но уважает мьют. «Всем» пробивает мьют — так же как личное обращение. Опция «Никому» в поле адресатов не отображается — это автоматическое состояние «пустой выбор адресатов».

**Почему email-уведомления не отключаются через режим в чате.** Режим уведомлений чата **не отключает email**. Для отключения email из групповых чатов рекомендуется настройка «Не посылать почтовые сообщения» на категории групповых чатов. Подробнее: [support-guide секция 1.10](https://help.1forma.ru/domains/comments/support-guide.md)

## Настройки чата

Владелец и администраторы группового чата или канала могут управлять его параметрами через меню `…` → **Настройки**.

> **(v2.268+):** при создании канала настройка «Закреплять сообщения для всех» по умолчанию отключена — обычные подписчики не могут закреплять сообщения для всех, это право только у администраторов и модераторов.

> **(v2.268+):** для групповых чатов настройка «Разрешить создавать сообщения анонимно» теперь корректно сохраняется и применяется. Доступна для изменения администраторами и владельцами чата.

### Применение и сохранение настроек в UI (v2.267+)

Настройки чата доступны через меню `…` → **Настройки** в шапке группового чата или канала (в личных чатах раздел «Настройки» заблокирован для редактирования). Параметры управляют видимостью UI-элементов для участников с ролью **Подписчик**. Владелец (Owner) и Администратор (Admin) видят все элементы независимо от этих настроек.

| Название в интерфейсе | Что скрывается для подписчика |
|---|---|
| **Скрыть список подписчиков** | Список участников в окне «Информация» недоступен |
| **Добавлять других подписчиков** | Кнопка «Добавить» в окне «Информация» скрыта |
| **Отправлять сообщения** | Поле ввода скрыто; корневые сообщения доступны только администраторам и модераторам |
| **Звонки** | Кнопка ВКС в шапке чата и в окне «Информация» скрыта |

В общем экране настроек чата, а также в модальных окнах «Разрешения для подписчиков» и «Загрузка обложки» настройки сохраняются независимо друг от друга. При нажатии кнопки «Сохранить» в модальном окне оно закрывается, данные сохраняются, появляется уведомление «Сохранено». Если модальное окно или основной экран настроек закрывается через крестик, все внесённые, но не сохранённые изменения теряются. При попытке закрыть окно с несохранёнными изменениями появляется предупреждение об их потере. После сохранения настроек в модальном окне повторное нажатие «Сохранить» на основном экране не требуется. Клик по «Сохранить» или «Отмена» (крестик) на основном экране возвращает к просмотру чата; «Сохранить» сопровождается уведомлением «Сохранено».

Экран настроек занимает правую область чата целиком. Если список настроек не помещается по высоте, он прокручивается — нижние пункты (например, «Аудиосообщения» и «Создавать опросы») доступны прокруткой — а кнопки «Сохранить» и «Отмена» закреплены внизу панели и остаются видимыми. Так ведёт себя экран при любом способе открытия: и из меню `…` в шапке чата, и из меню на странице «Информация».

### Описание настроек чата

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

#### Оформление и видимость

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

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

#### Участники

Параметры этого блока управляют составом участников чата и их правами на совершение действий.

| Параметр | Описание |
|---|---|
| **Подписчики** | Пользователи системы, которые будут добавлены в качестве участников чата. В открывшемся окне введите нужных пользователей в поле поиска и нажмите кнопку «Добавить подписчиков». Нажатие на пользователя в списке переходит в его профиль. Чтобы удалить пользователя из участников, наведите на его имя, нажмите кнопку дополнительных действий (⋮) и выберите «Удалить». Создатель (владелец) чата по умолчанию получает право владельца и может назначать администраторами и модераторами других подписчиков — наведите на имя, нажмите (⋮) и выберите «Назначить», затем нужную роль. Администраторы имеют право назначать подписчиков только модераторами |
| **Разрешения для подписчиков** | Набор опций для подписчиков чата:<br>• **Скрыть список подписчиков** — при включении список подписчиков доступен только администраторам; если выключено — всем. По умолчанию опция активна.<br>• **Добавлять других подписчиков** — если разрешено, любой подписчик может приглашать новых участников кнопкой в списке подписчиков (неподписанные пользователи кнопку не видят); при отключении управлять составом участников — добавлять и исключать — могут только владелец, администраторы и модераторы, в том числе получившие роль через группу. По умолчанию включено для групповых чатов, отключено в каналах.<br>• **Создавать публикации** — при активации подписчики могут публиковать записи на стене чата; если отключено — публиковать может только администратор. По умолчанию включено для групповых чатов, отключено в каналах.<br>• **Закреплять публикации для всех** — позволяет закреплять как свои, так и чужие сообщения. По умолчанию для участников отключено; администратор закрепляет всегда.<br>• **Звонки** — если включено, подписчики видят кнопку «Собрать видеоконференцию», неподписанные — только «Присоединиться»; если отключено — групповой звонок запускают только администраторы. По умолчанию включено для групповых чатов, отключено в каналах.<br>При изменении параметров в окне «Разрешения для подписчиков» нажатие кнопки «Сохранить» в нём сразу применяет настройки без дополнительного сохранения на основной странице; кнопка активна только при наличии несохранённых изменений |

#### Возможности чата

Параметры этого блока включают или отключают отдельные функции взаимодействия внутри чата.

| Параметр | Описание |
|---|---|
| **Реакции** | Участники могут добавлять реакции на сообщения. Переключатель недоступен для активации, если в категории отключена установка реакций на сообщения |
| **Стикеры** | Участники могут отправлять стикеры в сообщениях. Переключатель расположен в настройках чата сразу после «Реакции». Если настройка выключена, отправка стикеров в этом чате недоступна. Подробнее о правилах отправки и отображения — [«Стикеры в сообщениях»](https://help.1forma.ru/domains/comments/business.md#стикеры-в-сообщениях) |
| **Создавать обсуждения** | При включённой настройке пользователи могут создавать обсуждения из комментариев в чате; если выключено — возможность создавать обсуждения пропадает. Создатель чата и администраторы сохраняют право создавать обсуждения даже при деактивированной функции |
| **Отправка файлов** | Если опция отключена, участники не могут отправлять файлы: в поле написания сообщения кнопка прикрепления вложений скрыта |
| **Аудиосообщения** | Если опция отключена, у участников не будет кнопки «Записать и отправить аудиосообщение» |
| **Создавать опросы** | Если опция включена, в блоке создания сообщения доступна кнопка для прикрепления опроса. Если отключена — создание новых опросов недоступно для всех участников, кнопка создания опроса скрывается; при этом ранее созданные опросы не удаляются |

## Переключение открытый/закрытый чат

При изменении настройки видимости у группового чата или канала система автоматически перемещает чат между соответствующими категориями.

Если категория «Закрытые группы» не настроена на платформе — появится сообщение «Подкатегория «Закрытые группы» не настроена. Обратитесь к администратору.»

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

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

Если поле ввода пустое и в нём установлен курсор, клавиша вверх (↑) переводит пользователя в режим редактирования последнего сообщения, отправленного им в текущем чате, при наличии прав на редактирование. В режиме комментариев в карточке задачи аналогичную функцию выполняет клавиша вниз (↓). Если в поле ввода уже есть хотя бы один символ, клавиши вверх и вниз не переключают режим редактирования и используются для обычного перемещения курсора по тексту.


## Представление категории «Чат»

В представлении категории **Чат** задачи отображаются в виде мессенджера.

Мессенджер делится на две части: слева — список чатов, справа — открытый чат. Ширину списка чатов можно изменить, перетащив разделитель между списком и открытым чатом, — в диапазоне от 300 до 650 пикселей. Заданная ширина сохраняется в браузере.

**Вкладки списка при узкой ширине.** В отличие от ленты сообщений, вкладки списка чатов не собираются в кнопку «Ещё»: полоса остаётся прокручиваемой по горизонтали, и ушедшая за правый край вкладка не видна, пока полосу не сдвинут. Количество папок и длинные названия ничем не ограничены, поэтому убирать вкладки под список здесь нельзя. Ширину панели регулирует разделитель (от 300 до 650 пикселей), и заданное значение сохраняется в браузере.

### Структура и вкладки списка

Левая панель мессенджера содержит вкладки: **Все**, **Личные**, **Группы**, **ИИ** (при включённом ИИ), **Подписка**, **Избранное**. Вкладка **Закрытые** скрыта начиная с v2.268 — закрытые чаты не отображаются ни в одной из вкладок. По умолчанию при входе в раздел открывается вкладка «Все» — независимо от ранее выбранной. Это поведение сохраняется и при переходе из результатов поиска или из мини-поиска.

| Вкладка | Что отображается |
|---|---|
| Все | Действующие закреплённые чаты: групповые, личные, избранные. Любой групповой чат можно убрать из вкладки («Настройки уведомлений» → «Уведомления по правилам задач» в контекстном меню) — он останется в «Группах» |
| Личные | Личные чаты 1-на-1 |
| Группы | Все групповые чаты, в которых пользователь подписчик |
| **ИИ** | Активные AI-сессии пользователя (личные чаты с Анфисой). Показывается только при включённом флаге ИИ на платформе. Закрытые AI-сессии из вкладки исчезают |
| Подписка | Задачи и чаты, на которые пользователь подписан |
| Избранное | Чаты, добавленные в избранное; у каждого чата отображается цвет звёздочки, заданный при добавлении. В списке видны только чаты, к которым у пользователя есть доступ: задачи без доступа в избранное не попадают |
| ~~Закрытые~~ | ~~Закрытые групповые чаты, чаты с уволенными сотрудниками, чаты, из которых пользователь вышел~~ — скрыта с v2.268; вкладка и иконка не отображаются |

![Мессенджер: вкладки (Все, Личные, Группы, Подписка, Избранное) и список чатов](https://help.1forma.ru/help-images/chat/messenger_group_threads-01.png)

#### Системные папки, дополнительные вкладки и личные чаты в ленте

**Системные папки — вкладки-иконки (v2.268).** Вкладки «Подписка», «Избранное» и «ИИ» отображаются **иконками** (без текстовой подписи) — в отличие от текстовых вкладок «Все», «Личные», «Группы». Вкладка «Закрытые» скрыта — закрытые чаты не выводятся в интерфейсе мессенджера.

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

> Вкладка — это фильтрованный список чатов, а не отдельная сущность. Задача может одновременно присутствовать в нескольких вкладках (например, в «Подписке» и в «ИИ», если пользователь подписан на AI-чат).

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

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

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

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

На строке чата в папке-категории показывается то же число непрочитанных, что видит пользователь в ленте этого чата. Бейдж на строке остаётся, даже если сообщение прочитал другой участник, — он сбрасывается, только когда непрочитанные сообщения прочитаны самим пользователем. Число на табе папки и строки с бейджем сходятся: закрытые задачи в счётчик на табе не попадают.

При первом открытии раздел показывает индикатор загрузки; при повторных открытиях список восстанавливается мгновенно из кеша, фоновое обновление обозначается тонкой полосой прогресса. Если ранее пользователь открывал какой-либо чат, при возврате в раздел автоматически открывается последний просмотренный — адресная строка обновляется до URL конкретного чата.

При возврате в раздел список не увеличивается: каждый заход показывает ту же первую страницу чатов, а не дописывает к ней новые строки. Дополнительные строки подгружаются только прокруткой списка.

В период замещения чаты замещаемого пользователя по умолчанию недоступны заместителю.

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

При ответе на p2p-сообщение из ленты поля «Кому» и «Копия» скрыты — получателя изменить нельзя, форма ответа ведёт себя как внутри чата (v2.268+).

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

**Личные папки чатов, правила их наполнения, закрепление внутри папки и ссылка «Поделиться папкой» описаны на отдельной странице — см. «Личные папки чатов».**

### Прикрепление файлов и вложений

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

Вид вложения одинаков во всех местах, где файл прикреплён к переписке — карточка задачи, лента сообщений, чат, письмо. Как выглядит плашка и какие у неё кнопки — в разделе «Как выглядит вложение» на странице [«Файлы»](https://help.1forma.ru/domains/files/business.md).


В форме набора мессенджера изображения добавляются сжатыми по умолчанию — одинаково для обоих пунктов прикрепления, «Файлы» и «Фото или видео». Режим можно поменять у каждого файла отдельно и только до отправки сообщения: правый щелчок по карточке файла открывает меню **«Сжатый файл / Без сжатия»** с текущим выбором, отмеченным галочкой, а у сжатого файла рядом с именем показывается метка **«(Сжатый)»**. В опубликованном сообщении метки нет.

Если в чате выбрано шесть и более файлов и среди них есть изображения, система спрашивает, отправлять ли их сжатыми: «Да» сжимает изображения, «Нет» добавляет их как обычные файлы, а крестик или клик вне окна отменяет добавление этой пачки — набранный текст и ранее добавленные файлы сохраняются.

Меню режима, метка и вопрос о сжатии есть только в чате. В ленте задачи, в карточке задачи, в файловом дополнительном параметре, на Диске и в опубликованных комментариях файлы добавляются и выглядят как раньше: пункт «Файлы» здесь отдаёт оригинал без сжатия.

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

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

1. Нажмите кнопку микрофона — начнётся запись (браузер может запросить доступ к микрофону).
2. Нажмите «Стоп» — аудиофайл прикрепится к сообщению как обычное вложение; при необходимости его можно удалить.
3. Отправьте сообщение обычной кнопкой отправки.

Запись сохраняется в формате m4a или ogg/opus и уходит как обычный аудиофайл-вложение — отдельного отображения у аудиосообщений нет, в ленте они показываются стандартным аудиоплеером.

В чатах запись доступна, если в «Возможностях чата» включена настройка «Аудиосообщения». В ленте комментариев задачи запись доступна всегда, без настройки. «Вложение» здесь — любое: файл с устройства, файл из вложений задачи, файл с Диска и файл, которым поделились с Диска. Во всех случаях добавление вложения переключает кнопку микрофона на кнопку отправки без ввода текста.

### Отправка стикеров

В панели ввода чата рядом с кнопкой выбора эмодзи есть кнопка выбора стикера. Она появляется, когда открыт чат с включённой настройкой «Стикеры» в «Возможностях чата»; если настройка выключена, кнопки нет. В карточке задачи и в тредах кнопки нет.

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

### Отложенная отправка

В панели ввода чата сообщение можно отправить не сразу, а в выбранный момент: у кнопки отправки есть меню с пунктом «Отправить позже», а поставленные в очередь сообщения открываются отдельным списком из поля ввода. Отмена и удаление отложенного сообщения — одна операция: в меню строки один пункт «Удалить». Если запись ещё не ушла в отправку, после удаления она исчезает из списка; если к моменту удаления её уже передали на отправку, интерфейс сообщает, что отменить сообщение нельзя, — удаление не останавливает начатую отправку.

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

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

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

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

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

#### Кнопки прокрутки в углу ленты

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

- **«В конец»** — переносит к последнему сообщению. Появляется, пока последнее сообщение не на экране;
- **«К непрочитанным»** — переносит к первому непрочитанному сообщению. Появляется, пока непрочитанные сообщения остались выше экрана.

Видны обе сразу — «к непрочитанным» над «в конец». Число непрочитанных показано на кнопке «к непрочитанным», если она видна, иначе — на кнопке «в конец».

| Состояние ленты | Какие кнопки видны |
|---|---|
| В конце ленты, непрочитанных выше нет | кнопок нет |
| В конце ленты, выше остались непрочитанные | только «к непрочитанным» |
| Лента выше конца, непрочитанных выше нет | только «в конец» |
| Лента между первым непрочитанным и концом | обе: «к непрочитанным» над «в конец» |

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

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

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

**В обсуждении.** Лента обсуждения внутри чата работает так же — те же кнопки в своём углу и то же правило перехода. Число на кнопке — счётчик непрочитанных сообщений этого обсуждения, равный бейджу обсуждения в ленте чата.

**Порядок отправленного сообщения.** Отправленное сообщение сразу появляется в ленте с индикатором отправки. Если ответ сервера пришёл не сразу — например, из-за загрузки большого файла — и за это время в ленте появились новые сообщения, после ответа отправленное сообщение перемещается на своё место по порядку сообщений; остальные сообщения при этом не переставляются. Так ведут себя лента чата и лента сообщений задачи.

Особенности отображения сообщений (форматирование, реакции, эмодзи-only) описаны в [comments/business.md](https://help.1forma.ru/domains/comments/business.md).

#### Особенности отображения: эмодзи, индикатор набора и черновик

**Сообщения только из эмодзи.** Если сообщение состоит только из эмодзи — одного или нескольких подряд, в том числе через пробел, — оно отображается увеличенным шрифтом для лучшей видимости. Это работает и в стандартном виде чата, и в виде блоков. При цитировании, редактировании и наборе текста размер эмодзи остаётся стандартным.

**Индикатор набора и Анфиса.** Пока собеседник набирает сообщение, отображается строка «Имя печатает…» с анимированными точками. Когда кто-то начинает писать сообщение, для других пользователей над строкой ввода появляется уведомление «ФИО печатает…», где вместо ФИО подставляются имя и фамилия. Индикатор работает в задачах и чатах. Если в чате присутствует [AI-ассистент Анфиса](https://help.1forma.ru/domains/ai/business.md), индикатор расширяется — например, «Анфиса печатает: turn 3...» или «Анфиса печатает: web_search...». Текущее действие Анфисы во время работы показывается живой строкой-статусом прямо в карточке ответа (обновляется на месте), а под ней по мере работы появляются свёрнутые карточки вызванных инструментов — с запросом и результатом. Отдельные оранжевые плашки-статусы над полем ввода, копившиеся стопкой, больше не используются. Сигналы идут с первой секунды обработки: ещё до запуска основного цикла Анфиса сообщает о подготовительных шагах («Изучаю вопрос…» → «Определяю, что нужно для ответа…» → «Ищу в документации и материалах…» → «Готовлю контекст и формирую ответ…»), затем — о ходе работы («Думаю над ответом…», конкретные действия по инструментам, проверка перед отправкой).

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

#### Индикаторы доставки, прочтения и статус прочтения

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

| Индикатор | Обозначение |
|---|---|
| **Одна галочка** (доставлено) | Сообщение успешно отправлено на сервер, но ещё никем не прочитано |
| **Серые тройные галочки** (не все прочитали) | Сообщение прочитано кем-то из адресатов, но не всеми. Не отображается в личных чатах |
| **Синие тройные галочки** (все прочитали) | Сообщение успешно прочитано всеми получателями |

Индикатор прочтения не отображается для сообщений без адресата и для сообщений от других пользователей (отправленных не текущим пользователем).

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

Открытие этого списка заодно сверяет индикатор с фактическими отметками просмотра: если он отставал, он обновляется сразу, без перезагрузки.

**Индикатор обновляется сам.** Пока открыт чат или лента, система следит за актуальностью статуса без участия пользователя:

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

Если собеседник прочитал сообщения «через одно», каждая прочитанная галка обновится отдельно. Перезагружать страницу не нужно.

> Если пользователю отправлено сообщение того типа, по которому у него отключено получение уведомлений «в конверт», сообщение автоматически сразу же помечается как прочитанное, и проставляется текущее время прочтения. Это время может отличаться от реального времени прочтения сообщения данным пользователем.

#### Шаблоны, вид баблов и режим выбора сообщений

**Шаблоны сообщений.** Рядом с полем ввода — кнопка шаблонов; список можно также вызвать вводом `/`. По мере набора результаты фильтруются, выбор клавишами `↑`/`↓`, подтверждение `Enter`. Текст шаблона только подставляется в поле ввода — отправка не выполняется автоматически. В чатах задач список шаблонов фильтруется под категорию чата и обновляется при переходе.

**Вид баблов.** В настройках интерфейса пользователя есть переключатель «Вид чатов» — переключает чат с отображения «как карточка задачи» на формат баблов. На поведение редактирования сообщения в этом режиме см. раздел «Редактирование сообщений и быстрые клавиши».

**Режим выбора сообщений.** Переход в режим выбора активирует чекбоксы рядом с каждым сообщением ленты (мультиселект для пересылки или удаления). Расположение чекбоксов (v2.268+): все чекбоксы выровнены по левому краю ленты (отступ 10px), независимо от стороны бабла. На среднем экране (баблы с разных сторон) и на широком экране (все баблы слева) чекбоксы всегда слева. Ширина блоков баблов учитывает пространство, занятое чекбоксами — при открытом левом сайдбаре баблы не перекрывают чекбоксы и не выходят за границу видимой области.

**Превью изображений в ленте.** Картинка, прикреплённая к сообщению, показывается в пузырьке уменьшенной версией — фон и само изображение берут один и тот же файл, оригинал для этого не запрашивается. Уменьшенная версия создаётся только для JPEG; PNG, GIF и WebP загружаются целиком, потому что при уменьшении они превратились бы в JPEG и потеряли прозрачность и анимацию. При открытии картинки на просмотр показывается полное изображение.

### Поиск по сообщениям и сортировка результатов

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

Найденные чаты и сотрудники выводятся в левой панели одной группой «Чаты и контакты», без отдельных заголовков, в порядке:

1. Активные чаты 1-на-1 с искомым пользователем.
2. Контакты.
3. Прочие чаты.

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

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

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

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

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

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

### Создание личного чата

Способы инициировать личный чат:

1. **Из профиля пользователя** — кнопка «Чат». Если у инициатора нет права подписывать целевого пользователя к задачам (внешний пользователь из другой корневой оргструктуры), появится ошибка; администратор снимает ограничение спецправом «Можно подписывать всем».
2. **Из меню «Сотрудники»** — поиск по части имени, фамилии, оргединицы, email или логина; кнопка отправки сообщения при наведении.
3. **Из поиска в чате** — поиск без учёта раскладки. Если активного чата нет — открывается пустой чат. Первым сообщением **нельзя отправить только файл без текста**.

![Кнопка «Чат» в профиле пользователя для создания личного чата](https://help.1forma.ru/help-images/chat/messenger_create_personal_chat_profile.png)

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

В шапке личного чата рядом с именем — номер задачи-чата (`#12345`) с иконкой копирования. Под именем отображается: статус «В сети» или время последней активности; статус «На видеозвонке», если собеседник в данный момент в ВКС.

### Меню действий и страница «Информация»

Кнопка `…` в правом верхнем углу открытого чата раскрывает меню. Состав пунктов зависит от типа чата (личный/групповой/канал) и текущей вкладки:

| Пункт | Описание |
|---|---|
| Информация | Страница с шапкой (аватар, тип, номер), кнопками управления (Добавить, Встреча, ВКС, Колокольчик, Обсуждения), блоком участников и блоком «Файлы» (см. ниже) |
| Настройки | Боковая панель с настройками чата. **В личных чатах заблокирована** для редактирования |
| Редактировать название | Только групповые чаты. Зависит от прав на редактирование текста задач в категории |
| Изменить аватар | Только групповые и только при наличии права: пункт видят владелец задачи-чата, администратор категории или платформы и обладатель права «Администратор задач» в этой категории. Загрузить изображение или выбрать цвет/иконку из набора. Тот же пункт есть по правой кнопке мыши в списке чатов |
| Избранное | Закрепить чат вверху со звёздочкой |
| Настройки уведомлений | Подменю с двумя режимами: «Уведомления по правилам чатов» — задача ведёт себя как чат и остаётся во вкладке «Все»; «Уведомления по правилам задач» — по правилам задачи (для групповых чатов): задача уходит из вкладки «Все», остаётся доступной в «Группах». Выбор — переключатель: активен ровно один режим, он отмечен галкой. Действует только для текущего пользователя |
| Уведомления | Список из четырёх режимов чата: «Все уведомления», «Без звука», «Только личные», «Отключить всё»; активный отмечен галочкой. Режим «Принудительно» только показывается, выбрать его нельзя |
| Вложения | Окно вложений |
| Отписаться | Покинуть групповой чат или отписаться от задачи, показываемой в чатах. У личного чата кнопки подписки и отписки скрыты по дизайну — вместо них используется пункт «Закрыть чат». Если отписка запрещена сервером (пользователь — заказчик, исполнитель, акцептант подписи или состоит в подписанной группе), пункт остаётся в меню видимым, но неактивным, с показом точной причины блокировки. При отписке от задачи, закреплённой как чат, выводится подтверждение «Убрать из списка чатов?» |
| Закрыть чат | Покинуть личный чат (см. «Закрытие и выход») |
| Конфиденциально | Включить режим, если разрешено в категории |
| Удалить | Удаление чата как задачи; доступно при праве на удаление задач в категории (см. ниже) |

![Меню действий чата: избранное, убрать из чатов, уведомления, аватар](https://help.1forma.ru/help-images/chat/messenger_context_menu-01.png)

**Скопировать ссылку на чат.** В меню `…` в шапке открытого чата и в меню `…` на странице «Информация» есть пункт **«Скопировать ссылку»**. Ссылка ведёт в чат — в представление мессенджера, а не в карточку задачи. Тот же пункт доступен по правой кнопке мыши в списке чатов и в контекстном меню номера задачи у чата: там он обозначен иконкой-скрепкой, а у обычной карточки задачи на его месте остаётся пункт «Поделиться» со ссылкой на задачу.

**Чего нет в меню группового чата.** В меню действий группового чата нет пунктов «Создать копию» и «Перенести» — в чатах они не используются: копирование и перенос — действия карточки задачи, не переписки. Эти пункты доступны в карточке задачи и в МТФ-панели, где то же меню используется в режиме задачи.

**Удаление чата.** Пункт «Удалить» в меню работает так же, как удаление задачи из карточки или МТФ: он показывается только пользователям, у которых есть право на удаление задач в категории чата и выполняются остальные условия удаления. Подтверждение выполняется в общем диалоге «Вы уверены, что хотите удалить задачу?». После удаления чат закрывается.

Страница «Информация» (открывается из меню) содержит: шапку с полным именем чата и аватаром (клик по аватару открывает редактор цвета/иконки, для личных — неактивно), тип чата и номер, кнопки **Добавить** (групповые), **Встреча**, **ВКС**, **Колокольчик** (уведомления), **Обсуждения** (счётчик активных). Под кнопками — **блок участников**: клик открывает окно со списком и ролями (Владелец, Администратор, Модератор), через `…` — назначение роли. Далее — **блок «Файлы»**: список всех файлов из сообщений чата, скрывается если в категории запрещено вложение файлов.

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

В личном чате на эту же страницу ведёт клик по аватару собеседника в шапке чата — меню при этом не открывается. Аватар доступен и с клавиатуры: он получает фокус и срабатывает по Enter.

**Страница «Информация» в личном чате.** В личном чате страница показывает собеседника: аватар, имя, должность и подразделение с номером чата, текущее отсутствие, если оно есть, и ряд кнопок под шапкой: **Календарь** (календарь собеседника, в котором можно назначить встречу), **Видео**, уведомления чата, **Обсуждения** со счётчиком и **кнопка дополнительных действий** `…` — последняя в ряду. Звезда в правом верхнем углу добавляет собеседника в избранное. Ниже выводится карточка профиля собеседника с теми же подвкладками, что на вкладке «Информация» его профиля; по умолчанию карточка свёрнута, целиком её показывает ссылка **«Показать все»** под карточкой — при раскрытии подпись меняется на «Свернуть». Кнопки «Добавить» и блока участников в личном чате нет. Состав меню `…` прежний: **Профиль**, **Поставить задачу**, **Поставить отсутствие**, **Перевоплощение** — при наличии прав — и **Закрыть чат**.

**Кнопка видеозвонка в личном чате открывает меню, а не начинает звонок.** Нажатие на неё открывает то же меню из четырёх пунктов, что и в профиле собеседника: **Личный звонок**, **Войти в персональную конференцию**, **Настройка моей комнаты**, **Скопировать ссылку** — см. [Видеоконференции — бизнес-логика](https://help.1forma.ru/domains/conferences/business.md#запуск-встречи-меню-позвонить-и-вкладка-профиля).

**Где стоит кнопка `…`.** В личном чате она последняя в ряду кнопок под шапкой, рядом с «Обсуждениями»; в верхней панели страницы остаётся только «‹ Информация». В групповом чате наоборот: `…` остаётся в верхней панели страницы, а ряд под шапкой и кнопка видеозвонка работают как раньше.

**Если профиль собеседника недоступен по правам.** Ряд кнопок под шапкой вместе с кнопкой `…` не показывается — остаётся только шапка с данными из участников чата, карточки профиля нет. Это ожидаемое поведение: без доступного профиля недоступны и календарь собеседника, и звонок ему, и обсуждения.

![Страница «Информация» группового чата с кнопками управления](https://help.1forma.ru/help-images/chat/chat_actions_info.png)

В шапке каждого чата по нажатию на **кнопку видеозвонка** можно как присоединиться к конференции, так и запланировать её. Модераторами конференции, запущенной из группового чата, по умолчанию становятся все его подписчики.

Видимость кнопок «Позвонить» и «Пригласить в видеоконференцию» в мини-карточке пользователя, в полном профиле, в поиске контактов, в карточке задачи и в левом меню («Мои звонки и встречи») зависит от **права текущего пользователя на категорию личных чатов** (значение `ChatSubcatId` в системных настройках). Если у группы пользователей отобрать право на создание задач в этой категории — у её участников эти кнопки автоматически скрываются во всех перечисленных зонах. Подробнее о механизме и полном списке зон — в [admin.md](https://help.1forma.ru/domains/chat/admin.md) § «Ограничение прав на коммуникации через `ChatSubcatId`». С 2.268.355 / 2.268.358.

![Баннер активной видеоконференции в шапке чата](https://help.1forma.ru/help-images/chat/chat_vks_banner.png)

### Звонки, встречи и обсуждения

Меню видеоконференции предоставляет доступ к инструментам запуска звонков и планирования встреч прямо из чата.

| Кнопка | Описание |
|---|---|
| Собрать видеоконференцию (групповой чат) / Позвонить (личный чат) | Переход в конференцию текущего чата в текущей вкладке браузера с автоматическим приглашением участников. Перед началом звонка необходимо подтвердить действие |
| Присоединиться | Переход в конференцию без приглашения участников |
| Запланировать | Форма создания календарного события. Поля встречи заполняются автоматически в соответствии с данными чата |
| Настройка комнаты (групповой чат) / Настройка моей комнаты (личный чат) | Настройка режима лобби и установка пароля для конференции |
| Скопировать пароль | Копирование пароля комнаты в буфер обмена. Пункт доступен, если в настройках комнаты задан пароль |
| Копировать ссылку | Копирование ссылки на конференцию в буфер обмена |

Кнопка обсуждений в шапке (рядом — счётчик активных) открывает модальное окно с вкладками:

| Вкладка | Содержимое |
|---|---|
| Все | Все созданные обсуждения чата |
| Активные | Только открытые. ПКМ → «Закрыть обсуждение» |
| Закрытые | Завершённые (серым). ПКМ → «Открыть обсуждение» |

Поиск по названиям обсуждений — в строке вверху окна.

Статус обсуждения синхронизируется между сессиями: если обсуждение закрыли или открыли в другом браузере или у другого участника, в открытом чате пункт меню, поле ввода и строка обсуждения в списке слева обновляются сами, без перезагрузки страницы. Так же срабатывает смена статуса из диалога «Все обсуждения».

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

После создания нового обсуждения сразу открывается оно само; вернуться к чату — клик по его имени в шапке (в личных — клик по имени собеседника).

### Права на управление обсуждениями

Создание и управление обсуждениями (тредами) зависят от настройки чата «Обсуждения» (флаг `isThreadsEnabled`) и роли участника.

- **Владелец, администраторы и модераторы чата** управляют обсуждениями всегда — создают, переименовывают, открывают и закрывают — независимо от того, включена ли настройка обсуждений. Те же права у участника с правом изменять настройки чата и у владельца задачи. Роль учитывается итоговая, в том числе полученная через группу.
- **Подписчики** управляют обсуждениями только при включённой настройке «Обсуждения». При выключенной настройке они не могут создавать обсуждения, менять их название и статус (открыть/закрыть). Переименовать обсуждение подписчик может только если сам является автором его корневого сообщения.
- **Существующие обсуждения** остаются доступными для чтения даже при выключенной настройке — отключение не скрывает уже созданные треды.
- **Удаление обсуждений.** Отдельного права на удаление обсуждения нет: удалить обсуждение можно тогда, когда удаляется каждое входящее в него сообщение по обычному правилу удаления чужих сообщений. Поэтому владелец, администраторы и модераторы группового чата удаляют любое обсуждение, а участник с правом администратора категории — тоже любое. В личном чате и в обычной задаче владелец не может удалить обсуждение, в котором есть ответы других участников; автор удаляет своё обсуждение только пока чужих ответов в нём нет (служебное сообщение о начале обсуждения чужим ответом не считается). Если права не хватает, обсуждение не удаляется частично: операция отклоняется целиком. Что при этом удаляется — в [комментариях](https://help.1forma.ru/domains/comments/business.md).

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

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


### Создание группового чата

Создание — кнопкой над списком вкладок или через «Создать» в панели навигации. При создании указывается название чата и участники (отдельные пользователи или группы — изменение состава группы автоматически меняет участников чата).

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

Под полем ввода названия — счётчик символов с лимитом **128 символов** (обратный отсчёт; при достижении нуля ввод блокируется).

Создав групповой чат с единственным участником (собой), можно получить групповой чат «для себя». Системный чат «Избранное» заводится сам при первом открытии — создавать его вручную не нужно.

Все групповые чаты по умолчанию имеют системный аватар; владелец может загрузить свой или выбрать цвет и иконку из набора через настройки. Если иконка из набора не найдена, показывается заглушка `404`.

### Сортировка списка чатов и превью сообщений

Задачи в списке сортируются по **времени последнего сообщения** (не по дате создания или обновления задачи). Чаты с последними сообщениями отображаются выше.

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

Последнее сообщение отображается в формате однострочного превью:

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

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

**Сворачивание обсуждений.** У чата с активными обсуждениями в строке списка отображается кнопка-шеврон. По умолчанию обсуждения развёрнуты и видны под строкой чата: клик по шеврону сворачивает их, повторный — разворачивает. Сам чат при этом не открывается — для открытия нужно нажать на любую другую часть строки. Список свёрнутых чатов запоминается в текущем браузере и сохраняется между перезагрузками страницы; на другом устройстве или после очистки данных сайта все чаты снова развёрнуты.

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

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

Обычные задачи можно закрепить в списке чатов для быстрого доступа (актуально для мобильного приложения). Способы закрепления:

- Из мессенджера — через контекстное меню
- При создании задачи — если включён режим «Закрепить как чат по умолчанию»
- Из карточки задачи — через окно «Участники задачи»

**В список чатов и Из списка чатов.** Действия по закреплению подписаны «В список чатов» — вместо прежних «Закрепить как чат», «Закрепить всем как чат» и «Добавить в чаты» — и «Из списка чатов» — вместо «Открепить как чат» и «Убрать из чатов». Формулировки едины во всех меню, где эти действия есть. Сами действия не изменились: «В список чатов» закрепляет задачу или чат и подписывает пользователя, «Из списка чатов» снимает закрепление, но подписку сохраняет. В контекстном меню списка чатов этих пунктов нет: закрепление задачи как чата выполняется из карточки задачи и из мессенджера.

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

### Контекстное меню и типичные вопросы

В списке чатов доступно контекстное меню по правой кнопке мыши. Нажатие ПКМ на чат открывает меню с действиями:

- **Открыть в новой вкладке** — открыть чат в отдельной вкладке браузера.
- **Закрепить** — добавляет чат в избранное с жёлтым цветом.
- **Настройки уведомлений** — подменю с двумя режимами: «Уведомления по правилам чатов» — задача ведёт себя как чат и остаётся во вкладке «Все»; «Уведомления по правилам задач» — по правилам задачи (для групповых чатов): задача уходит из вкладки «Все» и остаётся доступной в «Группах». Выбор работает как переключатель — активен ровно один пункт, он отмечен галкой. Настройка действует только для текущего пользователя: у других подписчиков режим и состав папок не меняются.
- **Скопировать ссылку** — копирует прямую ссылку, открывающую чат в мессенджере, а не карточку задачи.
- **Скопировать номер** — скопировать ID задачи.
- **Изменить аватар** — только для групповых чатов и только при наличии права: пункт видят владелец задачи-чата, администратор категории или платформы и обладатель права «Администратор задач» в этой категории. Открывает окно смены аватара — загрузку изображения или выбор цвета и иконки из набора.
- **Отписаться** — для участников чата. Пункт неактивен, если сервер запрещает отписку, и показывает причину; у личного чата вместо него «Закрыть чат».
- **Удалить** — для владельца чата.
- **Присоединиться к ВКС** — пункт появляется, если в чате идёт видеоконференция.

У чата пункт «Скопировать ссылку» есть также в контекстном меню номера задачи — там он обозначен иконкой-скрепкой. В обычной карточке задачи на его месте пункт «Поделиться» со ссылкой на задачу: ссылка на задачу открывает карточку, а не переписку.

Ответы на частые вопросы при работе с чатами:

**«Не могу добавить подписчика в личном чате».** Личный чат не поддерживает добавление участников — это ожидаемое поведение. Для общения с несколькими людьми создайте групповой чат.

**«Не вижу чат в списке».** Возможные причины:
1. Пользователь не подписчик чата
2. Чат закрыт
3. Чат конфиденциальный, и пользователь не подписчик

**«Не вижу пункт „Изменить аватар“ в контекстном меню чата».** Пункт показывается только для групповых чатов и только при наличии права: его видят владелец задачи-чата, администратор категории или платформы и обладатель права «Администратор задач» в этой категории. В личном чате и у пользователя без права пункта нет — это ожидаемое поведение. Клик по аватару чата, когда доступных действий нет, меню не открывает.

## Открытие ленты: позиция и маркер «новые сообщения»

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

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

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

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

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

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

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


### Поведение маркера при появлении новых сообщений

Маркер «новые сообщения» позиционирует ленту **один раз — в момент открытия чата**. После этого новые сообщения (входящие или отправленные самим пользователем) не возвращают скролл к маркеру.

Дальнейшее поведение ленты подчиняется общему правилу прокрутки:
- если пользователь находится в конце ленты, новые сообщения довставляются снизу и видны автоматически;
- если пользователь пролистал ленту вверх (выше конца), его позиция сохраняется, а о новых сообщениях сигнализируют кнопки прокрутки в углу ленты — с числом непрочитанных (см. «Кнопки прокрутки в углу ленты»).

Сам маркер «новые сообщения» остаётся на месте — над первым непрочитанным сообщением на момент открытия чата — и исчезает при следующем открытии после прочтения.


## Выбор адресатов сообщения

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

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

> Если в тексте сообщения добавлено упоминание пользователя через `@`, то при установке курсора в такое упоминание или при его частичном редактировании система повторно открывает список выбора пользователей. Если упоминание удалить или заменить другим пользователем, адресат автоматически удаляется или заменяется в полях «Кому» и «Копия». Правило не применяется к системным тегам «Всем», «Никому» и «Группы».

При вводе имени или фамилии в поля «Кому» и «Копия» система анализирует несколько факторов, чтобы предложить наиболее подходящих собеседников для текущего контекста:

- Первыми в выдаче отображаются люди, которые уже участвуют в переписке, а также те, с кем текущий пользователь общается чаще всего, — эти данные формируются на основе раздела «Коллеги» в профиле. Если среди таких пользователей есть несколько человек с одинаковыми именами, вперёд выходит тот, у кого выше рейтинг общения.
- Далее идут сотрудники из той же основной организационной структуры, что и текущий пользователь (учитывается последний уровень). Приоритет отдаётся полному совпадению введённого запроса с именем сотрудника.
- Сотрудники компании имеют более высокий приоритет в выдаче по сравнению с внештатными пользователями и клиентами — последние всегда находятся в конце списка, если не входят в число коллег или подписчиков задачи.
- Сортировка подстраивается под ситуацию: например, при поиске в конкретном чате подписчики этого чата показываются раньше остальных.

Если в групповом чате выключена настройка «Добавлять других подписчиков», обычный участник по-прежнему видит в полях «Кому» и «Копия» пункт «Всем»: добавить постороннего через адресатов нельзя, а отправить сообщение всем текущим участникам — можно.

> Описанная логика сортировки касается только полей выбора участников в переписке. При назначении исполнителей в задачах сохранён привычный алфавитный порядок.

**Ярлык «Всем» и дополнительные адресаты в шапке сообщения.** В шапке сообщения чата действует то же правило, что и в ленте задачи: сообщение, отправленное «Всем», показывается ярлыком «Всем», а если вместе с тегом указаны другие адресаты — пользователь, которого нет среди подписчиков, группа помимо групп подписчиков или адресат в «Копии», — рядом с ярлыком выводится и этот состав. Свернуть состав до одного ярлыка «Всем» система не даст, пока в сообщении есть такие адресаты. Предел показа имён и ссылки «и ещё N» устроены так же, как в ленте, — [комментарии → Адресация сообщений](https://help.1forma.ru/domains/comments/business.md).

## Подсказки ИИ на сообщения-вопросы

Если сообщение помечено как вопрос — у него есть адресат, которому нужен ответ, — ассистент [Анфиса](https://help.1forma.ru/domains/ai/business.md) готовит 1–3 готовых варианта ответа. Получатель вопроса видит их прямо под этим сообщением: типовой ответ не нужно набирать, достаточно выбрать подходящий вариант.

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

Подсказки появляются, когда одновременно выполнены условия:

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

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

**Срок жизни и снятие.** Подсказка живёт два часа: если ответ за это время не отправлен, она исчезает. После публикации ответа подсказки к этому вопросу снимаются.

**Ручной запрос.** Подсказки можно запросить из контекстного меню сообщения — пункт «Анфиса, предложи ответ». Он доступен на любом сообщении, в том числе на чужом вопросе и на сообщении самой Анфисы.

Подсказки работают в ленте сообщений и в чате; в МТФ-панели они не отображаются.

## Опросы в чате

> Опросы доступны начиная с версии 2.265 «Цефей».

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

Чтобы создать опрос, воспользуйтесь **кнопкой прикрепления** в блоке создания сообщения и выберите опцию «Создать опрос».

![Меню прикрепления с пунктом «Создать опрос»](https://help.1forma.ru/help-images/chat/chat_polls_create.png)

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

### Создание опроса

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

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

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

### Голосование и результаты

![Опрос в чате с вариантами ответов](https://help.1forma.ru/help-images/chat/chat_polls_2.png)

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

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

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

Для любого публичного опроса, в котором уже проголосовали другие пользователи, отображается ссылка **«Проголосовали X человек»**. При нажатии на неё открывается модальное окно, где варианты ответов представлены в виде вкладок. Выбрав вкладку, можно увидеть список пользователей, отдавших за этот вариант свой голос.

Пользователь может снять свой ранее отданный голос и проголосовать заново. Для отмены голоса в опросе с одним вариантом ответа достаточно повторно нажать на выбранный пункт. В опросах с несколькими вариантами ответов отменить голос можно через контекстное меню (ПКМ), выбрав пункт «Отменить свой голос». Голос можно отменить в любой момент с момента ответа на опрос.

## Закреплённые сообщения

В чатах поддерживается закрепление важных сообщений для всех участников чата. Закреплённые сообщения отображаются в специальной панели под шапкой чата и в отдельном списке закреплённых сообщений.

Закреплять и откреплять сообщения могут:

- владелец чата;
- администратор чата;
- модератор чата;
- участник чата, если в настройках включена опция **«Закреплять сообщения для всех»**.

Закрепление и открепление выполняется из контекстного меню сообщения или через меню по кнопке с тремя точками. После закрепления в чате публикуется системное сообщение о том, кто выполнил закрепление. Такое сообщение не отправляет уведомления участникам.

У закреплённого сообщения отображается специальная иконка. Под шапкой чата выводится панель закреплённых сообщений. В панели может отображаться:

- превью вложения, если оно есть у сообщения;
- текст сообщения;
- счётчик, если закреплено несколько сообщений.

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

Слева от подписи показывается превью: фотография, видео или обложка статьи — картинкой 44×44 (первый подходящий файл), опрос и файл без фотографии — заглушкой 36×36 с иконкой типа. У статьи без обложки превью нет.

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

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

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

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

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

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

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

Если сообщение закреплено внутри треда чата, оно отображается как закреплённое только внутри этого треда и не попадает в общий список закреплённых сообщений основного чата.


