• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblockelement.php
  • Класс: CAllIBlockElement
  • Вызов: CAllIBlockElement::WF_Restore
static function WF_Restore($ID)
{
	$obElement = new CIBlockElement;
	$rsElement = $obElement->GetByID($ID);
	if($arElement = $rsElement->Fetch())
	{
		if($arElement["WF_PARENT_ELEMENT_ID"] <> '')
		{
			$arElement["PROPERTY_VALUES"] = array();
			$rsProperties = $obElement->GetProperty($arElement["IBLOCK_ID"], $arElement["WF_PARENT_ELEMENT_ID"], "sort", "asc", array("PROPERTY_TYPE"=>"F"));
			while($arProperty = $rsProperties->Fetch())
			{
				if(!array_key_exists($arProperty["ID"], $arElement["PROPERTY_VALUES"]))
				{
					$arElement["PROPERTY_VALUES"][$arProperty["ID"]] = array();
				}
				$arElement["PROPERTY_VALUES"][$arProperty["ID"]][$arProperty["PROPERTY_VALUE_ID"]] = array(
					"del" => "Y",
				);
			}
			$n = 1;
			$rsProperties = $obElement->GetProperty($arElement["IBLOCK_ID"], $arElement["ID"]);
			while($arProperty = $rsProperties->Fetch())
			{
				if(!array_key_exists($arProperty["ID"], $arElement["PROPERTY_VALUES"]))
				{
					$arElement["PROPERTY_VALUES"][$arProperty["ID"]] = array();
				}
				if($arProperty["PROPERTY_TYPE"] == "F")
				{
					$arElement["PROPERTY_VALUES"][$arProperty["ID"]]["n".$n] = array(
						"VALUE" => $arProperty["VALUE"],
						"DESCRIPTION" => $arProperty["DESCRIPTION"],
					);
					$n++;
				}
				else
				{
					$arElement["PROPERTY_VALUES"][$arProperty["ID"]][$arProperty["PROPERTY_VALUE_ID"]] = array(
						"VALUE" => $arProperty["VALUE"],
						"DESCRIPTION" => $arProperty["DESCRIPTION"],
					);
				}
			}

			return $obElement->Update($arElement["WF_PARENT_ELEMENT_ID"], $arElement, true);
		}
	}
	return false;
}