gifts2017

Исследователь макетов и тела макета компоновки данных

Опубликовал Armando Armando (Armando) в раздел Программирование - Инструментарий

Класс для наглядного представления тела макета компоновки данных и макетов макета компоновки данных

 

Первым делом рекомендую ознакомиться с текстом официальной документации на сайте ИТС
Если Вы знаете, что такое "Макет компоновки данных", то чтение документации можно пропустить.


Функции:
ПолучитьПредставлениеМакетовМакетаКомпоновкиДанных(, , )
ПолучитьПредставлениеТелаМакетаКомпоновкиДанных(, , )
ПолучитьПредставлениеМакетовИТелаМакетаКомпоновкиДанных(, , )

Параметры:
- схема, для которой требуется построить макет компоновки данных
- настройки, для которых необходимо создать макет компоновки данных
- макет компоновки данных. Если передан макет, то схему и настройки можно не передавать


Возвращаемое значение:
Табличный документ

Пример:
В форме отчета создать команду в обработчике которой разместить блок кода:

Исследователь = Обработки.ИсследовательМакетовИТелаМакетаКомпоновкиДанных.Создать();
Результат = Исследователь.ПолучитьПредставлениеМакетовИТелаМакетаКомпоновкиДанных(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки());
Результат.ОтображатьЗаголовки = Ложь;
Результат.ОтображатьСетку = Ложь;
Результат.Показать();


В результате будет показан табличный документ с телом и макетами макета компоновки данных.


Вот так выглядит тело и макеты расчетного листа ЗУП
Начало http://infostart.ru/upload/iblock/3f8/РасчетныйЛист.png
Продолжение http://infostart.ru/upload/iblock/6bd/РасчетныйЛистПродолжение.png


Разработка интегрирована в консоль компоновки подсистемы "Инструменты разработчика" 3.18


Теги: МакетКомпоновкиДанных, ТелоМакетаКомпоновкиДанных, ОписанияМакетовОбластейМакетаКомпоновкиДанных

Скачать файлы

Наименование Файл Версия Размер
ИсследовательМакетовИТелаМакетаКомпоновкиДанных.epf 26
.epf 6,11Kb
03.11.14
26
.epf 1.7 6,11Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Armando Armando (Armando) 16.07.14 12:35
Это либо мало кому интересно, либо мало кто понимает что это?
Не стесняйтесь задавать вопросы)
2. Геннадий Пиганов (Totoro) 27.07.14 23:11
Можно использовать для визуального сравнение изменений в схемах СКД (через сравнение файлов табличных документов). Типовой функционал этого не позволяет.
3. Влад Костянецкий (bytecoded) 21.10.14 13:36
При попытке воспользоваться наработкой получаю ошибку:

{DataProcessor.ИсследовательМакетовИТелаМакетаКомпоновкиДанных.ObjectModule(160)}: Object field not found (Выражение)
Выражение = ЗначениеПараметра.Выражение;

СКД приложил.

(для связности: проблема возникла в ходе решения другой задачи)
Прикрепленные файлы:
StatementOfMutualSettlements.zip
4. Armando Armando (Armando) 22.10.14 11:07
(3) bytecoded, макет сложный. И у меня естественно не скомпоновался.
Сделай, пожалуйста следующее:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки());
	
	ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.ОткрытьФайл("c:\Temp\МакетКомпоновки.xml");
	СериализаторXDTO.ЗаписатьXML(ЗаписьXML, МакетКомпоновки);
	ЗаписьXML.Закрыть();
КонецПроцедуры
...Показать Скрыть


Нужен полученный файл
5. Влад Костянецкий (bytecoded) 23.10.14 09:50
6. Armando Armando (Armando) 23.10.14 14:37
(5) bytecoded, исправил. Загляни в личные сообщения.
7. Armando Armando (Armando) 24.10.14 09:12
1. Исправлены ошибки
2. В описании добавлена инструкция по интеграции с консолью компоновки из подсистемы "Инструменты разработчика"
8. Armando Armando (Armando) 28.10.14 09:19
Разработка интегрирована в консоль компоновки подсистемы "Инструменты разработчика" 3.18
9. Armando Armando (Armando) 03.11.14 18:15
Добавлен вывод идентификатора таблицы при выводе строки таблицы области.
http://forum.infostart.ru/forum86/topic119478/message1242418/#message1242418
10. anton dmitriev (tyfmyl) 08.04.15 18:47
(1) Armando, Как мне программно сформировать макет для поля плоской таблицы для начала?
Я писал так:
МакетыСКД = СКД.Макеты;
	
МакетВопроса = МакетыСКД.Добавить();
МакетВопроса.Макет = Новый МакетОбластиКомпоновкиДанных;

ПараметрОбласти = МакетВопроса.Параметры.Добавить(Тип("ПараметрОбластиВыражениеКомпоновкиДанных"));
ПараметрОбласти.Имя = "Вопрос";
ПараметрОбласти.Выражение = "Регистратор.Номер";

МОСКД = МакетВопроса.Макет; 
СтрокаКД = МОСКД.Добавить(Тип("СтрокаТаблицыОбластиКомпоновкиДанных"));
	
ЯчейкаКД = СтрокаКД.Ячейки.Добавить();
ПолеОбластиКД = ЯчейкаКД.Элементы.Добавить(Тип("ПолеОбластиКомпоновкиДанных"));
ПолеОбластиКД.Значение = Новый ПараметрКомпоновкиДанных(ПараметрОбласти.Имя);
...Показать Скрыть

Но ничего не вышло. Компоновщик макета сформировал свой макет и вывел на его основе стандартный отчет, не используя созданный мной макет.
11. anton dmitriev (tyfmyl) 08.04.15 19:25
(10) tyfmyl,
Ок. Я забыл добавить макет группировки.
Еще вопрос.
Создал простую плоскую таблицу с одним полем и своим макетом.
Смотрю в СКД в макете группировки свойство ПоляГруппировки(массив) , но там нет ни одного поля. Когда оно заполняется и какого типа строками этот массив заполняется?