Имя: Пароль:
1C
1С v8
СКД как программно изменить шрифт заголовка?
0 aleksejafonkin
 
27.06.18
15:20
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
    лкОтборОрг       = "";
    лкОтборДата      = "";
    лкОтборПоПроекту = "";
    Для Каждого СтрОтбора Из НастройкиОтчета.Отбор.Элементы Цикл
        Если ТипЗнч(СтрОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
            Если Строка(СтрОтбора.ЛевоеЗначение) = "ПериодРегистрации" И Строка(СтрОтбора.ПравоеЗначение) <> "" И СтрОтбора.Использование = Истина Тогда
                лкОтборДата = " за " + Строка(Формат(СтрОтбора.ПравоеЗначение,"ДФ=dd.MM.yyyy"));
            КонецЕсли;
            Если Строка(СтрОтбора.ЛевоеЗначение) = "Проект" И Строка(СтрОтбора.ПравоеЗначение) <> "" И СтрОтбора.Использование = Истина Тогда
                лкОтборПоПроекту = "по проекту: " + Строка(СтрОтбора.ПравоеЗначение);
            КонецЕсли;
            Если Строка(СтрОтбора.ЛевоеЗначение) = "Организация" И Строка(СтрОтбора.ПравоеЗначение) <> "" И СтрОтбора.Использование = Истина Тогда
                лкОтборНаОрг = "на " + Строка(СтрОтбора.ПравоеЗначение);
            КонецЕсли;
            Если Строка(СтрОтбора.ЛевоеЗначение) = "ОтОрганизации" И Строка(СтрОтбора.ПравоеЗначение) <> "" И СтрОтбора.Использование = Истина Тогда
                лкОтборОтОрг = " от " + Строка(СтрОтбора.ПравоеЗначение);
            КонецЕсли;
        КонецЕсли;    
    КонецЦикла;    
    
    ПарамЗаголовок = НастройкиОтчета.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Заголовок"));
    ПарамЗаголовок.Использование = Истина;
    ПарамЗаголовок.Значение = "Реестр платежей" + лкОтборДата + Символы.ПС + лкОтборНаОрг + лкОтборОтОрг + Символы.ПС + лкОтборПоПроекту;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);

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

Отчет написан на СКД, программно меняю заголовок, но не знаю как поменять теперь шрифт у заголовка, подскажете?
1 Tonik992
 
27.06.18
15:25
В МакетеКомпоновки надо искать заголовок и там уже шаманить.

Либо ПроцессорВывода выводишь в цикле в документ, и  когда доберешься до заголовока, меняй шрифт.
2 Vakhrin
 
27.06.18
16:00
Элемент условного оформления для заголовка?
3 Малыш Джон
 
27.06.18
16:00
Сомневаюсь, что в макете будет информация о шрифте заголовке
4 Малыш Джон
 
27.06.18
16:00
(2) а условие какое?
5 Vakhrin
 
27.06.18
16:18
Никакого условия, никаких полей, только описание оформления и область применения.
6 aleksejafonkin
 
27.06.18
16:38
(5) вот как эту область отловить?
7 Tonik992
 
27.06.18
17:17
Берешь ПроцессорВывода, вызываешь НачатьВывод()

Далее цикл:
ЭлементКомпоновки = ПроцессорКомпоновки.Следующий();
Пока ЭлементКомпоновки <> Неопределено Цикл
....
// тут ты в ЭлементКомпоновки находишь заголовок и шаманишь
ПроцессорВывода.ВывестиЭлемент(ЭлементКомпоновки)
...
ЭлементКомпоновки = ПроцессорКомпоновки.Следующий();
КонецЦикла;
8 aleksejafonkin
 
27.06.18
17:26
(7) Спасибо, сейчас попробую!
9 Ботаник Гарден Меран
 
27.06.18
17:38
Зачем такие муки, если СКД программно?

Берешь
ДокументРезультат.Область(Стр1, Кол1, СтрN, КолN).Шрифт = Новый Шрифт(<ИмяШрифта>,<Размер>,...);
10 aleksejafonkin
 
27.06.18
18:00
(9) Спасибо!
11 Tonik992
 
28.06.18
09:36
(9) Такой подход менее гибкий, и слишком зависит от видимости заголовка.
12 Ботаник Гарден Меран
 
28.06.18
10:19
(11)
В (9) не подход, а намёк. А остальное - хум хау.
13 Vakhrin
 
28.06.18
11:06
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    ЭлементОформления = КомпоновщикНастроек.Настройки.УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.ИспользоватьВЗаголовке = ИспользованиеУсловногоОформленияКомпоновкиДанных.Использовать;
    ЭлементОформления.ИспользоватьВГруппировке = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
    ЭлементОформления.ИспользоватьВЗаголовкеПолей = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
    ЭлементОформления.ИспользоватьВИерархическойГруппировке = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
    ЭлементОформления.ИспользоватьВОбщемИтоге = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
    ЭлементОформления.ИспользоватьВОтборе = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
    ЭлементОформления.ИспользоватьВПараметрах = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать;
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,,,,, Истина));
КонецПроцедуры
14 Tonik992
 
28.06.18
13:33
(13) Тоже самое сделал в конструкторе. И это реально работает, проверил.
СКД удивляет