Общие сведения
Надёжность и безопасность
Покупка лицензии
Начало работы
Роли в системе
Проекты
Концепции
Компоненты
Инструкции
Задачи
Финансы
Ресурсы
Таймшиты
Клиенты
Вики
Затраты
Отчёты и аналитика
Типы отчётов
Тип отчёта «Акты»
Тип отчёта «Баланс отсутствий»
Тип отчёта «Бронирование»
Тип отчёта «Биллинг»
Тип отчёта «Версии проектов»
Тип отчёта «Задачи»
Тип отчёта «Затраты»
Тип отчёта «Заявки на затраты»
Тип отчёта «Заявки на отсутствия»
Тип отчёта «История ставок пользователей»
Тип отчёта «Запросы ресурсов»
Тип отчёта «Навыки пользователей»
Тип отчёта «Пользователи»
Тип отчёта «Проводки»
Тип отчёта «Ресурсный план»
Тип отчёта «Ресурсный план (по версиям)»
Тип отчёта «Проекты»
Тип отчёта «Сертификаты пользователей»
Тип отчёта «Счета»
Тип отчёта «Счета (строки)»
Тип отчёта «Таймшиты»
Тип отчёта «Таймшиты детально»
Тип отчёта «Финансы»
Тип отчёта «Структура работ»
Тип отчёта «Центры затрат проектов»
Тип отчёта «Задания воркфлоу»
Тип отчета Клиенты
Тип отчета «Контакты»
Тип отчёта «Сделки»
Тип отчёта «История состояний сделок»
Тип отчёта «Взаимодействия»
Использование отчётов
Группировка данных источника
Группировка данных в отчёте
Типы виджетов
Общие отчёты и шаблоны
Настройка отчёта
Экспорт отчётов
Пользовательские настройки отчёта
Вычисляемые поля
Особые колонки отчётов с временными рядами
Использование панелей мониторинга
Публикация панелей
FAQ
Фильтры источников данных
Настройка и администрирование
Типовой порядок настройки системы
Язык формул и выражений
Язык шаблонов
On-premises
API
История изменений
Термины и определения

Обновление записи

Обновлено: 21.06.2026

Назначение

Обновление записи позволяет изменить существующую сущность.

Для этого используется HTTP-метод PATCH с передачей изменяемых полей в теле запроса.

Обновляются только переданные свойства. Остальные значения сохраняются без изменений.

Базовый запрос

Например, обновление названия и дат проекта:

PATCH https://api.timetta.com/odata/Projects('45eb27e2-161e-4eeb-9b56-72eaea30511d')
Content-Type: application/json

Тело запроса:

{
  "name": "СпецЭкоСервис - Пресейл (обновлено)",
  "startDate": "2025-11-01",
  "endDate": "2025-12-31"
}

Если запрос выполнен успешно, API возвращает код:

  • 200 OK
  • 204 No Content

Конкретный формат ответа зависит от сущности и операции.

Частичное обновление

PATCH поддерживает частичное обновление.

Например, если необходимо изменить только название:

{
  "name": "Новое название проекта"
}

В этом случае остальные поля останутся без изменений.

Примечание

Рекомендуется передавать только те поля, которые действительно изменяются.

Обновление связанных сущностей

Для изменения ссылок на связанные объекты используются идентификаторы.

Например:

{
  "managerId": "04f9aa6d-4918-4221-bcaf-f9703cc63959"
}

Передача вложенных объектов вместо идентификаторов не поддерживается.

Некорректный пример:

{
  "manager": {
    "id": "04f9aa6d-4918-4221-bcaf-f9703cc63959"
  }
}

Для обновления связей необходимо использовать ключевые поля.

Обновление агрегатов с дочерними коллекциями

Для агрегатных сущностей допускается обновление дочерних коллекций.

Такие свойства в описании сущности имеют тип метамодели CollectionProperty.

Например, сущность ExpenseRequest может содержать коллекцию lines.

Поведение зависит от переданного значения:

Свойство отсутствует или равно null

Коллекция не изменяется.

Пример:

{
  "name": "Командировка в офис клиента",
  "lines": null
}

Или:

{
  "name": "Командировка в офис клиента"
}

В обоих случаях текущий состав строк останется без изменений.

Передан пустой массив

Коллекция будет очищена.

Пример:

{
  "lines": []
}

Все дочерние элементы будут удалены.

Передан массив элементов

Коллекция будет полностью обновлена.

Пример:

{
  "lines": [
    {
      "name": "Авиабилеты",
      "amount": 18000
    },
    {
      "name": "Проживание",
      "amount": 26000
    }
  ]
}

Текущий состав дочерней коллекции будет заменён переданным.

Важно

При передаче дочерней коллекции выполняется полная синхронизация состава. Если требуется сохранить существующие элементы, их необходимо передавать повторно.

Обработка ошибок

Если запись не найдена:

  • 404 Not Found

Если переданы некорректные данные:

  • 400 Bad Request

Если отсутствует или истёк токен доступа:

  • 401 Unauthorized

Если недостаточно прав:

  • 403 Forbidden

Если нарушены бизнес-правила:

  • 500 Internal Server Error

Пример ошибки:

{
  "error": {
    "code": "validation_error",
    "message": "Project end date must be greater than start date",
    "details": {}
  }
}

Рекомендации

При обновлении сущностей рекомендуется:

  • использовать PATCH вместо полной замены объекта;
  • передавать только изменяемые поля;
  • использовать идентификаторы для связанных сущностей;
  • внимательно обновлять дочерние коллекции агрегатов;
  • учитывать, что пустой массив очищает коллекцию;
  • учитывать, что null не изменяет коллекцию.

Содержание

Назначение Базовый запрос Частичное обновление Обновление связанных сущностей Обновление агрегатов с дочерними коллекциями Свойство отсутствует или равно null Передан пустой массив Передан массив элементов Обработка ошибок Рекомендации
Ничего не найдено

Перейти на русскую версию?