• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/stateservice.php
  • Класс: CBPStateService
  • Вызов: CBPStateService::__ExtractState
static function __ExtractState(&$arStates, $arResult)
{
	if (!array_key_exists($arResult["ID"], $arStates))
	{
		$arStates[$arResult["ID"]] = array(
			"ID" => $arResult["ID"],
			"TEMPLATE_ID" => $arResult["WORKFLOW_TEMPLATE_ID"],
			"TEMPLATE_NAME" => $arResult["NAME"],
			"TEMPLATE_DESCRIPTION" => $arResult["DESCRIPTION"],
			"STATE_MODIFIED" => $arResult["MODIFIED"],
			"STATE_NAME" => $arResult["STATE"],
			"STATE_TITLE" => $arResult["STATE_TITLE"],
			"STATE_PARAMETERS" => ($arResult["STATE_PARAMETERS"] <> '' ? unserialize($arResult["STATE_PARAMETERS"], ['allowed_classes' => false]) : array()),
			"WORKFLOW_STATUS" => $arResult["STATUS"],
			"STATE_PERMISSIONS" => array(),
			"DOCUMENT_ID" => array($arResult["MODULE_ID"], $arResult["ENTITY"], $arResult["DOCUMENT_ID"]),
			"STARTED" => $arResult["STARTED"],
			"STARTED_BY" => $arResult["STARTED_BY"],
			"STARTED_FORMATTED" => $arResult["STARTED_FORMATTED"],
		);
	}

	if ($arResult["PERMISSION"] <> '' && $arResult["OBJECT_ID"] <> '')
	{
		$arResult["PERMISSION"] = mb_strtolower($arResult["PERMISSION"]);

		if (!array_key_exists($arResult["PERMISSION"], $arStates[$arResult["ID"]]["STATE_PERMISSIONS"]))
			$arStates[$arResult["ID"]]["STATE_PERMISSIONS"][$arResult["PERMISSION"]] = array();

		$arStates[$arResult["ID"]]["STATE_PERMISSIONS"][$arResult["PERMISSION"]][] = $arResult["OBJECT_ID"];
	}
}