Доброго времени суток. Есть следующий код:
Хочу сделать шрифт полужирным (по определённому условию) в полученной области, вывести эту область полужирной, а потом убрать полужирность. "СтартШрифт" получаю нормально, через отладку проверил. Новый шрифт тоже генерится нормально, но области не присваивается, остаётся каким и был.
Что я упускаю ? Спасибо
...
ТабДок = Новый ТабличныйДокумент;
...
СекцияВеществаУровень = Макет.ПолучитьОбласть("ВеществаУровень");
...
СтартШрифт = СекцияВеществаУровень.ТекущаяОбласть.Шрифт;
СекцияВеществаУровень.ТекущаяОбласть.Защита = ложь;
СекцияВеществаУровень.ТекущаяОбласть.Шрифт = Новый Шрифт(СтартШрифт,,,истина);
ТабДок.Вывести(СекцияВеществаУровень);
СекцияВеществаУровень.ТекущаяОбласть.Шрифт = Новый Шрифт(СтартШрифт,,,ложь);
ПоказатьХочу сделать шрифт полужирным (по определённому условию) в полученной области, вывести эту область полужирной, а потом убрать полужирность. "СтартШрифт" получаю нормально, через отладку проверил. Новый шрифт тоже генерится нормально, но области не присваивается, остаётся каким и был.
Что я упускаю ? Спасибо
По теме из базы знаний
- Настройка вывода на печать табличного документа в «1С:Предприятие 8.2»
- Внешняя компонента для загрузки файлов Excel 2007-2010 (OpenXML) в табличный документ 1С 8
- Автоматизация печатной формы (автоформирование табличного документа на основе любой таблицы значений)
- Как сохранить данные табличного поля в табличный документ / файл Excel программно
- Сохранение табличного документа в EXCEL (xlsx) с форматом ячеек Число, Дата, Дата время
Найденные решения
Проблема решена.
Как я думал оказалось правильным: "получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок"
Неверным оказалась релаизация. Вот рабочий вариант:
СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,истина);
ТабДок.Вывести(СекцияВеществаУровень);
СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,ложь);
Я думал что получить область из макета достаточно чтоб менять шрифт. Но эта область тоже является Табличным документом,и из неё опять надо получить область, к которой уже шрифт применить можно. Как-то так. Если кто внятно сможет объяснить, сделайте это пожалуйста :)
Всем спасибо!
Как я думал оказалось правильным: "получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок"
Неверным оказалась релаизация. Вот рабочий вариант:
СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,истина);
ТабДок.Вывести(СекцияВеществаУровень);
СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,ложь);
Я думал что получить область из макета достаточно чтоб менять шрифт. Но эта область тоже является Табличным документом,и из неё опять надо получить область, к которой уже шрифт применить можно. Как-то так. Если кто внятно сможет объяснить, сделайте это пожалуйста :)
Всем спасибо!
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Делать-то шрифт, наверно, надо не в полученной области макета, а в выведенной
области ТабДок.
(2) Зачем такие мучения? Почему не задавать область циферками?
области ТабДок.
(2) Зачем такие мучения? Почему не задавать область циферками?
ОбластьВыделения = ТабДок.Область(ТабДок.ВысотаТаблицы, ТабДок.ширинаТаблицы);
ОбластьВыделения.Шрифт=Новый Шрифт(ОбластьВыделения.Шрифт,,,Истина,);
(3) Я как думаю: получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок.
Когда делаешь макет, ведь можно шрифт менять у ячейки. А программно это выглядит так:
СекцияВеществаУровень.Область("R1C1").Шрифт = Новый Шрифт(СтартШрифт,,,истина);
Но тоже не работает.
Попробую ваш вариант.
Когда делаешь макет, ведь можно шрифт менять у ячейки. А программно это выглядит так:
СекцияВеществаУровень.Область("R1C1").Шрифт = Новый Шрифт(СтартШрифт,,,истина);
Но тоже не работает.
Попробую ваш вариант.
Здравствуйте. Я вот так делаю:
ОбластьВыделения="R"+Формат(ТабДок.ВысотаТаблицы,"ЧГ=0")+"C"+Формат(ТабДок.ширинаТаблицы,"ЧГ=0");
табДок.Область(ОбластьВыделения).Шрифт=Новый Шрифт(табДок.Область(ОбластьВыделения).Шрифт,,,Истина,);
ОбластьВыделения="R"+Формат(ТабДок.ВысотаТаблицы,"ЧГ=0")+"C"+Формат(ТабДок.ширинаТаблицы,"ЧГ=0");
табДок.Область(ОбластьВыделения).Шрифт=Новый Шрифт(табДок.Область(ОбластьВыделения).Шрифт,,,Истина,);
Проблема решена.
Как я думал оказалось правильным: "получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок"
Неверным оказалась релаизация. Вот рабочий вариант:
СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,истина);
ТабДок.Вывести(СекцияВеществаУровень);
СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,ложь);
Я думал что получить область из макета достаточно чтоб менять шрифт. Но эта область тоже является Табличным документом,и из неё опять надо получить область, к которой уже шрифт применить можно. Как-то так. Если кто внятно сможет объяснить, сделайте это пожалуйста :)
Всем спасибо!
Как я думал оказалось правильным: "получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок"
Неверным оказалась релаизация. Вот рабочий вариант:
СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,истина);
ТабДок.Вывести(СекцияВеществаУровень);
СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,ложь);
Я думал что получить область из макета достаточно чтоб менять шрифт. Но эта область тоже является Табличным документом,и из неё опять надо получить область, к которой уже шрифт применить можно. Как-то так. Если кто внятно сможет объяснить, сделайте это пожалуйста :)
Всем спасибо!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот