Имя: Пароль:
1C
1С v8
Программное выполнение отчета СКД
0 YF
 
26.02.14
16:55
Есть отчет, в нем макет компоновки данных

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

В модуле отчета текст процедуры:


схемаКомпоновкиДанных_    = ПолучитьМакет("ОстаткиПериоды_СКД");

    настройки_                    = схемаКомпоновкиДанных_.НастройкиПоУмолчанию;
    
    компоновщикМакета_            = Новый КомпоновщикМакетаКомпоновкиДанных;
    макетКомпоновки_            = компоновщикМакета_.Выполнить(схемаКомпоновкиДанных_, настройки_);
    
    процессорКомпоновкиДанных_    = Новый ПроцессорКомпоновкиДанных;
    процессорКомпоновкиДанных_.Инициализировать(макетКомпоновки_);
    
    процессорВывода_            = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    лДанныеОСальдоИПериодах        = процессорВывода_.Вывести(процессорКомпоновкиДанных_);


Ругается на строку "лДанныеОСальдоИПериодах        = процессорВывода_.Вывести(процессорКомпоновкиДанных_);
"
ошибка:
Ошибка при вызове метода контекста (Вывести)
    лДанныеОСальдоИПериодах        = процессорВывода_.Вывести(процессорКомпоновкиДанных_);
по причине:
Ошибка вывода результата
по причине:
Неизвестный тип макета

что делаю не так?
1 al_zzz
 
26.02.14
17:04
(0) Возможно, дело в настройке. Не таблица там у тебя?
2 Дмитрий666
 
26.02.14
17:05
помоему нельзя так схемаКомпоновкиДанных_    = ПолучитьМакет("ОстаткиПериоды_СКД");
3 Дмитрий666
 
26.02.14
17:08
тебе ведь нужна схема компоновки данных, нужно что-то типа этого:

СхемаКомпоновкиДанных=Новый СхемаКомпоновкиДанных;
...
...

хотя могу ошибаться
4 YF
 
26.02.14
17:08
А как тогда?
5 barrgand
 
26.02.14
17:09
процессорВывода_.УстановитьОбъект(ТЗ)
процессорВывода_.Вывести(процессорКомпоновкиДанных_)
6 YF
 
26.02.14
17:13
Перем лДанныеОСальдоИПериодах;
    
    лДанныеОСальдоИПериодах = Новый ТаблицаЗначений;
    
    // 1. Соберем данные о периодах и сальдо
    
    схемаКомпоновкиДанных_    = ПолучитьМакет("ОстаткиПериоды_СКД");
    настройки_                    = схемаКомпоновкиДанных_.НастройкиПоУмолчанию;
    
    компоновщикМакета_            = Новый КомпоновщикМакетаКомпоновкиДанных;
    макетКомпоновки_            = компоновщикМакета_.Выполнить(схемаКомпоновкиДанных_, настройки_);
    
    процессорКомпоновкиДанных_    = Новый ПроцессорКомпоновкиДанных;
    процессорКомпоновкиДанных_.Инициализировать(макетКомпоновки_);
    
    процессорВывода_            = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    процессорВывода_.УстановитьОбъект(лДанныеОСальдоИПериодах);
    процессорВывода_.Вывести(процессорКомпоновкиДанных_);


ошибка:

Ошибка при вызове метода контекста (Вывести)
    процессорВывода_.Вывести(процессорКомпоновкиДанных_);
по причине:
Ошибка вывода результата
по причине:
Неизвестный тип макета
7 barrgand
 
26.02.14
17:14
макетКомпоновки_            = компоновщикМакета_.Выполнить(схемаКомпоновкиДанных_, настройки_,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
8 barrgand
 
26.02.14
17:16
(7) и лДанныеОСальдоИПериодах = Новый ТаблицаЗначений, ну или дерево
9 YF
 
26.02.14
17:21
(7) Спасибо, оно самое
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан