
## Обновить комментарий

`PATCH /v1/tasks/:taskId/comments/:id`

Изменяет текст существующего комментария задачи. Доступно только на порталах со старой карточкой задачи: на новой карточке метод возвращает `410 GONE` с пояснением.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|---------|
| `taskId` (path) | number | да | ID задачи |
| `id` (path) | number | да | ID комментария |

## Поля запроса (body)

| Поле | Тип | Обяз. | Описание |
|------|-----|:-----:|---------|
| `message` | string | ★ | Новый текст комментария, до 65 535 символов |

## Примеры

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

```bash
curl -X PATCH "https://vibecode.bitrix24.tech/v1/tasks/289/comments/36559" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Уточнил формулировку в комментарии."
  }'
```

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

```bash
curl -X PATCH "https://vibecode.bitrix24.tech/v1/tasks/289/comments/36559" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Уточнил формулировку в комментарии."
  }'
```

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

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/289/comments/36559', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    message: 'Уточнил формулировку в комментарии.',
  }),
})

const { success, data, error } = await res.json()
if (res.status === 410) console.log('Новая карточка — обновление недоступно:', error.message)
```

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

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/289/comments/36559', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    message: 'Уточнил формулировку в комментарии.',
  }),
})

const { success, data, error } = await res.json()
```

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

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | `true` при успешном обновлении на старой карточке |
| `data.id` | number | Идентификатор обновлённого комментария |

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

Старая карточка — обновление применилось:

```json
{
  "success": true,
  "data": {
    "id": 36559
  }
}
```

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

410 — новая карточка задачи (метод недоступен):

```json
{
  "success": false,
  "error": {
    "code": "GONE",
    "message": "Bitrix24 disabled update/delete for task comments in the new task card. To remove a comment, delete the source task or ask a portal admin to remove the message via the chat UI.",
    "hint": "Verified against apidocs.bitrix24.ru on 2026-05-09 — the modern task-chat API accepts only new messages, no edit or delete."
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 400 | `INVALID_PARAMS` | `taskId` или `id` не являются положительными целыми |
| 410 | `GONE` | Задача создана на новой карточке — обновление комментария на стороне Битрикс24 недоступно |
| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `task` |
| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |

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

## Известные особенности

**Альтернатива для новой карточки.** Способов программно изменить отправленный комментарий нет. Если содержимое критично — удалите задачу целиком ([`DELETE /v1/tasks/:id`](/docs/entities/tasks/delete)) и создайте новую, либо попросите администратора портала удалить сообщение через интерфейс чата.

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

- [Получить комментарий](./get.md)
- [Создать комментарий](./create.md)
- [Удалить комментарий](./delete.md)
- [Задачи](/docs/entities/tasks)
