getInstance
Статический метод для редактирования пункта чек-листа.
Редактирование
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); $item->update(['TITLE'=>'title 2']);
События
OnBeforeTaskCheckListItemUpdate ($task, $fields) OnAfterTaskCheckListItemUpdate ($task, $oldFields, $newFields)
REST запрос
// 20190207175155
// http://site.ru/rest/1/********/tasks.task.checklist.update?taskId=1&checkListItemId=29&fields[TITLE]=Hello%20world
{
"result": {
"item": [
{
"ID": "1",
"CREATED_BY": "1",
"TASK_ID": "1",
"TITLE": "Hello world",
"IS_COMPLETE": "N",
"SORT_INDEX": "1"
}
]
},
"time": {
"start": 1549554715.4373,
"finish": 1549554715.54894,
"duration": 0.11163997650146484,
"processing": 0.038207054138183594,
"date_start": "2019-02-07T17:51:55+02:00",
"date_finish": "2019-02-07T17:51:55+02:00"
}
}
Удаление
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); $item->delete();
События
OnBeforeTaskCheckListItemDelete ($task, $fields) OnAfterTaskCheckListItemDelete ($task)
REST запрос
// 20190207175321
// http://site.ru/rest/1/********/tasks.task.checklist.delete?taskId=1&checkListItemId=29
{
"result": {
"item": true
},
"time": {
"start": 1549554801.140385,
"finish": 1549554801.24166,
"duration": 0.10127520561218262,
"processing": 0.032243967056274414,
"date_start": "2019-02-07T17:53:21+02:00",
"date_finish": "2019-02-07T17:53:21+02:00"
}
}
Проверка доступа
Проверка доступа к действиям над пунктами чек-листа:
task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); $task->isActionAllowed(\CTaskItem::ACTION_CHECKLIST_ADD_ITEMS); // для добавления пункта чеклиста, разрешение стоит спрашивать у задачи, а не у чек-листа! $item = new \CTaskCheckListItem($task, $itemId); // удаление $item->isActionAllowed(\CTaskCheckListItem::ACTION_REMOVE); // сортировка $item->isActionAllowed(\CTaskCheckListItem::ACTION_REORDER); // изменение $item->isActionAllowed(\CTaskCheckListItem::ACTION_MODIFY); // выполнение $item->isActionAllowed(\CTaskCheckListItem::ACTION_TOGGLE);
Возможные варианты $actionId:
\CTaskCheckListItem::ACTION_ADD = 0x01; // добавление \CTaskCheckListItem::ACTION_MODIFY = 0x02; // изменение \CTaskCheckListItem::ACTION_REMOVE = 0x03; // удаление \CTaskCheckListItem::ACTION_TOGGLE = 0x04; // выполнение \CTaskCheckListItem::ACTION_REORDER = 0x05; // сортировку
Изменение сортировки
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); $newIndex = 19; $item->setSortIndex($newIndex);
События
OnBeforeTaskCheckListItemSort ($task, $fields) OnAfterTaskCheckListItemSort ($task, $oldFields, $newFields)
Перемещение
Переместить пункт 5 под 2 пункт чеклиста:
$task = \CTaskItem::getInstance($taskId, $userId); $item5 = new \CTaskCheckListItem($task, $itemId5); $item2 = new \CTaskCheckListItem($task, $itemId2); $item5->moveAfterItem($item2->getId());
События
OnCheckListItemMoveItem ($selectedItemId, $insertAfterItemId)
REST запрос
// 20190207175514
// http://site.ru/rest/1/********/tasks.task.checklist.moveafter?taskId=1&checkListItemId=2&afterItemId=6
{
"result": {
"item": [
{
"ID": "2",
"CREATED_BY": "1",
"TASK_ID": "1",
"TITLE": "Hello world",
"IS_COMPLETE": "N",
"SORT_INDEX": "17"
}
]
},
"time": {
"start": 1549555019.965198,
"finish": 1549555020.053995,
"duration": 0.08879685401916504,
"processing": 0.035902976989746094,
"date_start": "2019-02-07T17:56:59+02:00",
"date_finish": "2019-02-07T17:57:00+02:00"
}
}
Выполнение пункта
Проверка выполнен ли пункт чек-листа
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); echo $item->iSComplete() ? 'Выполнен' : 'Не выполнен';
Выполнить пункт чек-листа:
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); echo $item->сomplete();
События
См. метод update.
REST запрос
// 20190207175514
// http://site.ru/rest/1/********/tasks.task.checklist.complete?taskId=1&checkListItemId=2
{
"result": {
"item": [
{
"ID": "2",
"CREATED_BY": "1",
"TASK_ID": "1",
"TITLE": "Hello world",
"IS_COMPLETE": "Y",
"SORT_INDEX": "4"
}
]
},
"time": {
"start": 1549554914.300577,
"finish": 1549554914.371372,
"duration": 0.07079505920410156,
"processing": 0.03411412239074707,
"date_start": "2019-02-07T17:55:14+02:00",
"date_finish": "2019-02-07T17:55:14+02:00"
}
}
Невыполненный пункт
Пометить пункт чек-листа как невыполненный. В отличии от метода toggle этот метод не переключает выполненный/невыполненный, а принудительно выставляет “невыполненный”.
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); echo $item->renew();
События
См. метод update.
REST запрос
// 20190207175514
// http://site.ru/rest/1/********/tasks.task.checklist.renew?taskId=1&checkListItemId=2
{
"result": {
"item": [
{
"ID": "2",
"CREATED_BY": "1",
"TASK_ID": "1",
"TITLE": "Hello world",
"IS_COMPLETE": "N",
"SORT_INDEX": "4"
}
]
},
"time": {
"start": 1549554914.300577,
"finish": 1549554914.371372,
"duration": 0.07079505920410156,
"processing": 0.03411412239074707,
"date_start": "2019-02-07T17:55:14+02:00",
"date_finish": "2019-02-07T17:55:14+02:00"
}
}
© «Битрикс», 2001-2025, «1С-Битрикс», 2025