Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перехват вывода в макет СКД
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Система компоновки данных
kostya77
Добрый день. есть отчет на СКД . которой берет данные из регистра ВыпусПродукцииУслуг берет продукцию, а из РегитсраБухгалтерии бер Кт обороты по 281 сч. Можно как-то выгрузить результат работы СКД в Таблицу значений? Мне потом нужно обработать результат и вывсти его в свой макет
sava1
можно

ПриКомпоновке....

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; 
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СКД, НастройкиКомпоновщика,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

    //Через процессор компоновки получим результат
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

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

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


в тзРезультат будет выборка
kostya77
А как сделать вывод в свой макет?
xlmel
Если там не очень сложный запрос, то может просто создать свой отчет, добавить схему компоновки данных, в нее добавить набор данных - Объект, прописать поля, параметры, ресурсы, настройки. Затем в модуле объекта отчета в процедуре ПриКомпоновкеРезультата прописать следующий код:

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


И создать функцию ПолучитьТаблицу() в которой просто получить необходимую таблицу. Параметр ПериодОтчета добавлен просто для примера
sava1
kostya77 @ Сегодня, 13:58 необходимо зарегистрироваться для просмотра ссылки ,

нарисовать макет
обойти таблицу (или дерево) тзРезультат с выводом в табДок
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.