IE 2017

Шрифт в области Табличного документа

1. Николай (frenzymind) 11.01.17 07:11 Сейчас в теме
Доброго времени суток. Есть следующий код:

...
ТабДок = Новый ТабличныйДокумент;

...
СекцияВеществаУровень = Макет.ПолучитьОбласть("ВеществаУровень");
...
СтартШрифт = СекцияВеществаУровень.ТекущаяОбласть.Шрифт;
					
СекцияВеществаУровень.ТекущаяОбласть.Защита = ложь;
СекцияВеществаУровень.ТекущаяОбласть.Шрифт = Новый Шрифт(СтартШрифт,,,истина);
					
ТабДок.Вывести(СекцияВеществаУровень);
					
СекцияВеществаУровень.ТекущаяОбласть.Шрифт = Новый Шрифт(СтартШрифт,,,ложь);
...Показать Скрыть

Хочу сделать шрифт полужирным (по определённому условию) в полученной области, вывести эту область полужирной, а потом убрать полужирность. "СтартШрифт" получаю нормально, через отладку проверил. Новый шрифт тоже генерится нормально, но области не присваивается, остаётся каким и был.
Что я упускаю ? Спасибо
Найденные решения
6. Николай (frenzymind) 11.01.17 11:13 Сейчас в теме
Проблема решена.
Как я думал оказалось правильным: "получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок"
Неверным оказалась релаизация. Вот рабочий вариант:

СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,истина);

ТабДок.Вывести(СекцияВеществаУровень);

СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,ложь);

Я думал что получить область из макета достаточно чтоб менять шрифт. Но эта область тоже является Табличным документом,и из неё опять надо получить область, к которой уже шрифт применить можно. Как-то так. Если кто внятно сможет объяснить, сделайте это пожалуйста :)
Всем спасибо!
Остальные ответы
2. ASG74 ASG74 (ASG74) 11.01.17 09:15 Сейчас в теме
Здравствуйте. Я вот так делаю:
ОбластьВыделения="R"+Формат(ТабДок.ВысотаТаблицы,"ЧГ=0")+"C"+Формат(ТабДок.ширинаТаблицы,"ЧГ=0");
табДок.Область(ОбластьВыделения).Шрифт=Новый Шрифт(табДок.Область(ОбластьВыделения).Шрифт,,,Истина,);
3. antz Петров (antz) 11.01.17 10:18 Сейчас в теме
(1) Делать-то шрифт, наверно, надо не в полученной области макета, а в выведенной
области ТабДок.

(2) Зачем такие мучения? Почему не задавать область циферками?

ОбластьВыделения = ТабДок.Область(ТабДок.ВысотаТаблицы, ТабДок.ширинаТаблицы);
ОбластьВыделения.Шрифт=Новый Шрифт(ОбластьВыделения.Шрифт,,,Истина,); 
4. Николай (frenzymind) 11.01.17 10:39 Сейчас в теме
(3) Я как думаю: получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок.
Когда делаешь макет, ведь можно шрифт менять у ячейки. А программно это выглядит так:
СекцияВеществаУровень.Область("R1C1").Шрифт = Новый Шрифт(СтартШрифт,,,истина);
Но тоже не работает.
Попробую ваш вариант.
5. ASG74 ASG74 (ASG74) 11.01.17 10:39 Сейчас в теме
(3) Циферки ведь меняться могут... этот пример выделяет в некоторых ячейках таблицы по условию
6. Николай (frenzymind) 11.01.17 11:13 Сейчас в теме
Проблема решена.
Как я думал оказалось правильным: "получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок"
Неверным оказалась релаизация. Вот рабочий вариант:

СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,истина);

ТабДок.Вывести(СекцияВеществаУровень);

СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,ложь);

Я думал что получить область из макета достаточно чтоб менять шрифт. Но эта область тоже является Табличным документом,и из неё опять надо получить область, к которой уже шрифт применить можно. Как-то так. Если кто внятно сможет объяснить, сделайте это пожалуйста :)
Всем спасибо!
Оставьте свое сообщение