[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Ftasks\u002Ftime\u002Fcreate":3,"docs-tabs-entities\u002Ftasks\u002Ftime\u002Fcreate":6},{"content":4,"lastmod":5},"\n## Добавить запись учёта времени\n\n`POST \u002Fv1\u002Ftasks\u002F:taskId\u002Ftime`\n\nСоздаёт новую запись учёта времени для задачи. Обязательное поле — `seconds`; комментарий и автор передаются опционально.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `taskId` (path) | number | да | ID задачи |\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|---------|\n| `seconds` | number | ★ | Длительность в секундах |\n| `comment` | string | | Комментарий к записи. Записывается в `COMMENT_TEXT` |\n| `userId` | number | | ID автора. По умолчанию — пользователь API-ключа. Передавайте только существующие ID сотрудников (`GET \u002Fv1\u002Fusers`) — см. «Известные особенности». |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftasks\u002F289\u002Ftime\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"seconds\": 1800,\n    \"comment\": \"Подготовка черновика\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftasks\u002F289\u002Ftime\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"seconds\": 1800,\n    \"comment\": \"Подготовка черновика\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftasks\u002F289\u002Ftime', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    seconds: 1800,\n    comment: 'Подготовка черновика',\n  }),\n})\n\nconst { success, data } = await res.json()\nconsole.log('ID новой записи:', data.id)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Ftasks\u002F289\u002Ftime', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    seconds: 1800,\n    comment: 'Подготовка черновика',\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data.id` | number | Идентификатор созданной записи. Используйте его для `GET` \u002F `PATCH` \u002F `DELETE` |\n\n## Пример ответа\n\nHTTP 201 Created:\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 161\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — не передан обязательный `seconds`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_PARAMS\",\n    \"message\": \"Required: seconds (number)\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `MISSING_PARAMS` | Не передано поле `seconds` |\n| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку (например, родительская задача недоступна) |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `task` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Bitrix24 не проверяет существование `userId`.** Метод `task.elapseditem.add` сохраняет запись с любым значением `userId` — даже несуществующим — и возвращает `201`. Но такую «запись-призрак» затем нельзя ни прочитать, ни обновить, ни удалить через карточные методы: `GET` \u002F `PATCH` \u002F `DELETE \u002Fv1\u002Ftasks\u002F:taskId\u002Ftime\u002F:itemId` вернут `422` (`512\u002FTE\u002FITEM_NOT_FOUND_OR_NOT_ACCESSIBLE`). Она остаётся видна только в списках (`GET \u002Fv1\u002Ftasks\u002F:taskId\u002Ftime`, `GET \u002Fv1\u002Ftask-time`) и засоряет отчёты без возможности очистки через API. Передавайте только реальные ID сотрудников из [`GET \u002Fv1\u002Fusers`](\u002Fdocs\u002Fentities\u002Fusers).\n\n**Ответ — только `id`, без остальных полей.** В отличие от создания задачи или комментария, метод возвращает только идентификатор. Чтобы получить полную запись с автогенерированными `MINUTES`, `SOURCE`, `CREATED_DATE`, `DATE_START`, `DATE_STOP` — сделайте [`GET \u002Fv1\u002Ftasks\u002F:taskId\u002Ftime\u002F:itemId`](.\u002Fget.md).\n\n## Смотрите также\n\n- [Получить запись](.\u002Fget.md) — прочитать только что созданную запись со всеми полями\n- [Список записей](.\u002Flist.md) — все записи задачи\n- [Обновить запись](.\u002Fupdate.md) — изменить длительность или комментарий\n- [Удалить запись](.\u002Fdelete.md) — снять запись\n- [Задачи](\u002Fdocs\u002Fentities\u002Ftasks) — родительская сущность\n","2026-06-18",{}]