Для AI-агентов: markdown этой страницы — /docs-content/workday/work-reports/update.md индекс документации — /llms.txt
Обновить рабочий отчёт
PATCH /v1/workday/work-reports/:id
Меняет в рабочем отчёте сотрудника переданные поля, не трогая остальные.
Требуется скоуп timeman. Битрикс24 проверяет права владельца учётных данных. Ключ READONLY может читать отчёты, запись запрещена.
Параметры
| Параметр | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
id (path) |
integer | да | — | ID отчёта. Список: GET /v1/workday/work-reports |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
reportText |
string | null | нет | Текст отчёта. В ответе — report и reportPlain. Пустая строка очищает текст |
reportExtended |
string | null | нет | Дополнительный текст отчёта. В ответе — reportExtended. Пустая строка очищает текст |
plansText |
string | null | нет | Планы. В ответе — plans. Пустая строка очищает планы |
type |
string | null | нет | Тип отчёта: REPORT, AI_REPORT, ROBOT_REPORT, AI_DAY_PLAN или ROBOT_DAY_PLAN. Другое значение сохраняется как REPORT |
dateFrom |
string | null | нет | Начало периода отчёта в формате ISO 8601 с часовым поясом. Время отбрасывается, хранится дата |
dateTo |
string | null | нет | Конец периода отчёта в том же формате. Время отбрасывается, хранится дата |
tasks |
array | null | нет | Задачи в отчёте. Новый массив заменяет список целиком, пустой — очищает его |
tasks[].id |
integer | да | ID задачи. Список: GET /v1/tasks |
tasks[].time |
number | нет | Время по задаче в секундах. Дробная часть отбрасывается |
tasks[].title |
string | нет | Название задачи в отчёте |
events |
array | null | нет | События календаря в отчёте. Новый массив заменяет список целиком, пустой — очищает его |
events[].id |
integer | да | ID события. Список: GET /v1/calendar-events |
events[].ownerId |
integer | нет | ID владельца события. Список: GET /v1/users |
events[].title |
string | нет | Название события в отчёте |
Поле, которого нет в теле, и поле со значением null оставляют прежнее значение. Нужно хотя бы одно поле со значением: пустое тело или одни null возвращают 400 INVALID_PARAMS.
Примеры
curl — личный ключ
curl -X PATCH https://vibecode.bitrix24.tech/v1/workday/work-reports/169 \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "reportText": "Updated report" }'
curl — OAuth-приложение
curl -X PATCH https://vibecode.bitrix24.tech/v1/workday/work-reports/169 \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "reportText": "Updated report" }'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/workday/work-reports/169', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
reportText: 'Updated report',
}),
})
const { data } = await res.json()
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/workday/work-reports/169', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
reportText: 'Updated report',
}),
})
const { data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | true при успешном обновлении |
data |
object | Обновлённый отчёт. Все поля — Поля отчёта |
Пример ответа
Показаны основные поля отчёта. Полный список — Поля отчёта:
{
"success": true,
"data": {
"id": 169,
"userId": 101,
"active": false,
"reportType": "day",
"reportDate": "2026-10-06T20:25:34.000Z",
"dateFrom": "2026-10-06T21:00:00.000Z",
"dateTo": "2026-10-06T21:00:00.000Z",
"report": "Updated report",
"type": "REPORT",
"mark": "N",
"approve": "N"
}
}
Пример ответа при ошибке
422 — новый период пересекается с другим отчётом сотрудника:
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "Period overlaps with another report",
"b24Code": "PERIOD_OVERLAP"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_PARAMS |
В id не положительное целое число, в теле нет ни одного поля со значением, у поля неверный тип, дата без часового пояса или в теле есть неизвестное поле, например userId или files |
| 404 | ENTITY_NOT_FOUND |
Отчёта с таким id нет |
| 403 | BITRIX_ACCESS_DENIED |
Отчёт другого сотрудника, и у владельца учётных данных нет прав в Битрикс24 менять отчёты этого сотрудника |
| 422 | BITRIX_ERROR |
Новый период пересекается с другим отчётом сотрудника, в ответе b24Code равен PERIOD_OVERLAP |
| 422 | BITRIX_ERROR |
Битрикс24 отказал в операции по другой причине |
| 409 | TIMEMAN_MODULE_NOT_ENABLED |
Учёт рабочего времени недоступен на портале |
| 502 | BITRIX_UNAVAILABLE |
Битрикс24 недоступен или вернул ответ неожиданной формы |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | TOKEN_MISSING |
Ключ приложения передан без токена сессии в Authorization: Bearer |
| 401 | INVALID_SESSION |
Токен сессии неверный или истёк |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ READONLY, изменять отчёты нельзя |
| 403 | SCOPE_DENIED |
У ключа нет скоупа timeman |
| 429 | RATE_LIMITED |
Превышен общий лимит запросов |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Свой отчёт сотрудник может изменить сам. Прав руководителя для этого не нужно.
- Сданный отчёт тоже можно изменить. Он остаётся сданным,
markиapproveне меняются. - Пересекающийся период не сдвигается. При создании отчёта начало такого периода переносится на следующий день после пересекающегося отчёта, а при обновлении запрос отклоняется.
- Ключи задач и событий в ответе — в верхнем регистре. В
tasksиeventsответаidприходит какID,title— какTITLE, аtimeу задач — какTIME.