• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
  • Класс: BitrixTasksScrumServiceTaskService
  • Вызов: TaskService::createItem
static function createItem(
	EntityForm $entity,
	int $taskId,
	array $fields,
	array $previousFields = [],
	int $epicId = 0,
	int $sort = 1
): void
{
	$itemService = new ItemService();

	$item = $itemService->getItemBySourceId($taskId);
	if (!$itemService->getErrors() && $item->isEmpty())
	{
		$pushService = (Loader::includeModule('pull') ? new PushService() : null);

		$scrumItem = new ItemForm();

		$createdBy = (($fields['CREATED_BY'] ?? null) ? $fields['CREATED_BY'] : $previousFields['CREATED_BY']);
		$scrumItem->setCreatedBy($createdBy);
		$scrumItem->setEntityId($entity->getId());
		$scrumItem->setSourceId($taskId);
		$scrumItem->setSort($sort);

		$epicId = (is_numeric($fields['EPIC'] ?? null) ? (int) $fields['EPIC'] : $epicId);

		$scrumItem->setEpicId($epicId);

		$itemService->createTaskItem($scrumItem, $pushService);
		if (!$itemService->getErrors() && $entity->isActiveSprint())
		{
			$kanbanService = new KanbanService();
			if (!$kanbanService->isTaskInKanban($entity->getId(), $scrumItem->getSourceId()))
			{
				$kanbanService->addTasksToKanban($entity->getId(), [$scrumItem->getSourceId()]);
			}
		}
	}
}