Для 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 — личный ключ

Terminal
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-приложение

Terminal
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 — личный ключ

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-приложение

javascript
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 Обновлённый отчёт. Все поля — Поля отчёта

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

Показаны основные поля отчёта. Полный список — Поля отчёта:

JSON
{
  "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 — новый период пересекается с другим отчётом сотрудника:

JSON
{
  "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.

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