Имя: Пароль:
1C
1С v8
СКД Не применяется макет оформления, если программный вывод
,
0 famnam
 
27.12.16
09:58
1С:Предприятие 8.3 (8.3.8.1652)
Сделал отчет, который выводит данные через не основной макет СКД. Хотя в самой СКД макет оформления явно указан Основной, выводится все без оформления. Если указать какой-либо другой макет оформления, то оформление накладывается. Если макет СКД назначить основным (для теста), то макет оформления Основной срабатывает. Что за ерунда?
1 famnam
 
27.12.16
10:04
Выявил следующее:
при программном выводе отчет выводится без оформления, если указан Основной макет оформления
2 Радим1987
 
27.12.16
10:07
исходный код?
3 famnam
 
27.12.16
10:08
сделал тестовый отчет. Макет СКД назначил основным и написал такой код

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

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

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

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


КонецПроцедуры
4 famnam
 
27.12.16
10:11
не пойму как картинку прикрепить
5 famnam
 
27.12.16
10:15
т.е. использовал типовой вывод и программный. Получил следующее:
http://www.picshare.ru/view/7829422/
6 famnam
 
27.12.16
10:15
как видно программный вывод без оформления.
7 Радим1987
 
27.12.16
10:15
//Вместо СКД.НастройкиПоУмолчанию

ТекОбъект = РеквизитФормыВЗначение("Отчет");        
НастройкиОтчета = ТекОбъект.КомпоновщикНастроек.ПолучитьНастройки();
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, НастройкиОтчета);
8 famnam
 
27.12.16
10:16
(7) отчет без формы.
9 famnam
 
27.12.16
10:17
(7)КомпоновщикНастроек.ПолучитьНастройки() помогло! Спасибо
10 famnam
 
27.12.16
10:23
Вопрос не решен :)
Как я уже сказал в (0), я вывожу в НЕ основную СКД. Отчет состоит из 2 макетов СКД. Основной макет собирает данные, выгружает в таблицу, где происходит обработка данных. Затем результат загружается в другой макет СКД для отображения пользователю. Так вот этот код здесь уже не работает, тк во 2 макет грузятся настройки первого:
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, НастройкиОтчета);
11 singlych
 
27.12.16
10:39
Вообще-то там (5) есть оформление. Только фон заголовков группировок белый и рамки серые. Отсутствие оформления выглядит по-другому. Может у тебя там в настройках условное оформление или свой макет?
12 famnam
 
27.12.16
10:40
вопрос снят!
Ковыряния не к чему не привели. Просто запилил отдельный макет оформления на основании Основного и передал его в компоновщик.

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

Всем спасибо. С наступающим!