Имя: Пароль:
1C
 
ПриКомпоновкеРезультата вывести не в макет компоновщика
0 idw
 
10.07.24
10:53
Добрый день. Надо из процедуры ПриКомпоновкеРезультата вывести данные не только в типовой ДокументРезультат, а еще в одну табличную часть. Как это можно сделать?
1 Мультук
 
10.07.24
10:58
(0)

Загуглить и написать код
2 idw
 
10.07.24
10:58
(1) пробовал, не нашел! И даже заяндексил.
3 Мультук
 
10.07.24
11:14
Гуглим: 1С СКД данные в таблицуЗначений

https://1c8xx.ru/skdtzprogout.php
Выгрузить в таблицу значений СКД



Читаем, в результате получается что-то вроде этого


Не проверял (лень).
Внимание! Фактически отчёт выполняется два раза.
И данные теоретически могут быть разные


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
        //--- Генерируем отчёт

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

    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

    

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

    тзДанныеОтчета = Новый ТаблицаЗначений();
    ПроцессорВывода.УстановитьОбъект(тзДанныеОтчета);
    ДанныеОтчета = ПроцессорВывода.Вывести(ПроцессорКомпоновки);



КонецПроцедуры
4 idw
 
10.07.24
12:18
(3) а зачем мне в таблицу значения? Мне надо вывести некие данные в табличный документ, причем не СКД.
То есть на СКД данные выводятся в табличный документ СКД - ДокументРезультат. А после вывода этих данных, надо вывести некие итоговые данные в другой табличный документ.
5 Мультук
 
10.07.24
12:22
(4)

Вы пишете

>>а еще в одну табличную часть

Я вам показываю как из отчёта на СКД получить таблицу значений.
А уж таблицу значений можно загрузить в табличную частью.


Теперь вы "переобуваетесь" и оказывается, что "табличная часть"
это другой табличный документ.

Ну и? Что нужно то в итоге?
6 idw
 
10.07.24
12:24
(5) в табличный документ, не в "ДокументРезультат".
7 Valdis2007
 
10.07.24
12:26
(0) "не только в типовой ДокументРезультат"

не правильно напмсал...надо - не только лишь в типовой ДокументРезультат
8 Мультук
 
10.07.24
12:39
(0)

Как понял задачу я.

Есть некий "большой отчёт", который (например) строится достаточно долго.
В результате получаются данные, которые подробно выводятся в "Табличный Документ 1".
В тот же "Табличный Документ 1" выводятся некие сводные "итоговые"данные.

Как пример типовой отчет ТНС из УТ, где после подробного отчета идёт сводка по единицам хранениия

Пользователь1 радуется.

Но (например) руководству нужно отправить только сводные "итоговые"данные"
т.е. отрезать от "Табличный Документ 1" часть отчёта и создать "Табличный Документ 2"

==
Варианты решения
1) Сформировать отчёт еще раз с другими настройками -- плохо, это уже будут "не совсем те самые данные"

2) При формировании "всего этого"
2а) Отчётом на СКД формируем промежуточные данные (таблицу значений)
2б) Далее по этой таблице значений строим все нужные отчёты

3) Как-то выковыриваем из "Табличный Документ 1" область с нужными итоговыми данными
{такое я не делал}, но я думаю можно просто использовать некий маркер в отчете, скопировать табличный документ
и отрезать лишнее.
9 idw
 
10.07.24
12:43
(8) не совсем. :) Выводится большой отчет по сотрудникам. При его формировании заполняется некая ТЗ со списком сотрудников и итоговых данных. Большой отчет вывелся. А вот данные из этого ТЗ надо вывести уже в другой табличный документ.