• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/checklist/checklistfacade.php
  • Класс: BitrixTasksCheckListCheckListFacade
  • Вызов: CheckListFacade::updateComposite
static function updateComposite(int $entityId, int $userId, CheckList $checkList, array $fields): Result
{
	$updateCompositeResult = new Result();

	foreach ($checkList->getDescendants() as $descendant)
	{
		$updateCompositeResult->setData(
			array_merge(
				($updateCompositeResult->getData() ?? []),
				static::updateComposite($entityId, $userId, $descendant, $fields)->getData()
			)
		);
	}

	if (
		array_key_exists('IS_COMPLETE', $fields)
		&& count($fields) === 1
		&& static::checkAccess($entityId, $userId, ActionDictionary::ACTION_CHECKLIST_TOGGLE, $checkList)
	)
	{
		$updateResult = static::update($entityId, $userId, $checkList, $fields);
		if ($updateResult->isSuccess())
		{
			$updateCompositeResult->setData(
				array_merge(
					($updateCompositeResult->getData() ?? []),
					[$updateResult]
				)
			);
		}
	}

	return $updateCompositeResult;
}