Подсчитать размер файлов на томе. Вернет размер файлов на томе - в байтах.
// Вернет размер файлов на томе - в байтах.
Функция ПодсчитатьРазмерФайловНаТоме(СсылкаТома) Экспорт
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат 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
///////////////////////////////////////////////////////////////////////////////////////////////////////
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)