Канбан

Команды этого раздела предназначены для управления задачами в Канбан-доске: перемещение между стадиями, привязка и отвязка задач от стадий, очистка.

Примечание: все команды располагаются в пространстве имён 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