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
          }
        }
        

См. также

Предыдущая
Следующая