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

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    171333    959    403    

923

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

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

8400 руб.

20.08.2024    13869    107    46    

107

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

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

22200 руб.

06.10.2023    17177    43    15    

75

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

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

9360 руб.

17.05.2024    27144    94    48    

136

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

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

15000 руб.

10.11.2023    11826    44    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191058    1152    0    

919

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

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

3600 руб.

27.12.2024    1077    2    0    

5

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

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

5000 руб.

07.02.2018    104085    244    100    

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