• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/trackingservice.php
  • Класс: CBPTrackingService
  • Вызов: CBPTrackingService::clearOld
static function clearOld($days = 0)
{
	$connection = BitrixMainApplication::getConnection();

	$days = intval($days);
	if ($days <= 0)
	{
		$days = 90;
	}

	$completed = self::shouldClearCompletedTracksOnly() ? "= 'Y'" : "IN ('N', 'Y')";
	$limit = static::CLEAR_LOG_SELECT_LIMIT;
	$partLimit = static::CLEAR_LOG_DELETE_LIMIT;

	$strSql = "SELECT ID FROM b_bp_tracking t WHERE t.COMPLETED {$completed} "
		. " AND t.MODIFIED < DATE_SUB(NOW(), INTERVAL " . $days . " DAY)"
		. " AND t.TYPE IN (0,1,2,3,4,5,7,8,9) LIMIT {$limit}"
	;

	$ids = $connection->query($strSql)->fetchAll();

	while ($partIds = array_splice($ids, 0, $partLimit))
	{
		$connection->query(
			sprintf(
				'DELETE from b_bp_tracking WHERE ID IN(%s)',
				implode(',', array_column($partIds, 'ID'))
			)
		);
	}

	return true;
}