|
|||||||
Таблицу значений в табличный документ с помощью СКД
Время создания: 14.09.2016 12:12
Автор: pola
Текстовые метки: 1c.code
Раздел: Программирование - 1с - code
Запись: xintrea/mytetra_anatolean/raw/master/base/1473844346xq1m3wqwgu/text.html на bitbucket.org
|
|||||||
|
|||||||
Процедура ТрансформироватьВТабличныйДокумент(ТаблицаДанных, ДокументРезультат, КомментарийАвтора = "") Экспорт
ДокументРезультат = Новый ТабличныйДокумент;
ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТаблицаДанных", ТаблицаДанных);
СКД = Новый СхемаКомпоновкиДанных; ИД = СКД.ИсточникиДанных.Добавить(); ИД.Имя = "ИсточникДанных"; ИД.ТипИсточникаДанных = "Local"; НаборДанных = СКД.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных")); НаборДанных.Имя = "НаборДанных1"; НаборДанных.ИмяОбъекта = "ТаблицаДанных"; НаборДанных.ИсточникДанных = "ИсточникДанных";
//добавление параметров СКД ////автор ПараметрИсполнитель = СКД.Параметры.Добавить(); ПараметрИсполнитель.Имя = "Автор"; ////дата сохранения ПараметрДатаСохранения = СКД.Параметры.Добавить(); ПараметрДатаСохранения.Имя = "ДатаСохранения"; ////комментарий автора ПараметрКомментарий = СКД.Параметры.Добавить(); ПараметрКомментарий.Имя = "Комментарий";
НастройкиСКД = СКД.НастройкиПоУмолчанию;
//добавление группировки *ДетальныеЗаписи* ГруппировкаДетальныеЗаписи = НастройкиСКД.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ГруппировкаДетальныеЗаписи.Использование = Истина; ВыбранныеПоляДетальныеЗаписи = ГруппировкаДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); ВыбранныеПоляДетальныеЗаписи.Использование = Истина;
Для Каждого КолонкаТаблицыДанных Из ТаблицаДанных.Колонки Цикл ////поля набора данных МассивТипов = Новый Массив; Если ТаблицаДанных.Количество() > 0 Тогда МассивТипов.Добавить(ТипЗнч(ТаблицаДанных[0][КолонкаТаблицыДанных.Имя])); КонецЕсли; ИмяКолонки = КолонкаТаблицыДанных.Имя; ПолеНабораДанных = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); ПолеНабораДанных.Поле = ИмяКолонки; ПолеНабораДанных.ПутьКДанным = ИмяКолонки; ПолеНабораДанных.Заголовок = ИмяКолонки; ПолеНабораДанных.ТипЗначения = Новый ОписаниеТипов(МассивТипов); ////выбранные поля настроек ВыбранноеПоле = НастройкиСКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Использование = Истина; ВыбранноеПоле.Заголовок = ИмяКолонки; ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяКолонки);
КонецЦикла;
//добавление параметров настроек ПараметрыДанных = НастройкиСКД.ПараметрыДанных.Элементы; ////автор ПараметрИсполнитель = ПараметрыДанных.Добавить(); ПараметрИсполнитель.Параметр = Новый ПараметрКомпоновкиДанных("Автор"); ПараметрИсполнитель.Использование = Истина; ПараметрИсполнитель.Значение = ПараметрыСеанса.ТекущийПользователь; ////дата сохранения ПараметрДатаСохранения = ПараметрыДанных.Добавить(); ПараметрДатаСохранения.Параметр = Новый ПараметрКомпоновкиДанных("ДатаСохранения"); ПараметрДатаСохранения.Использование = Истина; ПараметрДатаСохранения.Значение = ТекущаяДата(); ////комментарий автора ПараметрКомментарий = ПараметрыДанных.Добавить(); ПараметрКомментарий.Параметр = Новый ПараметрКомпоновкиДанных("Комментарий"); ПараметрКомментарий.Использование = Истина; ПараметрКомментарий.Значение = КомментарийАвтора;
//оформление ПараметрыВывода = НастройкиСКД.ПараметрыВывода;
МакетОформления = ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("МакетОформления")); МакетОформления.Использование = Истина; МакетОформления.Значение = "Зеленый";
ВыводитьПараметрыДанных = ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьПараметрыДанных")); ВыводитьПараметрыДанных.Использование = Истина; ВыводитьПараметрыДанных.Значение = ТипВыводаТекстаКомпоновкиДанных.Выводить;
//генерация КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, НастройкиСКД);
ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТаблицаДанных", ТаблицаДанных);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных);
ДокументРезультат = Новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|