• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/checklist.php
  • Класс: CCheckList
  • Вызов: CCheckList::AutoCheck
function AutoCheck($arTestID, $arParams = array())
{//execute point autotest
	$arParams["TEST_ID"] = $arTestID;
	$arPoints = $this->GetPoints();
	$arPoint = $arPoints[$arTestID];
	$result = false;
	if (!$arPoint || $arPoint["AUTO"] !="Y")
		return false;
	if (isset($arPoints[$arTestID]["PARAMS"]) && is_array($arPoints[$arTestID]["PARAMS"]))
		$arParams = array_merge($arParams, $arPoints[$arTestID]["PARAMS"]);
	$arClass = 	$arPoint["CLASS_NAME"];
	$arMethod = $arPoint["METHOD_NAME"];

	if (!empty($arPoint["FILE_PATH"]) && file_exists($_SERVER["DOCUMENT_ROOT"].$arPoint["FILE_PATH"]))
		include($_SERVER["DOCUMENT_ROOT"].$arPoint["FILE_PATH"]);

	if(is_callable(array($arClass, $arMethod)))
		$result = call_user_func_array(array($arClass, $arMethod), array($arParams));

	$arResult = array();
	if ($result && is_array($result))
	{
		if (array_key_exists("STATUS", $result))
		{
			$arFields["STATUS"] = "F";
			if ($result['STATUS'] == "true")
				$arFields["STATUS"] = "A";

			$arFields["COMMENTS"] = $arPoint["STATE"]["COMMENTS"] ?? [];
			$arFields["COMMENTS"]["SYSTEM"] = array();
			if (isset($result["MESSAGE"]["PREVIEW"]))
				$arFields["COMMENTS"]["SYSTEM"]["PREVIEW"]= $result["MESSAGE"]["PREVIEW"];
			if (isset($result["MESSAGE"]["DETAIL"]))
				$arFields["COMMENTS"]["SYSTEM"]["DETAIL"]= $result["MESSAGE"]["DETAIL"];

			if ($this->PointUpdate($arTestID, $arFields))
				if ($this->Save())
				{
					$arResult = array(
						"STATUS" => $arFields["STATUS"],
						"COMMENTS_COUNT" => count($arFields["COMMENTS"] ?? []),
						"ERROR" => $result["ERROR"] ?? null,
						"SYSTEM_MESSAGE" => $arFields["COMMENTS"]["SYSTEM"] ?? '',
					);

				}
		}
		elseif($result["IN_PROGRESS"] == "Y")
		{
			$arResult= array(
					"IN_PROGRESS" => "Y",
					"PERCENT" => $result["PERCENT"]
				);
		}
	}
	else
		$arResult = array("STATUS" => "W");

	return $arResult;
}