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

27.02.19

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

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

Файлы

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

Наименование Скачано Купить файл
Отчет по метаданным. Количество элементов справочников, документов, регистров. Отбор по периоду.
.erf 7,39Kb
105 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

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

 

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

 

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

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

См. также

Статистика базы данных Разработчик 1С:Предприятие 8 Россия Абонемент ($m)

Внешняя обработка для комплексной диагностики информационной базы 1С без прямого подключения к SQL Server или другой СУБД. Позволяет определить, какие объекты 1С занимают основной объём базы, сколько записей содержат, какова средняя интенсивность накопления данных за последние 24 месяца, сколько КБ приходится на одну запись, а также увидеть связанные таблицы хранения и структуру индексов. Расчёт выполняется пакетно с отображением прогресса и возможностью остановки. В результате формируется единая таблица по объектам метаданных с итоговыми показателями и возможностью выгрузки результатов в Excel. Подходит разработчикам 1С, администраторам и специалистам, которым необходимо быстро понять структуру и точки роста большой информационной базы.

4 стартмани

26.10.2026    435    1    VVLab    2    

3

Статистика базы данных Поиск данных Инструменты администратора БД Администрирование Разработчик Аналитик 1С 8.3 1С 8.5 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Универсальная внешняя обработка для проверки «здоровья» любой базы 1С. За один запуск выполняет 26 проверок логической целостности данных и выдаёт отчёт: оценку состояния базы от 0 до 100, список проблем по важности (критично / предупреждение / информация), расшифровку до конкретных документов и записей и рекомендации, что делать. Находит: проведённые документы без движений и непроведённые с движениями, движения с «битым» регистратором, отрицательные остатки, проводки без счёта, дубли номеров и кодов, документы с датой в будущем, отключённые и отставшие итоги, зависшие очереди обмена, администраторов без пароля и другое. Подходит для любой конфигурации: БП, УТ, КА, ERP, УНФ, ЗУП, Розница, УТ 10.3, УПП, отраслевые и самописные, с БСП и без. Платформа 8.3.10 и выше, управляемые и обычные формы. Ничего не изменяет в базе — только читает данные.

7320 руб.

20.10.2026    539    0    0    

3

Инструменты администратора БД Статистика базы данных Системный администратор 1С 8.3 Абонемент ($m)

База растёт, диски кончаются, бэкап перестал влезать в ночь — а на вопрос «что именно занимает место?» никто не может ответить. Конфигуратор молчит: самые тяжёлые таблицы часто вообще не видны в дереве метаданных. Обработка строит полную карту объёмов базы за несколько минут: все объекты метаданных с табличными частями, имена таблиц СУБД, служебные таблицы платформы отдельным списком и готовый SQL-скрипт точных размеров для MS SQL и PostgreSQL. К СУБД не обращается — только платформенные средства, только чтение.

10 стартмани

03.08.2026    2638    31    nedomolkov.ivan    9    

4

Статистика базы данных Разработчик 1С 8.3 Абонемент ($m)

Внешняя обработка для анализа фактического использования объектов метаданных конфигурации 1С. Позволяет быстро узнать, сколько создано объектов каждого вида метаданных среди справочников и документов. Какие из них активно используются, какие реквизиты заполняются, а какие остаются пустыми.

1 стартмани

27.04.2026    1869    15    archi517    0    

7

Статистика базы данных Разработчик Пользователь 1С 8.3 Абонемент ($m)

По указанному периоду показывает, какие виды документов введены в информационную базу, и также количество введенных документов.

1 стартмани

03.03.2026    1341    8    burgerkirg    0    

5

Статистика базы данных Системный администратор Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Библиотека стандартных подсистем Абонемент ($m)

Расчет размера таблиц базы данных по метаданным. Будет полезна для выбора стратегии уменьшения размера базы (свертка, переход на новую, выгрузка на тома). Иногда некоторые таблицы могут иметь необоснованно огромный размер.

3 стартмани

27.10.2025    3589    112    gebungen    0    

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