Отчет по метаданным. Количество элементов справочников, документов, регистров. Отбор по периоду

27.02.19

База данных - Статистика базы данных

Отчет по метаданным. Количество элементов справочников, документов, регистров. Есть отбор по периоду для периодических метаданных. Можно использовать для анализа при переносе данных. 8.3.13.1644.

Платные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Отчет по метаданным. Количество элементов справочников, документов, регистров. Отбор по периоду.
.erf 7,39Kb
83 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний за 2430 руб. в месяц

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Отчет строится универсально по метаданным. В данный момент реализовано для справочников. документов, регистров сведений и накоплений. Возможно добавить свои. Показывается количество записей в каждом объекте метаданных. Сделано для сравнения при переносе данных и текущего объема в информационной базе. Тестировалось на 8.3.13.1644.

Сначала делается обход по метаданным. Запросом в цикле получаем количество элементов, собираем в таблицу. Полученную таблицу передаем в СКД для вывода отчета. За счет того, что таблица с данными уже загружена в СКД, можете только настроить структура под себя и нужный отчет готов. Код открытый.

Для желающих сделать все самостоятельно выкладываю код для формирования внешней таблицы, дальше программно формируете отчет на СКД и подключаете внешние данные.

 

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

 

Вступайте в нашу телеграмм-группу Инфостарт

Метаданные Анализ БД

См. также

Статистика базы данных Программист 1С v8.3 Россия Абонемент ($m)

Отчет выводит количество объектов (записей) и их размер в базе любой конфигурации на УФ. По типам метаданных: справочники, документы, регистры сведений, накопления, бухгалтерии, расчета.

1 стартмани

13.05.2025    1502    27    SanchoD    24    

7

Статистика базы данных Программист 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Еще одна публикация, позволяющая корректно оценить количество элементов справочников и документов в базе данных, а также их количество за выбранный период.

1 стартмани

10.04.2025    1279    16    aximo    14    

7

Статистика базы данных Программист 1С v8.3 Бесплатно (free)

Обработка по отображению количества объектов в базе (документов и справочников). Позволяет проанализировать количество всех справочников в базе, а также документов за период (если период не заполнен, покажет общее количество документов) и перейти в форму списка каждого объекта.

15.03.2025    933    74    user914355    0    

6

Статистика базы данных Программист 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Обработка позволяет посмотреть количество данных в системе по каждому объекту (количество документов, справочников, и т.д.). Информация также дополняется данными из журнала регистрации по дате последнего изменения.

1 стартмани

19.12.2024    981    17    smirnov0ser    0    

5

Статистика базы данных Программист 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Анализ количества записей регистров/документов/справочников, в том числе в динамике.

13.11.2024    1832    197    evgeni-red    4    

9

Статистика базы данных Программист 1С v8.3 1C:Бухгалтерия Абонемент ($m)

«Навигатор метаданных» поможет изучать структуру данных конфигурации, переходить по связям между объектами конфигурации.Для аналитиков и разработчиков.

1 стартмани

11.09.2024    1748    25    m_kislyak    3    

9

Статистика базы данных Программист 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Абонемент ($m)

Сбор статистики информационной базы в виде отчета - наименование конфигурации, версия, количество записей документов, регистров сведений, справочников, обменов.

1 стартмани

10.09.2024    4399    63    pahno    9    

9

Статистика базы данных Программист 1С v8.3 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Данная обработка - алгоритм предлагает оценку вашей базы на количество тех или иных типов документов с их реквизитами.

6 стартмани

12.08.2024    1254    0    aximo    2    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. pelmenex 19.07.22 13:35 Сейчас в теме
По мне лучше как то так написать:
МассивМД = Новый Соответствие;
МассивМД.Вставить("Документ","Документы");
МассивМД.Вставить("Справочник","Справочники");
МассивМД.Вставить("РегистрНакопления","РегистрыНакопления");
МассивМД.Вставить("РегистрСведений","РегистрыСведений");
Запрос = Новый Запрос;
Для каждого ТипМД из МассивМД Цикл
	Для каждого Мд из Метаданные[ТипМД.Значение] Цикл
		
		ВидМД = Мд.Имя;
		Запрос.Текст = "Выбрать ЕстьNULL(Сумма(1),0) КАК Количество Из " + ТипМД.Ключ + "." +ВидМД;
		РезультатЗапроса = Запрос.Выполнить();
		Выборка = РезультатЗапроса.Выбрать();
		Выборка.Следующий();
		Если Выборка.Количество > 0 Тогда
			Сообщить(ТипМД.Ключ + "." + ВидМД + ": " + Выборка.Количество);
		КонецЕсли;	
	КонецЦикла;	
КонецЦикла;
Показать
user1767032; user870478; itcorpru; aezdakov; nekotina; +5 Ответить
Оставьте свое сообщение