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