ipr.ipr.add
Scope:
iprКто может вызывать: Актор создаёт карточку себе (
userId == текущий пользователь) либо может управлять сотрудником (canManageEmployee: руководитель по оргструктуре, участник группы ИПР/HR, администратор портала). Подробнее: Роли и права доступа
Создаёт карточку ИПР или ПИС для сотрудника (аналог создания из карточки сотрудника в интерфейсе).
HTTP: POST
Побочные эффекты: Создаёт элемент инфоблока ИПР, привязывает компетенции, может создавать элементы «компетенция в ИПР».
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
userId |
int |
да | ID сотрудника, для которого создаётся карточка |
managerId |
int |
да | ID руководителя, должен отличаться от userId |
competenceIds |
int[] |
да | ID компетенций каталога (минимум одна) |
type |
string |
нет | IPR | PIS (без учёта регистра). По умолчанию — тип шаблона (если указан templateId) или IPR |
templateId |
int |
нет | ID шаблона программы, из которого создаётся карточка |
title |
string |
нет | Название, максимум 255 символов. По умолчанию — название шаблона (если задан templateId) |
deadline |
string |
нет | Дедлайн в формате YYYY-MM-DD. Если не задан — вычисляется из term |
term |
int |
нет | Срок в месяцах (для IPR) при отсутствии deadline. По умолчанию — значение по умолчанию из справочника периодов модуля |
sendBossAgreement |
bool |
нет | Требовать согласование руководителем. По умолчанию true |
positionId |
int |
нет | Текущая должность сотрудника |
targetPositionId |
int |
нет | Целевая должность |
nextTemplateId |
int |
нет | Шаблон следующей программы после завершения |
observers |
int[] |
нет | ID наблюдателей карточки |
targetFunction |
string |
нет | Целевая функция (свободный текст) |
competenceDeadlines |
object |
нет | Индивидуальные дедлайны по компетенциям: { "<competenceId>": "YYYY-MM-DD" } (иной формат — VALIDATION_ERROR). Компетенции без явного значения получают общий дедлайн карточки |
competenceRunOptions |
object |
нет | Развивающие действия по компетенциям: { "<competenceId>": { "<type>_<id>": { ... } } }. Ключ действия строго <type>_<id> (допустим дефис), иначе VALIDATION_ERROR. В записи действия сохраняются только поля type, id, selected (по умолчанию true), required, recommended, custom, title (без HTML, до 255 символов), dateSelected / date / dateFromCompetence (дата YYYY-MM-DD или в формате сайта, иначе VALIDATION_ERROR), eventId, courseTests ({ "<testId>": { ID, selected, dateSelected, dateFromCompetence } }); прочие поля отбрасываются. Для записей event_<id> с eventId > 0 дата проведения проверяется до создания карточки: она должна входить в даты проведения мероприятия каталога <id>, быть активной и не удалённой; прошедшая дата проведения — только администратор |
competenceGoals |
object |
нет | Цели по компетенциям: { "<competenceId>": "текст" }. HTML удаляется, пустые значения отбрасываются, максимум 4000 символов на цель (иначе VALIDATION_ERROR) |
Создание карточки себе. Обычный сотрудник (не привилегированный и не собственный руководитель) может создать карточку для себя только так же, как в интерфейсе кабинета: он должен входить в группы, разрешённые опцией модуля access_to_ipr (для IPR) или access_to_pis (для PIS); для PIS дополнительно должна быть включена опция use_pis. Иначе — PERMISSION_DENIED.
sendBossAgreement и прочие булевы значения принимаются как true / 1 / "Y" / "true".
Возвращаемые данные
Полная карточка — та же форма, что у ipr.ipr.get.
Обработка ошибок
Справочник кодов: error-codes.md.
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
VALIDATION_ERROR |
Не передан обязательный параметр, managerId == userId, некорректный deadline/type, title длиннее 255 символов, цель длиннее 4000 символов, ключ действия в competenceRunOptions не вида <type>_<id> или дата действия некорректна; details.reason = date_not_in_event — eventId в competenceRunOptions не дата проведения мероприятия |
NOT_FOUND |
Сотрудник, руководитель или templateId не найдены; details.reason = date — дата проведения из competenceRunOptions не найдена или удалена |
PERMISSION_DENIED |
Нет прав создавать карточку для указанного userId; прошедшая дата проведения в competenceRunOptions не от администратора; при создании себе (не руководителем и не привилегированным) — тип программы не разрешён настройками модуля |
IPR_ALREADY_EXISTS |
У сотрудника уже достигнут лимит активных программ |
INTERNAL_ERROR |
Внутренняя ошибка сервера / не удалось создать карточку |
Пример запроса (POST)
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/ipr.ipr.add.json"
-H "Content-Type: application/json"
-H "Accept: application/json"
--data '{
"userId": 15,
"managerId": 1,
"competenceIds": [1049, 1051],
"type": "IPR",
"deadline": "2026-12-30",
"sendBossAgreement": true,
"observers": [8],
"competenceDeadlines": {
"1049": "2026-09-30"
}
}'
Пример ответа
{
"result": {
"result": {
"id": 4201,
"title": "ИПР: Наумова Алиса",
"status": "NEW",
"type": "IPR",
"userId": 15,
"managerId": 1
},
"total": null,
"next": null,
"error": null
}
}