• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/script/manager.php
  • Класс: BitrixBizprocScriptManager
  • Вызов: Manager::saveTemplateConfigs
static function saveTemplateConfigs(int $tplId, array $templateFields, $extractParameters = true)
{
	$tpl = WorkflowTemplateTable::getById($tplId)->fetchObject();
	if (!$tpl)
	{
		return false;
	}

	$constants = $templateFields['CONSTANTS'] ?? [];
	$parameters = $templateFields['PARAMETERS'] ?? [];

	$usages = $tpl->collectUsages();

	$usedConstants = $usages->getValuesBySourceType(SourceType::Constant);
	$usedParameters = $usages->getValuesBySourceType(SourceType::Parameter);

	$constants = array_intersect_key($constants, array_fill_keys($usedConstants, true));
	$parameters = array_intersect_key($parameters, array_fill_keys($usedParameters, true));

	if ($extractParameters)
	{
		$constants = self::extractProperties($constants, $tpl->getDocumentComplexType());
		$parameters = self::extractProperties($parameters, $tpl->getDocumentComplexType());
	}

	CBPWorkflowTemplateLoader::update(
		$tplId,
		['CONSTANTS' => $constants, 'PARAMETERS' => $parameters],
		true
	);
}