Набор данных ОБЪЕКТ для Универсального отчета

07.02.24

Разработка - Инструментарий разработчика

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Набор данных ОБЪЕКТ для Универсального отчета:
.cfe 21,76Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

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

&Вместо("ПриКомпоновкеРезультата")
Процедура РУО_ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
	Отчеты.УниверсальныйОтчет.ВывестиКоличествоПодчиненныхЗаписей(Настройки, СхемаКомпоновкиДанных, СтандартнаяОбработка);
	
	ЗаменитьЗначенияПараметровНаПредставления(Настройки, Настройки.ДополнительныеСвойства.ДоступныеЗначения);
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
	
	ВнешниеДанные = Новый Структура;
	РУО_ПолучитьОбъектныеДанные(ВнешниеДанные, МакетКомпоновки.НаборыДанных);   
	
	Если ВнешниеДанные.Количество() > 0 Тогда
		СтандартнаяОбработка = Ложь;
	КонецЕсли; 
			
	Если СтандартнаяОбработка Тогда 
		Возврат;
	КонецЕсли;
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеДанные, ДанныеРасшифровки);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);

КонецПроцедуры

Процедура "РУО_ПолучитьОбъектныеДанные" определяет, есть ли в схеме универсального отчета наборы данных - объекты, и заполняет их данными.

Процедура РУО_ПолучитьОбъектныеДанные(ДанныеВВидеСтруктуры, НаборыДанных)
	
	Для Каждого НаборДанных Из НаборыДанных Цикл
		
		Если ТипЗнч(НаборДанных) = Тип("НаборДанныхОбъединениеМакетаКомпоновкиДанных") Тогда
			
			РУО_ПолучитьОбъектныеДанные(ДанныеВВидеСтруктуры, НаборДанных.Элементы);  
			
		ИначеЕсли ТипЗнч(НаборДанных) =  Тип("НаборДанныхОбъектМакетаКомпоновкиДанных") Тогда
			
			ДанныеВВидеСтруктуры.Вставить(НаборДанных.ИмяОбъекта,
															РегистрыСведений.РУО_АлгоритмыПолученияДанных.Данные(НаборДанных.Имя,НаборДанных.ИмяОбъекта));
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

Если встречается набор данных Объединение, то обрабатываются и вложенные наборы данных. Процедура обращается к модулю менеджера регистра сведений РУО_АлгоритмыПолученияДанных для получения сформированной таблицы значений с данными для отчета.

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

Функция Данные(ИмяНабора,ИмяОбъекта) Экспорт
	
	Перем Данные;
	
	ЗаписьАлгоритмаПолученияДанных = РегистрыСведений.РУО_АлгоритмыПолученияДанных.Получить(Новый Структура("ИмяНабора,ИмяОбъекта",ИмяНабора, ИмяОбъекта));
	ГотоваяТаблица = ЗаписьАлгоритмаПолученияДанных.ГотоваяТаблица;
	Алгоритм = ЗаписьАлгоритмаПолученияДанных.Алгоритм;
	
	Если ГотоваяТаблица Тогда
		Чтение = Новый ЧтениеJSON;
		Чтение.УстановитьСтроку(Алгоритм);
		Попытка
			Данные = СериализаторXDTO.ПрочитатьJSON(Чтение);
		Исключение 
	    	ТекстКомментария = ОписаниеОшибки();
	    	ЗаписьЖурналаРегистрации("Для набора " + ИмяНабора + " и объекта " + ИмяОбъекта + " выявлена проблема", УровеньЖурналаРегистрации.Ошибка,,,ТекстКомментария);			
		КонецПопытки;
		Чтение.Закрыть();	
	Иначе
		Выполнить(Алгоритм);   
	КонецЕсли;
	
	Возврат Данные;
	
КонецФункции   

Регистр сведений состоит из измерений ИмяНабора, ИмяОбъекта и ресурсов ГотоваяТаблица (признак того, что данные формируются программно или записаны в json-формате) и Алгоритм

В форме списка регистра есть возможность загрузить данные из таблицы Excel или создать программно таблицу значений на форме, заполнить её интерактивно и поместить в отдельную запись в регистре.

Пример загрузки из файла Excel:

 

 

Пример интерактивного формирования таблицы значений:

 

 

Сформированные таблицы помещаются в записи регистра сведений в формате JSON. При этом флаг "Готовая таблица" проставляется автоматически. 

При создании новой записи в РС в поле Алгоритм можно прописать программный код для формирования таблицы значений, в этом случае флаг "Готовая таблица" не устанавливается. 

 

 

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

Полученная схема может быть загружена в Универсальный отчет и использована при составлении отчета, основанного на данных, хранящихся в регистре сведений.


 

Расширение тестировалось на платформе 1С 8.3.23.1865.

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.12.208

Универсальный отчет Набор данных объект

См. также

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

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

12000 руб.

02.09.2020    169256    937    403    

905

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    12582    99    42    

101

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    26521    90    48    

134

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    16818    41    15    

75

SALE! %

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

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

4800 3840 руб.

14.01.2013    190540    1150    0    

918

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

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

15000 руб.

10.11.2023    11390    40    27    

66

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    768    2    0    

4

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    103924    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. lexev 28.10.24 14:31 Сейчас в теме
Интересное решение, серьезно расширяет универсальность Универсального отчета (не побоюсь использовать тавтологию в данном случае). В условиях, когда пользователи генерируют задачи по отчетам с завидной частотой, очень поможет ускорить процесс
Оставьте свое сообщение