Для AI-агентов: markdown этой страницы — /docs-content/entities/tasks/checklist-actions/move-after.md индекс документации — /llms.txt

Переместить пункт после другого

POST /v1/tasks/:taskId/checklist/:itemId/move-after

Перемещает пункт чек-листа задачи и ставит его после другого пункта.

Параметры

Параметр Тип Обяз. Описание
ПараметрtaskId (path) Типnumber Обяз.да ОписаниеID задачи, целое положительное число. Список: GET /v1/tasks
ПараметрitemId (path) Типnumber Обяз.да ОписаниеID пункта, который перемещается, целое положительное число. Список: GET /v1/tasks/:taskId/checklist

Поля запроса (body)

Поле Тип Обяз. Описание
ПолеafterItemId Типnumber Обяз.да ОписаниеID пункта, после которого встанет пункт itemId, целое положительное число. Список: GET /v1/tasks/:taskId/checklist — он отдаёт ID строкой, например "276", а здесь нужно число

Примеры

curl — личный ключ

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/tasks/4218/checklist/274/move-after" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"afterItemId": 276}'

curl — OAuth-приложение

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/tasks/4218/checklist/274/move-after" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"afterItemId": 276}'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/4218/checklist/274/move-after', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ afterItemId: 276 }),
})

const { success, data } = await res.json()
console.log('Новое место пункта:', data?.checkListItem?.sortIndex)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/4218/checklist/274/move-after', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ afterItemId: 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

Пример ответа

JSON
{
  "success": true,
  "data": {
    "checkListItem": {
      "id": 274,
      "copiedId": null,
      "userId": 1295,
      "createdBy": 1295,
      "parentId": 268,
      "title": "Согласовать дату",
      "sortIndex": 2,
      "displaySortIndex": "",
      "isComplete": false,
      "isImportant": false,
      "completedCount": 0,
      "members": [],
      "attachments": [],
      "nodeId": null,
      "taskId": 4218
    }
  }
}

Пример ответа при ошибке

422 — пункт нельзя поставить после его же подпункта:

JSON
{
  "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 ОписаниеafterItemId не передан, передан строкой или не является целым положительным числом. Сообщение afterItemId 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 из afterItemId нет. Сообщение «Перемещение элемента: действие недоступно»
HTTP422 КодBITRIX_ERROR ОписаниеafterItemId — подпункт перемещаемого пункта. Сообщение «Родительский пункт не может быть своим подпунктом»
HTTP429 КодRATE_LIMITED ОписаниеПревышена частота запросов. Действующий потолок — в заголовке x-ratelimit-limit

Полный список общих ошибок API — Ошибки.

Известные особенности

Номера sortIndex могут начинаться не с 0. Перемещённый пункт получает номер на единицу больше, чем у пункта afterItemId, а номер пункта afterItemId не меняется. Если из двух подпунктов с номерами 0 и 1 первый поставить после второго, номера станут 1 и 2. Порядок пунктов задаёт сравнение номеров, а не их непрерывность.

Смотрите также