public static function GetFileForHistory($documentId, $propertyValue, $historyIndex) { $newFileID = $propertyValue['VALUE']; $bNewFile = true; $history = self::GetHistoryService(); $dbDoc = $history->GetHistoryList(array("ID" => "DESC"), array("DOCUMENT_ID" => $documentId), false, false, array("ID", "DOCUMENT_ID", "NAME", "MODIFIED", "USER_ID", "USER_NAME", "USER_LAST_NAME", "USER_LOGIN", "DOCUMENT")); $newFileHash = CWebDavBase::_get_file_hash($newFileID); $oldFileHash = null; if ($newFileHash !== null) { if ($dbDoc && ($arTmpDoc = $dbDoc->Fetch())) { while ($arDoc = $dbDoc->Fetch()) { $oldFileHash = $arDoc['DOCUMENT']['PROPERTIES']['FILE']['HASH']; if ($oldFileHash == $newFileHash) { $bNewFile = false; $result = $arDoc['DOCUMENT']['PROPERTIES']['FILE']; break; } } } } if ($oldFileHash == null || $newFileHash == null) { $bNewFile = true; } // add new copy to history if ($bNewFile) { $result = array("VALUE" => CBPDocument::PrepareFileForHistory($documentId, $propertyValue["VALUE"], $historyIndex), "DESCRIPTION" => $propertyValue["DESCRIPTION"], "HASH" => $newFileHash); } return $result; }