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

07.02.24

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

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

Скачать исходный код

Наименование Файл Версия Размер
Набор данных ОБЪЕКТ для Универсального отчета:
.cfe 21,76Kb
1
.cfe 21,76Kb 1 Скачать

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

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

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

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

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

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

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

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

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

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

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

 

 

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

 

 

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

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

 

 

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

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


 

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

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

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

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

См. также

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    127278    689    389    

740

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

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

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

18000 руб.

06.10.2023    8437    25    6    

46

Infostart УДиФ: Управление данными и формами 1С

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

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

10000 руб.

10.11.2023    4763    12    2    

38

SALE! %

PowerTools

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

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

3600 2280 руб.

14.01.2013    178968    1085    0    

863

Бустер Конвертации данных 3 (Infostart Toolkit)

Инструментарий разработчика 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15128    3    12    

38

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

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

5000 руб.

07.02.2018    99919    240    97    

298

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28438    4    10    

16

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18533    6    8    

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