• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/update/synctemplatescenario.php
  • Класс: BitrixTasksUpdateSyncTemplateScenario
  • Вызов: SyncTemplateScenario::run
private function run(): string
{
	if (!Loader::includeModule('tasks'))
	{
		return '';
	}

	try
	{
		// fetch templates to sync
		$cursor = $this->getCursor();
		$templates = $this->getList($cursor);
		$latestTemplateId = 0;
		// insert default scenario
		foreach ($templates as $template)
		{
			ScenarioTable::insertIgnore($template->getId(), ScenarioTable::SCENARIO_DEFAULT);
			$latestTemplateId = $template->getId();
		}

		if ($latestTemplateId)
		{
			$this->setCursor($latestTemplateId);
		}

		if ($templates->count() < self::LIMIT)
		{
			// sync is over, some clean up!
			Option::delete('tasks', ['name' => self::CURSOR_KEY]);
			return '';
		}
	}
	catch (Exception $e)
	{
		(new Log())->collect('Unable to sync template scenario. '.$e->getMessage());
		return '';
	}

	return self::getAgentName();
}