Имя: Пароль:
1C
1С v8
ЦветФона в ПолеТекстовогоДокумента
0 RX4
 
13.01.12
15:36
8.2, внешний отчет, вывод в ПолеТекстовогоДокумента на Форме отчета;
Возникает ошибка "Поле объекта не обнаружено (ЦветФона)"

строкаОблЦена = Макет.ПолучитьОбласть("Строка|ОбластьТипЦен");
                       строкаОблЦена.Параметры.Цена = строкаТЗ.Цена;
                       Если РазницаВЦене > 0.02 Тогда строкаОблЦена.ЦветФона = ЦветЗеленый
                       ИначеЕсли РазницаВЦене < 0.02 Тогда строкаОблЦена.ЦветФона = ЦветКрасный
                       КонецЕсли;

Возможно ли менять в ПолеТекстовогоДокумента ЦветФона по условию? Как?
1 Mort
 
13.01.12
15:38
В поле текстового докмента нельзя. В форматированный документ разве что выводить.
2 RX4
 
13.01.12
15:41
Жалко. Все работает,
попросили только цены раскрасить по условию,
и прийдется выводить в отдельный табличный документ.
3 MatrosoV AleXXXand_R
 
13.01.12
15:43
Сохранить цвет в переменную ТекЦвет, а потом после вывода секции получить область уже из табличного документа, и установить цвет фона из этой переменной
4 RX4
 
13.01.12
15:46
(3) Да при чем здесь переменная ?
Для области на ПолеТекстовогоДокумента свойство ЦветФона недоступно.
5 MatrosoV AleXXXand_R
 
13.01.12
15:52
Я вот про что написал. Примерно сделать вот так -

ТабДокумент.Вывести(строкаОблЦена);

Область = ТабДокумент.Область(ТабДокумент.ВысотаТаблицы()-1,ТабДокумент.ШиринаТаблицы()-1,ТабДокумент.ВысотаТаблицы(),ТабДокумент.ШиринаТаблицы());

Область.ЦветФона = ТекЦвет;
6 RX4
 
13.01.12
15:55
Возникает ошибка "Поле объекта не обнаружено (ЦветФона)"
7 Mort
 
13.01.12
15:56
(5) Тему внимательно прочитай.
8 Mort
 
13.01.12
15:57
(5) Плюс в твоём случае пишется проще:

Область = ТабДокумент.Вывести(строкаОблЦена);
Область.ЦветФона = ТекЦвет;
9 RX4
 
13.01.12
15:59
Да, если вывод идет в ТабличныйДокумент - вопроса нет.
10 Mort
 
13.01.12
15:59
+(8) Хотя не, так всю область закрасит, в крайнюю ячейку добираться нужно через ТабДок, но в любом случае координаты надежнее брать из выведенной области (Лево, Верх)
11 RX4
 
13.01.12
17:02
прикольно, но работает вот так:

   РазницаВЦене = строкаТЗ.Цена - НормЦена;
   строкаОблЦена.Параметры.Цена = строкаТЗ.Цена;
   Если РазницаВЦене > 0.02 Тогда строкаОблЦена.Область().ЦветФона = ЦветЗеленый
   ИначеЕсли РазницаВЦене < -0.02 Тогда строкаОблЦена.Область().ЦветФона = ЦветКрасный
   Иначе строкаОблЦена.Область().ЦветФона = WebЦвета.Белый;
   КонецЕсли;
   ТабДок.Присоединить(строкаОблЦена);

Причем работает и при выводе в ТабличныйДокумент,
и при выводе в ПолеТабличногоДокумента.