ПодсчитатьРазмерФайловНаТоме (БСП)

Автор: 1С
ОбщийМодуль.РаботаСФайламиСлужебный
БСП

Подсчитать размер файлов на томе. Вернет размер файлов на томе - в байтах.

// Вернет размер файлов на томе - в байтах.
Функция ПодсчитатьРазмерФайловНаТоме(СсылкаТома) Экспорт
	
	Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
		Возврат 0;
	КонецЕсли;
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЕСТЬNULL(СУММА(Версии.Размер), 0) КАК РазмерФайлов
	|ИЗ
	|	Справочник.ВерсииФайлов КАК Версии
	|ГДЕ
	|	Версии.Том = &Том";
	
	Запрос.Параметры.Вставить("Том", СсылкаТома);
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Если Выборка.Следующий() Тогда
		РазмерФайловВТоме = Число(Выборка.РазмерФайлов);
	КонецЕсли;
	
	ТипыВладельцев = Метаданные.РегистрыСведений.НаличиеФайлов.Измерения.ОбъектСФайлами.Тип.Типы();
	ВсеИменаСправочников = Новый Соответствие;
	
	Запрос = Новый Запрос;
	Запрос.Параметры.Вставить("Том", СсылкаТома);
	
	Для Каждого Тип Из ТипыВладельцев Цикл
		
		Если Тип = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда
			Продолжить;
		КонецЕсли;
		
		ИменаСправочников = ИменаСправочниковХраненияФайлов(Тип, Истина);
		
		Для каждого КлючИЗначение Из ИменаСправочников Цикл
			Если ВсеИменаСправочников[КлючИЗначение.Ключ] <> Неопределено Тогда
				Продолжить;
			КонецЕсли;
			ИмяСправочникаПрисоединенныхФайлов = КлючИЗначение.Ключ;
			ВсеИменаСправочников.Вставить(КлючИЗначение.Ключ, Истина);
		
			Запрос.Текст =
			"ВЫБРАТЬ
			|	ЕСТЬNULL(СУММА(ПрисоединенныеФайлы.Размер), 0) КАК РазмерФайлов
			|ИЗ
			|	&ИмяСправочника КАК ПрисоединенныеФайлы
			|ГДЕ
			|	ПрисоединенныеФайлы.Том = &Том";
			Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяСправочника",
				"Справочник." + ИмяСправочникаПрисоединенныхФайлов);
			
			Выборка = Запрос.Выполнить().Выбрать();
			Если Выборка.Следующий() Тогда
				РазмерФайловВТоме = РазмерФайловВТоме + Выборка.РазмерФайлов;
			КонецЕсли
		КонецЦикла;
	КонецЦикла;
	
	Возврат РазмерФайловВТоме;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПеренестиВсеФайлыВТома (БСП)

УдалениеФайлаТома (БСП)

ЕстьФайлыВТомах (БСП)

ЕстьТомаХраненияФайлов (БСП)

ДобавитьФайлыВТома (БСП)

ПредставлениеРазмераФайла (БСП)

МаксимальныйРазмерФайла (БСП)

ПроверкаСсылокНаНесуществующиеФайлыВТоме (БСП)

ХранениеФайловВТомахНаДиске (БСП)

Синтакс-помощник БСП с нейросетевым ассистентом