• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/result/resultmanager.php
  • Класс: BitrixTasksInternalsTaskResultResultManager
  • Вызов: ResultManager::updateFromComment
public function updateFromComment(int $taskId, int $commentId): ?Result
{
	$task = $this->loadTask($taskId);
	if (!$task)
	{
		return null;
	}

	$comment = $this->loadComment($commentId);
	if (!$comment)
	{
		return null;
	}

	$result = $this->loadResult($commentId);

	if ($comment->getServiceData() !== self::COMMENT_SERVICE_DATA)
	{
		if ($result)
		{
			$result->delete();

			$this->executeAutomationTrigger($task, $result);

			$this->sendPush(self::COMMAND_DELETE, $result);
		}
		return null;
	}

	$pushCommand = self::COMMAND_UPDATE;

	if (!$result)
	{
		$result = new Result();
		$result->setTaskId($taskId);
		$result->setCommentId($commentId);
		$result->setCreatedBy($this->userId);
		$result->setCreatedAt($comment->getPostDate());
		$result->setStatus(ResultTable::STATUS_OPENED);

		$pushCommand = self::COMMAND_CREATE;
	}

	$result->setText($comment->getPostMessage());
	$result->setUpdatedAt(new DateTime());

	$result->save();

	$this->updateUf($result, $commentId);

	$this->sendPush($pushCommand, $result);
	$this->log($result, self::RESULT_EDIT);

	$this->executeAutomationTrigger($task, $result);

	return $result;
}