• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/lib/bizprocdocument.php
  • Класс: BizprocDocument
  • Вызов: BizprocDocument::GetDocumentForHistory
static function GetDocumentForHistory($documentId, $historyIndex)
{
	$documentId = intval($documentId);
	if ($documentId <= 0)
		throw new CBPArgumentNullException("documentId");

	$result = null;

	$dbDocumentList = CIBlockElement::getList(
		array(),
		array("ID" => $documentId, "SHOW_NEW"=>"Y", "SHOW_HISTORY" => "Y")
	);
	if ($objDocument = $dbDocumentList->getNextElement())
	{
		$fields = $objDocument->getFields();
		$properties = $objDocument->getProperties();

		$result["NAME"] = $fields["~NAME"];

		$result["FIELDS"] = array();
		foreach ($fields as $fieldKey => $fieldValue)
		{
			if ($fieldKey == "~PREVIEW_PICTURE" || $fieldKey == "~DETAIL_PICTURE")
			{
				$result["FIELDS"][mb_substr($fieldKey, 1)] = CBPDocument::prepareFileForHistory(
					array("lists", get_called_class(), $documentId),
					$fieldValue,
					$historyIndex
				);
			}
			elseif (mb_substr($fieldKey, 0, 1) == "~")
			{
				$result["FIELDS"][mb_substr($fieldKey, 1)] = $fieldValue;
			}
		}

		$result["PROPERTIES"] = array();
		foreach ($properties as $propertyKey => $propertyValue)
		{
			if ($propertyValue["USER_TYPE"] <> '')
			{
				$result["PROPERTIES"][$propertyKey] = array(
					"VALUE" => $propertyValue["VALUE"],
					"DESCRIPTION" => $propertyValue["DESCRIPTION"]
				);
			}
			elseif ($propertyValue["PROPERTY_TYPE"] == "L")
			{
				$result["PROPERTIES"][$propertyKey] = array(
					"VALUE" => $propertyValue["VALUE_ENUM_ID"],
					"DESCRIPTION" => $propertyValue["DESCRIPTION"]
				);
			}
			elseif ($propertyValue["PROPERTY_TYPE"] == "F")
			{
				$result["PROPERTIES"][$propertyKey] = array(
					"VALUE" => CBPDocument::prepareFileForHistory(
						array("lists", get_called_class(), $documentId),
						$propertyValue["VALUE"],
						$historyIndex
					),
					"DESCRIPTION" => $propertyValue["DESCRIPTION"]
				);
			}
			else
			{
				$result["PROPERTIES"][$propertyKey] = array(
					"VALUE" => $propertyValue["VALUE"],
					"DESCRIPTION" => $propertyValue["DESCRIPTION"]
				);
			}
		}
	}

	return $result;
}