• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/volume/base.php
  • Класс: BitrixDiskVolumeBase
  • Вызов: Base::getMeasurementResult
public function getMeasurementResult(array $collectedData = []): DBResult
{
	$filter = $this->getFilter(
		[
			'=INDICATOR_TYPE' => static::className(),
			'=OWNER_ID' => $this->getOwner(),
			'>FILE_COUNT' => 0,
			'>FILES_LEFT' => 0,
		],
		VolumeTable::getEntity()
	);
	$select = [
		'ID',
		'INDICATOR_TYPE',
		'FILE_SIZE',
		'FILE_COUNT',
		'DISK_SIZE',
		'DISK_COUNT',
		'VERSION_COUNT',
		'PREVIEW_SIZE',
		'PREVIEW_COUNT',
		'ATTACHED_COUNT',
		'LINK_COUNT',
		'SHARING_COUNT',
		'UNNECESSARY_VERSION_SIZE',
		'UNNECESSARY_VERSION_COUNT',
		'STORAGE_ID',
		'MODULE_ID',
		'FOLDER_ID',
		'PARENT_ID',
		'USER_ID',
		'GROUP_ID',
		'ENTITY_TYPE',
		'ENTITY_ID',
		'IBLOCK_ID',
		'TYPE_FILE',
		'COLLECTED',
		'DATA',
		'TITLE',
		'PERCENT',
		'USING_COUNT',
		// task info
		'AGENT_LOCK',
		'DROP_UNNECESSARY_VERSION',
		'DROP_TRASHCAN',
		'EMPTY_FOLDER',
		'DROP_FOLDER',
	];
	if ($this instanceof VolumeFolder)
	{
		$select[] = 'FOLDER.UPDATE_TIME';
		$filter['>FOLDER.ID'] = 0;//folder exists
	}

	$parameter = [
		'runtime' => [
			new EntityExpressionField('PERCENT', 'ROUND(PERCENT, 1)'),
			new EntityExpressionField('USING_COUNT', '(ATTACHED_COUNT + LINK_COUNT + SHARING_COUNT)'),
		],
		'select' => $select,
		'filter' => $filter,
		'order'  => $this->getOrder(['FILE_SIZE' => 'DESC']),
		'count_total' => true,
	];
	if ($this->getLimit() > 0)
	{
		$parameter['limit'] = $this->getLimit();
	}
	if ($this->getOffset() > 0)
	{
		$parameter['offset'] = $this->getOffset();
	}

	return VolumeTable::getList($parameter);
}