четверг, 5 февраля 2015 г.

Динамическое изменение шрифта в макете в зависимости от условия

На одном из проектов возникла задача: нужно было в печатной форме документа заказа в 1С УТ сделать, чтобы если количество товара в какой-то строке больше единицы, чтобы название товара и его количество в этой строке выделялись жирным шрифтом.

Решила так: Нашла в УТ обработку ПечатьЗаказовНаТоварыиУслуги, сохранила ее как внешнюю обработку, в полученной внешней обработке в модуле менеджера нашла цикл, выводящий на печать товары, дописала:

Если СтрокаТовары.Количество > 1 Тогда
ОбластьТоварСтроки.ТекущаяОбласть.Шрифт=Новый Шрифт(ОбластьТоварСтроки.ТекущаяОбласть.Шрифт, , 10,Истина);
Иначе
        ОбластьТоварСтроки.ТекущаяОбласть.Шрифт=Новый Шрифт(ОбластьТоварСтроки.ТекущаяОбласть.Шрифт, , 8,Ложь);
КонецЕсли;

Потом чуть ниже, где выводилась сама циферка - количество - дописала:

Если СтрокаТовары.Количество > 1 Тогда
ОбластьДанныхСтроки.ТекущаяОбласть.Шрифт=Новый Шрифт(ОбластьДанныхСтроки.ТекущаяОбласть.Шрифт, , 10,Истина);
Иначе
ОбластьДанныхСтроки.ТекущаяОбласть.Шрифт=Новый
Шрифт(ОбластьДанныхСтроки.ТекущаяОбласть.Шрифт, , 8,Ложь);
КонецЕсли;

Вот так вот. Из интересного было то, что свойство шрифта напрямую на запись недоступно - только через создание нового объекта шрифта. Ну, это логично.

Комментариев нет: