Канбан
Команды этого раздела предназначены для управления задачами в Канбан-доске: перемещение между стадиями, привязка и отвязка задач от стадий, очистка.
Примечание: все команды располагаются в пространстве имён
Bitrix\Tasks\V2\Public\Command\Task\Kanban
Понятие связи (relation)
Каждая задача в Канбан-доске связана со стадией через объект связи (relation). Идентификатор этой связи (relationId) используется в некоторых командах для однозначного определения, какую именно привязку задачи к стадии нужно изменить или удалить.
MoveTaskCommand
MoveTaskCommand перемещает задачу на другую стадию в Канбан-доске. Используется для изменения статуса выполнения задачи.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$relationId |
int |
Да | ID связи задачи со стадией (положительное число) |
$stageId |
int |
Да | ID новой стадии (положительное число) |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Kanban\MoveTaskCommand;
$command = new MoveTaskCommand(
relationId: 100,
stageId: 5
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Задача перемещена на стадию #5";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
Возможные ошибки:
| Код | Описание |
|---|---|
POSITIVE_NUMBER |
ID должны быть положительными числами |
STAGE_NOT_FOUND |
Стадия не найдена |
TASK_NOT_FOUND |
Задача не найдена |
INVALID_STAGE_TRANSITION |
Недопустимый переход между стадиями |
BUSINESS_RULE_VIOLATION |
Нарушение бизнес-правил (например, переход из закрытой стадии) |
ClearStageCommand
ClearStageCommand удаляет все задачи из указанной стадии Канбан. Используется при архивации или изменении структуры доски.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$stageId |
int |
Да | ID стадии для очистки (положительное число) |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Kanban\ClearStageCommand;
$command = new ClearStageCommand(stageId: 99);
$result = $command->run();
if ($result->isSuccess()) {
echo "Стадия очищена.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
Возможные ошибки:
| Код | Описание |
|---|---|
POSITIVE_NUMBER |
ID должен быть положительным числом |
STAGE_NOT_FOUND |
Стадия не найдена |
ACCESS_DENIED |
Нет прав на очистку стадии |
AddTaskStageRelationCommand
AddTaskStageRelationCommand создаёт связь между задачей и стадией Канбан-доски. В отличие от MoveTaskCommand, которая перемещает существующую связь, эта команда создаёт новую привязку.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи (положительное число) |
$stageId |
int |
Да | ID стадии (положительное число) |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Kanban\AddTaskStageRelationCommand;
$command = new AddTaskStageRelationCommand(
taskId: 42,
stageId: 3
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Задача привязана к стадии. Связь ID: " . $result->getId();
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
DeleteTaskStageRelationCommand
DeleteTaskStageRelationCommand удаляет связи между задачами и стадиями. Задачи, у которых удалена связь, переводятся в состояние «не назначено». Принимает массив идентификаторов связей, что позволяет удалить несколько привязок одним вызовом.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$relationIds |
int[] |
Да | Массив ID связей задача-стадия для удаления |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Kanban\DeleteTaskStageRelationCommand;
$command = new DeleteTaskStageRelationCommand(
relationIds: [100, 101, 102]
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Связи удалены.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
ClearTaskCommand
ClearTaskCommand очищает задачу от всех привязок к стадиям Канбан и сбрасывает её позицию на доске.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи (положительное число) |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Kanban\ClearTaskCommand;
$command = new ClearTaskCommand(taskId: 42);
$result = $command->run();
if ($result->isSuccess()) {
echo "Задача очищена от привязок к стадиям.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
Сводная таблица
| Команда | Действие | Параметры |
|---|---|---|
MoveTaskCommand |
Перемещение задачи на другую стадию | int $relationId, int $stageId |
ClearStageCommand |
Очистка всех задач из стадии | int $stageId |
AddTaskStageRelationCommand |
Создание связи задача-стадия | int $taskId, int $stageId |
DeleteTaskStageRelationCommand |
Удаление связей задача-стадия | int[] $relationIds |
ClearTaskCommand |
Очистка задачи от всех привязок | int $taskId |