Каталог решений - Анализ количества справочников и документов в базе 1С

Анализ количества справочников и документов в базе 1С

Анализ количества справочников и документов в базе 1С

В наличии

Отчет выводит количество всех документов и элементов справочников в базе 1С.

Категория:

Описание

Идея публикации аналогична infostart.ru/public/1144838/.

Порой требуется провести экспресс оценку ведения учета в базе. Приложенный отчет позволяет вывести количество всех документов и элементов справочников в базе 1С.

Ниже код формы отчета.

&НаСервере
Процедура СформироватьНаСервере() 
	
	ТабДок.НачатьАвтогруппировкуСтрок();
	
	ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
	Макет = ОтчетОбъект.ПолучитьМакет("Макет");  
	ТабДок.Очистить(); 
	
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ОбластьЗаголовок.Параметры.Заголовок = "Количество документов";
	ТабДок.Вывести(ОбластьЗаголовок, 0);
	
	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
	ОбластьГод = Макет.ПолучитьОбласть("Год");
	ОбластьПроведен = Макет.ПолучитьОбласть("Проведен");
	
	Для Номер = 1 По Метаданные.Документы.Количество() Цикл
		ИмяДок = Метаданные.Документы.Получить(Номер-1).Имя;  
		
		Если Не ПравоДоступа("Чтение", Метаданные.Документы.Получить(Номер-1)) Тогда 
			Продолжить;
		КонецЕсли;
		
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	ГОД(Документ.Дата) КАК Год,
		|	ВЫБОР
		|		КОГДА Документ.Проведен
		|			ТОГДА ""Проведен""
		|		ИНАЧЕ ""Не проведен""
		|	КОНЕЦ КАК Проведен,
		|	Документ.Ссылка КАК Ссылка
		|ИЗ
		|	Документ.ПоступлениеТоваров КАК Документ
		|ИТОГИ
		|	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Ссылка)
		|ПО
		|	ОБЩИЕ,
		|	Год,
		|	Проведен"; 
		
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПоступлениеТоваров", ИмяДок); 
		РезультатЗапроса = Запрос.Выполнить();  
		
		ВыборкаОбщие = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
		Пока ВыборкаОбщие.Следующий() Цикл 
			ОбластьШапкаТаблицы.Параметры.Заполнить(ВыборкаОбщие);
			ОбластьШапкаТаблицы.Параметры.ИмяОбъекта = ИмяДок; 
			ТабДок.Вывести(ОбластьШапкаТаблицы, 1);
			ВыборкаГод = ВыборкаОбщие.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			Пока ВыборкаГод.Следующий() Цикл
				ОбластьГод.Параметры.Заполнить(ВыборкаГод);
				ТабДок.Вывести(ОбластьГод, 2);
				ВыборкаПроведен = ВыборкаГод.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				Пока ВыборкаПроведен.Следующий() Цикл
					ОбластьПроведен.Параметры.Заполнить(ВыборкаПроведен);
					ТабДок.Вывести(ОбластьПроведен, 3);
				КонецЦикла;
			КонецЦикла; 
		КонецЦикла;
		
		
	КонецЦикла;
	
	ОбластьЗаголовок.Параметры.Заголовок = "Количество справочников";
	ТабДок.Вывести(ОбластьЗаголовок, 0);
	
	Для Номер = 1 По Метаданные.Справочники.Количество() Цикл
		ИмяСпр = Метаданные.Справочники.Получить(Номер-1).Имя;
		
		Если Не ПравоДоступа("Чтение", Метаданные.Справочники.Получить(Номер-1)) Тогда 
			Продолжить;
		КонецЕсли;
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Справочник.Ссылка) КАК Ссылка
		|ИЗ
		|	Справочник.Номенклатура КАК Справочник";
		
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "Номенклатура", ИмяСпр); 
		
		РезультатЗапроса = Запрос.Выполнить();
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			ОбластьШапкаТаблицы.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
			ОбластьШапкаТаблицы.Параметры.ИмяОбъекта = ИмяСпр; 
			ТабДок.Вывести(ОбластьШапкаТаблицы, 2);
		КонецЦикла;
		
	КонецЦикла; 
	
	ТабДок.ЗакончитьАвтогруппировкуСтрок(); 
	
	
КонецПроцедуры

Тестировалось на платформе 1С:Предприятие 8.3 (8.3.20.1590), конфигурациях Розница, редакция 2.3 (2.3.10.32), 1С:ERP Управление предприятием 2 (2.5.7.255).

has been added to your cart:
Оформление заказа