ipr.ipr.update
Scope:
iprКто может вызывать: Пользователь с
canEditна карточке (обычно владелец/руководитель) либо привилегированный (admin/hr). Сменаstatusдоступна только привилегированным. Подробнее: Роли и права доступа
Изменяет поля существующей карточки ИПР/ПИС. Передаются только те поля, которые нужно изменить.
HTTP: POST
Побочные эффекты: Изменяет элемент инфоблока ИПР; при competenceIds — привязывает новые компетенции каталога к карточке (существующие привязки не удаляются).
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
id |
int |
да | ID карточки |
title |
string |
нет | Название, 1..255 символов |
deadline |
string |
нет | Дедлайн YYYY-MM-DD; пустая строка снимает дедлайн |
managerId |
int |
нет | Новый руководитель |
status |
string |
нет | Новый статус (только для привилегированных — см. ниже) |
nextTemplateId |
int |
нет | Шаблон следующей программы |
observers |
int[] |
нет | Полный новый список наблюдателей (заменяет текущий) |
competenceIds |
int[] |
нет | ID компетенций каталога, которые нужно добавить в карточку. Уже привязанные компетенции пропускаются, остальные привязки не трогаются |
Про параметр status
Свободная смена status через update разрешена только admin/hr — для сотрудников и руководителей переходы статуса идут через отдельные методы: ipr.ipr.complete, ipr.ipr.approve, ipr.ipr.reject, ipr.ipr.reopen. Допустимые значения — XML_ID из ipr.ipr.status.list: NEW, SOGL, WORK, SOGL_RES, FINISHED.
Если ни одно поле, ни competenceIds не переданы — метод возвращает текущую карточку без изменений.
Возвращаемые данные
Полная карточка — та же форма, что у ipr.ipr.get.
Обработка ошибок
Справочник кодов: error-codes.md.
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
VALIDATION_ERROR |
Некорректные значения полей (title, deadline, managerId, status) |
NOT_FOUND |
Карточка не найдена, либо (при competenceIds) компетенция каталога не найдена |
PERMISSION_DENIED |
Карточка недоступна для редактирования, либо смена status вызвана не привилегированным пользователем |
INTERNAL_ERROR |
Внутренняя ошибка сервера |
Пример запроса (POST)
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/ipr.ipr.update.json"
-H "Content-Type: application/json"
-H "Accept: application/json"
--data '{
"id": 4201,
"deadline": "2027-01-15",
"observers": [8, 14]
}'
Пример ответа
{
"result": {
"result": {
"id": 4201,
"deadline": "2027-01-15",
"observers": [8, 14],
"status": "WORK"
},
"total": null,
"next": null,
"error": null
}
}