Связи и зависимости

Команды этого раздела управляют иерархическими и горизонтальными связями между задачами, а также зависимостями в диаграмме Гантта.

Примечание: все команды располагаются в пространсве имен Bitrix\Tasks\V2\Public\Command\Task\Relation и Bitrix\Tasks\V2\Public\Command\Gantt

SetParentRelationCommand

SetParentRelationCommand устанавливает родительскую задачу для текущей, создавая иерархию.

Входные аргументы:

Параметр Тип Обязательный Описание
$taskId int Да ID дочерней задачи
$userId int Да ID пользователя, выполняющего действие
$parentId int Да ID родительской задачи
$useConsistency bool Нет Использовать консистентность данных (по умолчанию false)

Пример использования:

use Bitrix\Tasks\V2\Public\Command\Task\Relation\SetParentRelationCommand;

$command = new SetParentRelationCommand(
    taskId: 200,
    userId: 1,
    parentId: 100
);
if ($result->isSuccess()) {
    echo "Родительская задача установлена.";
} else {
    // Обработка ошибок
}

DeleteParentRelationCommand

DeleteParentRelationCommand удаляет родительскую связь, делая задачу независимой.

Входные аргументы:

Параметр Тип Обязательный Описание
$taskId int Да ID задачи, у которой удаляется родитель
$userId int Да ID пользователя, выполняющего действие
$useConsistency bool Нет Использовать консистентность данных (по умолчанию false)

Пример использования:

use Bitrix\Tasks\V2\Public\Command\Task\Relation\DeleteParentRelationCommand;

$command = new DeleteParentRelationCommand(taskId: 200, userId: 1);
$result = $command->run();

if ($result->isSuccess()) {
    echo "Родительская задача удалена.";
} else {
    // Обработка ошибок
}

AddRelatedTaskCommand

AddRelatedTaskCommand создает горизонтальную (логическую) связь между двумя задачами.

Входные аргументы:

Параметр Тип Обязательный Описание
$taskId int Да ID основной задачи
$relatedTaskId int Да ID связываемой задачи
$userId int Да ID пользователя, выполняющего действие
$useConsistency bool Нет Использовать консистентность данных (по умолчанию false)

Пример использования:

use Bitrix\Tasks\V2\Public\Command\Task\Relation\AddRelatedTaskCommand;

$command = new AddRelatedTaskCommand(
    taskId: 100,
    relatedTaskId: 300,
    userId: 1
);
$result = $command->run();

if ($result->isSuccess()) {
    echo "Связанная задача добавлена.";
} else {
    // Обработка ошибок
}

DeleteRelatedTaskCommand

DeleteRelatedTaskCommand удаляет горизонтальную связь между задачами.

Входные аргументы:

Параметр Тип Обязательный Описание
$taskId int Да ID основной задачи
$relatedTaskId int Да ID отвязываемой задачи
$userId int Да ID пользователя, выполняющего действие
$useConsistency bool Нет Использовать консистентность данных (по умолчанию false)

Пример использования:

use Bitrix\Tasks\V2\Public\Command\Task\Relation\DeleteRelatedTaskCommand;

$command = new DeleteRelatedTaskCommand(
    taskId: 100,
    relatedTaskId: 300,
    userId: 1
);
if ($result->isSuccess()) {
    echo "Связанная задача удалена.";
} else {
    // Обработка ошибок
}

AddMultiTaskChildrenCommand

AddMultiTaskChildrenCommand позволяет массово создать несколько дочерних задач на основе одной родительской.

Входные аргументы:

Параметр Тип Обязательный Описание
$taskId int Да ID родительской задачи (шаблона)
$userIds array Да Массив ID пользователей, для которых создаются задачи
$config CopyConfig Да Конфигурация копирования задачи

Пример использования:

use Bitrix\Tasks\V2\Public\Command\Task\Relation\AddMultiTaskChildrenCommand;
use Bitrix\Tasks\V2\Internal\Service\Task\Action\Copy\Config\CopyConfig;

$command = new AddMultiTaskChildrenCommand(
    taskId: 100,
    userIds: [2, 3, 4],
    config: new CopyConfig(userId: 1)
);
$result = $command->run();

if ($result->isSuccess()) {
    echo "Дочерние задачи созданы.";
} else {
    // Обработка ошибок
}