• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblockelement.php
  • Класс: CAllIBlockElement
  • Вызов: CAllIBlockElement::WF_CleanUpHistoryCopies
static function WF_CleanUpHistoryCopies($ELEMENT_ID=false, $HISTORY_COPIES=false)
{
	if(CModule::IncludeModule("workflow"))
	{
		$err_mess = "FILE: ".__FILE__."
LINE: "; global $DB; if($HISTORY_COPIES===false) $HISTORY_COPIES = intval(COption::GetOptionString("workflow","HISTORY_COPIES","10")); $strSqlSearch = ''; $ELEMENT_ID = (int)$ELEMENT_ID; if($ELEMENT_ID>0) $strSqlSearch = " AND ID = $ELEMENT_ID "; $strSql = "SELECT ID FROM b_iblock_element ". "WHERE (ID=WF_PARENT_ELEMENT_ID or (WF_PARENT_ELEMENT_ID IS NULL AND WF_STATUS_ID=1)) ". $strSqlSearch; $z = $DB->Query($strSql, false, $err_mess.__LINE__); while ($zr=$z->Fetch()) { $DID = $zr["ID"]; $strSql = "SELECT ID, WF_NEW, WF_PARENT_ELEMENT_ID ". "FROM b_iblock_element ". "WHERE WF_PARENT_ELEMENT_ID = ".$DID." ". " AND WF_PARENT_ELEMENT_ID<>ID ". " AND (WF_NEW<>'Y' or WF_NEW is null) ". "ORDER BY ID desc"; $t = $DB->Query($strSql, false, $err_mess.__LINE__); $i = 0; while ($tr = $t->Fetch()) { $i++; if($i>$HISTORY_COPIES) { $LAST_ID = CIBlockElement::WF_GetLast($DID); if($LAST_ID!=$tr["ID"]) { CIBlockElement::Delete($tr["ID"]); } } } } } }