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