## Форма задачи

`GET /v1/chats/:dialogId/task-form`

Готовит данные формы создания задачи из чата, а саму задачу не создаёт: форму заполняет и сохраняет пользователь в Битрикс24.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|----------|
| `dialogId` (path) | string | да | ID диалога: `chat123` для группового чата, ID пользователя для личного, `me` — чат с самим собой. `chat123` — поле `id` строки [последних диалогов](/docs/chats/discovery/recent), ID пользователя — из [списка пользователей](/docs/entities/users/list) |

Параметров запроса нет. `messageId` в запросе отклоняется с `400` — форма по сообщению описана на странице [Форма задачи для сообщения](/docs/chats/service/task-form-message).

## Примеры

### curl — личный ключ

```bash
curl "https://vibecode.bitrix24.tech/v1/chats/chat42/task-form" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth-приложение

```bash
curl "https://vibecode.bitrix24.tech/v1/chats/chat42/task-form" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — личный ключ

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/chat42/task-form', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data } = await res.json()
console.log('Форма:', data.link, 'ответственный:', data.params.responsibleId)
```

### JavaScript — OAuth-приложение

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/chat42/task-form', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data } = await res.json()
console.log('Форма:', data.link)
```

## Поля ответа

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | Всегда `true` при успехе |
| `data` | object | Данные формы |
| `data.link` | string | Относительная ссылка на форму создания задачи в Битрикс24: чтобы открыть форму, добавьте к ней адрес Битрикс24 |
| `data.params` | object | Поля формы, состав зависит от чата — см. абзац после таблицы |
| `data.params.responsibleId` | number | Ответственный — вызывающий пользователь |
| `data.params.imChatId` | number | ID чата |
| `data.params.auditors` | string | Наблюдатели — ID участников чата через запятую, кроме вызывающего, не больше 50. У чата группы или проекта наблюдателей нет |
| `data.params.groupId` | number \| null | ID группы или проекта — у чата группы или проекта |
| `data.params.isTasksV2` | boolean | `true` — в Битрикс24 включены задачи нового вида. Тогда в ответе есть поля ниже |
| `data.params.entityId` | number | ID чата |
| `data.params.subEntityId` | null | ID сообщения. У формы для чата всегда `null` |
| `data.params.taSec`, `data.params.taEl` | string | Метки источника для аналитики Битрикс24 |
| `data.params.description` | null | Описание задачи. У формы для чата всегда `null` |

Состав `params` зависит от чата и настроек Битрикс24: у чатов открытых линий есть привязка к CRM, у задач прежнего вида нет полей `isTasksV2` и ниже.

## Пример ответа

```json
{
  "success": true,
  "data": {
    "link": "/company/personal/user/1/tasks/task/edit/0/?ta_sec=chat&ta_el=chat_context_menu",
    "params": {
      "responsibleId": 1,
      "imChatId": 42,
      "auditors": "4",
      "isTasksV2": true,
      "entityId": 42,
      "subEntityId": null,
      "taSec": "chat",
      "taEl": "chat_context_menu",
      "description": null,
      "groupId": null
    }
  }
}
```

## Пример ответа при ошибке

400 — передан `messageId`:

```json
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Query parameter `messageId` is not accepted by GET /v1/chats/:dialogId/task-form: the task form of a message is POST /v1/chats/messages/:messageId/task-form."
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 400 | `INVALID_PARAMS` | Передан параметр запроса — операция их не принимает |
| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов Битрикс24 |
| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `im` |
| 403 | `WRITE_BLOCKED_READONLY_KEY` | Ключ работает только на чтение: вызов может сделать владельца ключа участником чата |
| 404 | `ENTITY_NOT_FOUND` | Битрикс24 вернул «не найдено», код портала — в `error.b24Code` |
| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку, код портала — в `error.b24Code`. `TASK_ACCESS_ERROR` — нет доступа к чату, `TASKS_NOT_INSTALLED` — модуль задач не установлен |
| 502 | `ME_ALIAS_RESOLUTION_FAILED` | Не удалось определить текущего пользователя для `me` |
| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен или вернул ошибку сервера |

Полный список общих ошибок API — [Ошибки](/docs/errors).

## Смотрите также

- [Форма задачи для сообщения](/docs/chats/service/task-form-message)
- [Форма потока](/docs/chats/service/flow-form)
- [Сообщения вокруг сообщения](/docs/chats/messages/context)
- [Служебные методы](/docs/chats/service)
