Для AI-агентов: markdown этой страницы — /docs-content/entities/tasks/checklist-actions/move-before.md индекс документации — /llms.txt
Переместить пункт перед другим
POST /v1/tasks/:taskId/checklist/:itemId/move-before
Перемещает пункт чек-листа задачи и ставит его перед другим пунктом.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
ПараметрtaskId (path) |
Типnumber | Обяз.да | ОписаниеID задачи, целое положительное число. Список: GET /v1/tasks |
ПараметрitemId (path) |
Типnumber | Обяз.да | ОписаниеID пункта, который перемещается, целое положительное число. Список: GET /v1/tasks/:taskId/checklist |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
ПолеbeforeItemId |
Типnumber | Обяз.да | ОписаниеID пункта, перед которым встанет пункт itemId, целое положительное число. Список: GET /v1/tasks/:taskId/checklist — он отдаёт ID строкой, например "276", а здесь нужно число |
Примеры
curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/tasks/4218/checklist/274/move-before" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"beforeItemId": 276}'
curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/tasks/4218/checklist/274/move-before" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"beforeItemId": 276}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/4218/checklist/274/move-before', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ beforeItemId: 276 }),
})
const { success, data } = await res.json()
console.log('Новое место пункта:', data?.checkListItem?.sortIndex)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/4218/checklist/274/move-before', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ beforeItemId: 276 }),
})
const { success, data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | Описаниеtrue, если запрос выполнен |
Полеdata |
Типobject | ОписаниеРезультат с единственным полем checkListItem |
Полеdata.checkListItem |
Типobject | ОписаниеПеремещённый пункт |
Полеdata.checkListItem.id |
Типnumber | ОписаниеID пункта |
Полеdata.checkListItem.taskId |
Типnumber | ОписаниеID задачи |
Полеdata.checkListItem.parentId |
Типnumber | ОписаниеID родительского пункта. 0 — пункт верхнего уровня, он же название чек-листа |
Полеdata.checkListItem.title |
Типstring | ОписаниеТекст пункта |
Полеdata.checkListItem.sortIndex |
Типnumber | ОписаниеНовое место пункта среди пунктов с тем же родителем. Чем меньше значение, тем выше пункт |
Полеdata.checkListItem.displaySortIndex |
Типstring | ОписаниеНомер пункта для показа. В ответе — пустая строка |
Полеdata.checkListItem.isComplete |
Типboolean | ОписаниеВыполнен ли пункт |
Полеdata.checkListItem.isImportant |
Типboolean | ОписаниеОтмечен ли пункт как важный |
Полеdata.checkListItem.completedCount |
Типnumber | ОписаниеПриходит 0, даже когда подпункты выполнены. Выполнен ли подпункт, показывает его isComplete в списке пунктов |
Полеdata.checkListItem.members |
Типarray | ОписаниеУчастники пункта. Без участников — пустой массив. Роли участников — в ключевых полях |
Полеdata.checkListItem.attachments |
Типarray | object | ОписаниеВложения пункта. Без вложений — пустой массив. Формат объекта — в ключевых полях |
Полеdata.checkListItem.createdBy |
Типnumber | ОписаниеID автора пункта. Список: GET /v1/users |
Полеdata.checkListItem.userId |
Типnumber | ОписаниеID сотрудника, от имени которого сделан вызов. Список: GET /v1/users |
Полеdata.checkListItem.copiedId |
Типnumber | null | ОписаниеID исходного пункта, если пункт получен копированием. Иначе null |
Полеdata.checkListItem.nodeId |
Типstring | null | ОписаниеСлужебный ключ узла. В ответе — null |
Пример ответа
{
"success": true,
"data": {
"checkListItem": {
"id": 274,
"copiedId": null,
"userId": 1295,
"createdBy": 1295,
"parentId": 268,
"title": "Согласовать дату",
"sortIndex": 0,
"displaySortIndex": "",
"isComplete": false,
"isImportant": false,
"completedCount": 0,
"members": [],
"attachments": [],
"nodeId": null,
"taskId": 4218
}
}
}
Пример ответа при ошибке
422 — пункта с ID из beforeItemId нет:
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "Перемещение элемента: действие недоступно",
"b24Code": "0"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодINVALID_PARAMS |
ОписаниеtaskId — не целое положительное число. Сообщение taskId must be a positive integer |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеitemId — не целое положительное число. Сообщение itemId must be a positive integer |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеТело — не JSON-объект, например массив. Сообщение JSON object body is required |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеbeforeItemId не передан, передан строкой или не является целым положительным числом. Сообщение beforeItemId must be a positive integer |
| HTTP401 | КодMISSING_API_KEY |
ОписаниеНе передан X-Api-Key |
| HTTP401 | КодTOKEN_MISSING |
ОписаниеУ ключа нет токенов Битрикс24 |
| HTTP403 | КодSCOPE_DENIED |
ОписаниеУ ключа нет скоупа task |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеКлюч в режиме «только чтение». В error.details.switchUrl — адрес раздела, где режим меняется |
| HTTP415 | КодFST_ERR_CTP_INVALID_MEDIA_TYPE |
ОписаниеТело с Content-Type, который API не разбирает, например application/xml |
| HTTP422 | КодBITRIX_ERROR |
ОписаниеЗадачи или пункта itemId нет либо сотрудник, от имени которого идёт вызов, не видит задачу. Сообщение «Доступ к задаче запрещен», на портале с английским языком — Access to task was denied. Спецификация API объявляет на этот случай 404 TASK_NOT_FOUND и 404 NOT_FOUND, но на проверенных порталах приходит этот ответ |
| HTTP422 | КодBITRIX_ERROR |
ОписаниеПункта с ID из beforeItemId нет. Сообщение «Перемещение элемента: действие недоступно» |
| HTTP422 | КодBITRIX_ERROR |
ОписаниеbeforeItemId — подпункт перемещаемого пункта. Сообщение «Родительский пункт не может быть своим подпунктом» |
| HTTP429 | КодRATE_LIMITED |
ОписаниеПревышена частота запросов. Действующий потолок — в заголовке x-ratelimit-limit |
Полный список общих ошибок API — Ошибки.
Известные особенности
Номер целевого пункта тоже меняется. Перемещённый пункт получает номер sortIndex пункта beforeItemId, а номер пункта beforeItemId увеличивается на единицу. Ответ показывает только перемещённый пункт, новый порядок остальных — в GET /v1/tasks/:taskId/checklist.