Еще один вариант отчета Статистика по документам

14.10.22

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

Отчет на базе СКД с отображением статистики по проведенным документам за указанный период с возможностью отбора по организации.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Еще один вариант отчета Статистика по документам: (вар.2)
.erf 8,42Kb
14
14 Скачать (1 SM) Купить за 1 850 руб.

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

мШаблонО="ВЫБРАТЬ
	         |	КОЛИЧЕСТВО(Док.Ссылка) КАК Счетчик,
	         |	""АвансовыйОтчет"" КАК Имя,
	         |	Док.Организация КАК Организация
	         |ИЗ
	         |	Документ.АвансовыйОтчет КАК Док
	         |ГДЕ
	         |	Док.Дата <= &Дата2
	         |	И Док.Дата >= &Дата1
	         |	И Док.Проведен = ИСТИНА
	         |{ГДЕ
	         |	Док.Организация.*}
	         |
	         |СГРУППИРОВАТЬ ПО
	         |	Док.Организация";

	мШаблон="ВЫБРАТЬ
	        |	КОЛИЧЕСТВО(Док.Ссылка) КАК Счетчик,
	        |	""АвансовыйОтчет"" КАК Имя,
	        |	NULL КАК Организация
	        |ИЗ
	        |	Документ.АвансовыйОтчет КАК Док
	        |ГДЕ
	        |	Док.Дата <= &Дата2
	        |	И Док.Дата >= &Дата1
	        |	И Док.Проведен = ИСТИНА";

мШаблонО предназначен для документов, у которых присутствует реквизит Организация, мШаблон - для остальных. Ниже приводится код для заполнения схемы запроса.

Схема=новый СхемаЗапроса; 	
	н=0;
	для каждого мета  из Метаданные.Документы цикл
		
		если мета.Реквизиты.Найти("Организация")<>неопределено тогда
			мТекстЗапроса=СтрЗаменить(мШаблонО,"АвансовыйОтчет",мета.Имя);
		иначе
			мТекстЗапроса=СтрЗаменить(мШаблон ,"АвансовыйОтчет",мета.Имя);
		конецесли;	
		
		
		если н=0 тогда
	            схема.УстановитьТекстЗапроса(мТекстЗапроса);
				мОператоры=схема.ПакетЗапросов[0].Операторы;
		иначе	                     
			буфер=новый СхемаЗапроса;        	
			буфер.УстановитьТекстЗапроса(мТекстЗапроса);
			мОператоры.Добавить(буфер.ПакетЗапросов[0].Операторы[0]);             
		конецесли;
		н=н+1;
    конеццикла;

Каждый запрос, кроме первого добавляется в коллекцию операторы.  Текст итогового запроса возвращает функция ПолучитьТекстЗапроса().

мТекст=Схема.ПолучитьТекстЗапроса();

В рассмотренном коде используется шаблон текста запроса. Код получился достаточно понятным. Но интересно было бы все сделать только средствами объекта СхемаЗапроса. Теперь мы расширили список полей запроса и добавили реквизит документа Проведен. Ниже приводится именно такой вариант.

    Схема=новый СхемаЗапроса; 	
	н=0;
	для каждого мета  из Метаданные.Документы цикл
		
		
		если н=0 тогда
				мОператор=схема.ПакетЗапросов[0].Операторы[0];
	 	иначе	                     
				мОператор=схема.ПакетЗапросов[0].Операторы.Добавить();			
		конецесли;
		мИсточник=мОператор.Источники.Добавить("Документ."+мета.Имя)   ;
		мИсточник.Источник.Псевдоним="Док";
		
		мОператор.ВыраженияОтбораКомпоновкиДанных.Добавить("Док.Дата");
		мОператор.ВыраженияОтбораКомпоновкиДанных.Добавить("Док.Проведен");
		
		
		мПоле    =мОператор.ВыбираемыеПоля.Добавить("КОЛИЧЕСТВО(Док.Ссылка)");
		мПоле    =мОператор.ВыбираемыеПоля.Добавить(""""+мета.Имя+"""");
		мПоле    =мОператор.ВыбираемыеПоля.Добавить("Док.Проведен");
		
		
		
		если мета.Реквизиты.Найти("Организация")=неопределено тогда
			мПоле    =мОператор.ВыбираемыеПоля.Добавить("NULL");	 
		иначе  
			мПоле    =мОператор.ВыбираемыеПоля.Добавить("Док.Организация");	
			мОператор.ВыраженияОтбораКомпоновкиДанных.Добавить("Док.Организация");
		конецесли;
		н=н+1;
    конеццикла;

	схема.ПакетЗапросов[0].Колонки[0].Псевдоним="Счетчик";
	схема.ПакетЗапросов[0].Колонки[1].Псевдоним="Имя";
    инд=схема.ПакетЗапросов[0].Колонки.Количество()-1;
	мИмя=схема.ПакетЗапросов[0].Колонки[инд].Псевдоним;
	если СтрНайти(мИмя,"Поле")<>0 тогда
				схема.ПакетЗапросов[0].Колонки.Удалить(инд);
	конецесли; 
	мТекст=Схема.ПолучитьТекстЗапроса();

 

 

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

Разработанный отчет тестировался  на платформе 1С:Предприятие 8.3 (8.3.21.1508) в операционной системе Windows, в конфигурации Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.100.16) .

Статистика по видам документов

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    178460    987    403    

947

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

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    7942    ovetgana    50    

75

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

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

24.12.2024    6631    Akcium    13    

42

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

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

15.05.2024    12089    implecs    6    

49

Инструментарий разработчика СКД Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

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

3 стартмани

05.02.2024    8601    64    obmailok    21    

82

СКД WEB-интеграция Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Долгое время поддерживаю web-портал, в котором появилась необходимость создавать отчеты. Просмотрев различные фреймворки на js, я решил сделать свое решение, которое позволяло бы быстро разрабатывать и добавлять новые отчеты на web-портал.

2 стартмани

11.12.2023    12233    25    John_d    26    

128

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

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

05.12.2023    9770    PROSTO-1C    15    

69
Оставьте свое сообщение