Имя: Пароль:
1C
 
Вопрос по одновременному формированию отчета на скд в ТД и в ТЗ
0 KnightAlone
 
18.04.24
12:30
Формируется отчет, отправляется по почте, все работает. Формируется вот этим куском:    


    ДокументРезультат = Новый ТабличныйДокумент();
    СКД = Отчеты.БлаБлаБла.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = СКД.НастройкиПоУмолчанию;
      
    Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;    
    
    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, Расшифровка);
    
    ВнешниеПараметры = Новый Структура;    
    
    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка, Истина, Ложь);    
    
    //Выводим результат в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
    
    ОтчетОбъект = Отчеты.БлаБлаБла.Создать();        
    
    Пустой =  ОтчетыСервер.ОтчетПустой(ОтчетОбъект,ПроцессорКомпоновкиДанных);
    
    Если Пустой Тогда
        ЗаписьЖурналаРегистрации(НаименованиеОтчета, УровеньЖурналаРегистрации.Предупреждение,,,"Сформирован пустой отчет");
        возврат
    Иначе  
      

Я добавляю вот этот кусок, чтобы прогнать процессор вывода еще раз, но уже в ТЗ
        
        ТЗ_ДанныеОтчета = Новый ТаблицаЗначений;
        ТЗ_ДанныеОтчета.Колонки.Добавить("ФизическоеЛицо");
        
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
        ПроцессорВывода.УстановитьОбъект(ТЗ_ДанныеОтчета);    
        ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);

Падает на последней строке с ошибкой

"Ошибка вывода результата по причине: Ошибка вложенности элементов результата компоновки данных"

Что не так? Нельзя прогнать просто процессор вывода еще раз? Надо полностью писать весь тот же код, начиная с получения СКД, но уже под вывод в ТЗ?
1 Garykom
 
18.04.24
12:41
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка, Истина, Ложь);

добавь новый
Основная теорема систематики: Новые системы плодят новые проблемы.