Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

СКД как программно изменить шрифт заголовка?

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

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

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Читай всё полезное и впитывай, а нападки игнорируй. Здесь так принято. aka AMIGO
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует