![]() |
|
ОФ.Отчет на СКД, можно формировать в таблицу значений и в табличный документ? | ☑ | ||
---|---|---|---|---|
0
vdeemer
29.11.19
✎
08:45
|
Доброе утро!
Отчет на СКД, сначала инициализирую процессор компоновки данных: [code] СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); КомпоновщикМакета = Новый МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); [/code] потом формирую таблицу значений: [code] ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ДанныеТЗ = Новый ТаблицаЗначений; ПроцессорВывода.УстановитьОбъект(ДанныеТЗ); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ЭлементыФормы.ДанныеТЗ.СоздатьКолонки(); [/code] все формируется на ура. Потом хочу повторить все в табличный документ: [code] ПроцессорКомпоновкиДанных.Сбросить(); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ПроцессорВыводаТД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВыводаТД.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВыводаТД.Вывести(ПроцессорКомпоновкиДанных); [/code] Не выходит каменный цветок, Данила-мастер: {ВнешнийОтчет.НовыйОтчет.Форма.ФормаОтчета.Форма(60)}: Ошибка при вызове метода контекста (Вывести) ПроцессорВыводаТД.Вывести(ПроцессорКомпоновкиДанных); по причине: Ошибка вывода результата по причине: Неизвестный тип макета Без сброса и повторной инициализации те же яйчишки, только в профиль(( Скопипастить весь код можно, но зачем тогда сброс процессора компоновки? |
|||
1
ДенисЧ
29.11.19
✎
08:54
|
У меня вот такое работает
Настройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); Схема = РегистрыСведений.ЗаказыИСтатусы.ПолучитьМакет("РасчетИтогов"); настройкиСхемы = Схема.НастройкиПоУмолчанию; настройкиСхемы.Отбор.Элементы.Очистить(); Для Каждого элем Из настройки.Отбор.Элементы Цикл эл1 = настройкиСхемы.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЗаполнитьЗначенияСвойств(эл1, элем); КонецЦикла; настройкиСхемы.ПараметрыДанных.Элементы.Очистить(); Для Каждого элем Из настройки.ПараметрыДанных.Элементы Цикл эл1 = настройкиСхемы.ПараметрыДанных.Элементы.Добавить(); ЗаполнитьЗначенияСвойств(эл1, элем); КонецЦикла; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных(); МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, настройкиСхемы,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки); |
|||
2
toypaul
гуру
29.11.19
✎
09:05
|
у тебя МакетКомпоновкиДанных "заточен" под ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений
для вывода в ТД нужен другой генератор |
|||
3
vdeemer
29.11.19
✎
09:07
|
(1) ну в принципе у меня та же песня, спасибо.
(2) точно, слона-то я и не заметил, дважды спасибо)) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |