Гант

Диаграмма Ганта — это инструмент для планирования и визуализации этапов проекта, который представляет собой график с горизонтальными полосами (столбцами), отображающими задачи, их сроки, длительность и зависимости между ними. Она помогает наглядно увидеть хронологию проекта, распределить ресурсы, контролировать сроки и синхронизировать работу команды. В статье мы собрали команды связаные с работой с диаграмой Ганта.

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

Типы связей

Прежде чем разбираться с задачами необходимо определить приору взаимосвязи задач между собой - ее описание лежит в LinkType.

use Bitrix\Tasks\V2\Internal\Entity\Task\Gantt\LinkType;

enum LinkType: string
{
	case StartStart = 'start_start';
	case StartFinish = 'start_finish';
	case FinishStart = 'finish_start';
	case FinishFinish = 'finish_finish';
}
  • LinkType::StartStart - Задачи могут начинаться одновременно
  • LinkType::StartFinish - Зависимая задача может завершиться, когда начнётся предшествующая
  • LinkType::FinishStart - Предшествующая задача должна завершиться, чтобы началась зависимая
  • LinkType::FinishFinish - Задачи должны завершиться одновременно

Создать связь

AddDependenceCommand позволяет устанавливать связи между задачами для управления последовательностью выполнения работ.

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

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

Пример выполнения: задача ID:2 должна начаться после завершения задачи ID:1:

use Bitrix\Tasks\V2\Public\Command\Gantt\AddDependenceCommand;
use Bitrix\Tasks\V2\Internal\Entity\Task\Gantt\LinkType;

$command = new AddDependenceCommand(
    taskId: 2,
    dependentId: 1,
    linkType: LinkType::FinishStart,
    userId: 1
);

$result = $command->run();

if ($result->isSuccess()) {
    echo "Зависимость создана";
} else {
    foreach ($result->getErrors() as $error) {
        echo "Ошибка: {$error->getMessage()}";
    }
}

Изменить связь

UpdateDependenceCommand позволяет изменить связь между задачами для управления последовательностью выполнения работ.

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

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

Пример, аналогичный AddDependenceCommand, без указания userId

Удалить связь

DeleteDependenceCommand удаляет связь между задачами в диаграмме Ганта.

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

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