Чек-листы
Команды этого раздела предназначены для управления чек-листами в задачах.
Примечание: все команды располагаются в пространсве имен
Bitrix\Tasks\V2\Public\Command\CheckList
Структура чек-листа
Перед работой с командами важно понимать, как устроен чек-лист. В объекте Bitrix\Tasks\V2\Internal\Entity\Task поле checklist представляет собой массив, каждый элемент которого является ассоциативным массивом, описывающим один пункт чек-листа.
Структура одного пункта:
| Ключ | Тип | Описание |
|---|---|---|
id |
int |
ID существующего пункта (не указывается для новых) |
text |
string |
Текст пункта |
isComplete |
string |
Статус выполнения (‘Y’ - выполнен, ‘N’ - не выполнен) |
sortIndex |
int |
Индекс сортировки |
parentId |
int |
ID родительского пункта для создания вложенности |
Пример передачи чек-листа в объект Task:
$task->checklist = [
['id' => 1, 'text' => 'Существующий пункт', 'isComplete' => 'Y'],
['text' => 'Новый пункт', 'isComplete' => 'N', 'sortIndex' => 20],
];
SaveCheckListCommand
SaveCheckListCommand сохраняет полную структуру чек-листа задачи. Команда позволяет добавлять, обновлять и удалять пункты чек-листа одним действием.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$task |
Entity\Task |
Да | Объект задачи с обновленным чек-листом |
$updatedBy |
int |
Да | ID пользователя, вносящего изменения |
$taskBeforeUpdate |
?Entity\Task |
Нет | Состояние задачи до обновления (для аудита) |
$useConsistency |
bool |
Нет | Использовать консистентность данных (по умолчанию false) |
$skipNotification |
bool |
Нет | Пропустить отправку уведомлений (по умолчанию false) |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\CheckList\SaveCheckListCommand;
use Bitrix\Tasks\V2\Internal\Entity\Task;
$taskWithCheckList = new Task(
id: 123,
checklist: [
['id' => 1, 'text' => 'Пункт 1', 'isComplete' => 'Y'],
['text' => 'Новый пункт 2'],
]
);
$command = new SaveCheckListCommand(
task: $taskWithCheckList,
updatedBy: 1
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Чек-лист сохранен.";
} else {
// Обработка ошибок
}
CompleteCheckListItemsCommand
CompleteCheckListItemsCommand отмечает один или несколько пунктов чек-листа как выполненные.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$ids |
array |
Да | Массив ID пунктов чек-листа для завершения |
$userId |
int |
Да | ID пользователя, выполняющего действие |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\CheckList\CompleteCheckListItemsCommand;
$command = new CompleteCheckListItemsCommand(
ids: [10, 12],
userId: 1
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Пункты чек-листа завершены.";
} else {
// Обработка ошибок
}
RenewCheckListItemsCommand
RenewCheckListItemsCommand возобновляет один или несколько выполненных пунктов чек-листа.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$ids |
array |
Да | Массив ID пунктов чек-листа для возобновления |
$userId |
int |
Да | ID пользователя, выполняющего действие |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\CheckList\RenewCheckListItemsCommand;
$command = new RenewCheckListItemsCommand(
ids: [10, 12],
userId: 1
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Пункты чек-листа возобновлены.";
} else {
// Обработка ошибок
}
ExpandCheckListCommand
ExpandCheckListCommand разворачивает (показывает) содержимое чек-листа в интерфейсе пользователя.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$checkListId |
int |
Да | ID чек-листа |
$userId |
int |
Да | ID пользователя |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\CheckList\ExpandCheckListCommand;
$command = new ExpandCheckListCommand(checkListId: 5, userId: 1);
$result = $command->run();
if ($result->isSuccess()) {
echo "Чек-лист развернут.";
} else {
// Обработка ошибок
}
CollapseCheckListCommand
CollapseCheckListCommand сворачивает (скрывает) содержимое чек-листа в интерфейсе пользователя.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$checkListId |
int |
Да | ID чек-листа |
$userId |
int |
Да | ID пользователя |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\CheckList\CollapseCheckListCommand;
$command = new CollapseCheckListCommand(checkListId: 5, userId: 1);
$result = $command->run();
if ($result->isSuccess()) {
echo "Чек-лист свернут.";
} else {
// Обработка ошибок
}