Документация для разработчиков
Темная тема

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-2024, «1С-Битрикс», 2024
Наверх