- Модуль: 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;
}