• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/checklist/internals/checklist.php
  • Класс: BitrixTasksCheckListInternalsCheckList
  • Вызов: CheckList::save
public function save()
{
	$saveResult = new Result();

	$this->cloneFileAttachments();
	$fieldsChecking = $this->checkFields();
	if (!$fieldsChecking->isSuccess())
	{
		$saveResult->loadErrors($fieldsChecking->getErrors());
		return $saveResult;
	}

	$id = $this->fields->getId();

	$actionProcessResult = (isset($id)? $this->processUpdate() : $this->processAdd());
	if (!$actionProcessResult->isSuccess())
	{
		$saveResult->loadErrors($actionProcessResult->getErrors());
		return $saveResult;
	}

	foreach ($this->getDescendants() as $descendant)
	{
		/** @var CheckList $descendant */
		$descendant->setFields([
			'ENTITY_ID' => $this->fields->getEntityId(),
			'USER_ID' => $this->userId,
			'PARENT_ID' => $this->fields->getId(),
		]);

		$descendantSaveResult = $descendant->save();
		if (!$descendantSaveResult->isSuccess())
		{
			$saveResult->loadErrors($descendantSaveResult->getErrors());
			return $saveResult;
		}
	}

	$saveResult->setData(['ITEM' => $this]);

	return $saveResult;
}