![]() |
![]() |
|
Изменить цвет фона ячейки заполненного параметра | ☑ | ||
---|---|---|---|---|
0
myr4ik07
27.07.16
✎
15:59
|
Есть табличный документ.
в нем заполняю параметры ОбластьДетальныхЗаписей.Параметры.НомерЗаказа = ВыборкаДетальныеЗаписи.НомерЗаказа; и я хочу эту же ячейку программно фон изменить, а как это сделать? |
|||
1
Ёпрст
гуру
27.07.16
✎
16:00
|
.ЦветФона = WebЦвета.Красный;
|
|||
2
myr4ik07
27.07.16
✎
16:12
|
(1) от какого объекта свойство это искать? Я понимаю, что Цвет фона
|
|||
3
Ёпрст
гуру
27.07.16
✎
16:12
|
(2) у области таблицы
|
|||
4
Ёпрст
гуру
27.07.16
✎
16:12
|
вестимо
|
|||
5
Ёпрст
гуру
27.07.16
✎
16:13
|
хочешь, всю её крась, хочешь, огранич конкретной областью/ячейкой.
|
|||
6
myr4ik07
27.07.16
✎
16:13
|
(3) ОбластьДетальныхЗаписей.ТекущаяОбласть.ЦветФона ?
|
|||
7
myr4ik07
27.07.16
✎
16:13
|
(5) мне нужно конкретно эту ячейку, в которую я только что запердячил параметр
|
|||
8
Ёпрст
гуру
27.07.16
✎
16:19
|
(6) нет. Либо по имени области (если задана) либо через .Область(номер строки, номер колонки, номерстроки, номер колонки). цветФона
|
|||
9
myr4ik07
27.07.16
✎
16:22
|
(8) а как же получить имя области куда я залупашил параметр?
|
|||
10
hhhh
27.07.16
✎
16:25
|
(6) это исходный макет. В нем можешь для тренировки только покрасить.
|
|||
11
Ёпрст
гуру
27.07.16
✎
16:25
|
(9) никак.
|
|||
12
myr4ik07
27.07.16
✎
16:27
|
(11) о, смотри, я ж хочу в зависимости от содержимого параметра изменять цвет фона в ячейку куда было положено значения параметра.
как мне в таком случаи с данной ситуации выйти? |
|||
13
hhhh
27.07.16
✎
16:28
|
(12) имеет смысл две ячейки в макете иметь, покрашенную и непокрашенную
и перенсишь в табдок ту ячейку, которую надо. |
|||
14
Ёпрст
гуру
27.07.16
✎
16:28
|
(12) и ? Что мешает то ?
|
|||
15
Ёпрст
гуру
27.07.16
✎
16:28
|
(13) занафига ?
|
|||
16
myr4ik07
27.07.16
✎
16:29
|
(14) не могу поняьт как это сделаьть )
|
|||
17
myr4ik07
27.07.16
✎
16:35
|
откройте секрет, как задачу решить?
|
|||
18
Ёпрст
гуру
27.07.16
✎
16:36
|
(16) да ё, назначь ИМЯ области, например, Вася ,далее в коде так, например:
ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); Область = Макет.ПолучитьОбласть("Строка"); Область.Области.Вася.ЦветФона = WebЦвета.Красный; ТабДок.Вывести(Область); |
|||
19
Ёпрст
гуру
27.07.16
✎
16:38
|
Ну или по адресу нужной ячейки:
ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); Область = Макет.ПолучитьОбласть("Строка"); Область.Области.Вася.ЦветФона = WebЦвета.Красный; Область.Область(1,2,1,2).ЦветФона = WebЦвета.Желтый; ТабДок.Вывести(Область); |
|||
20
Ёпрст
гуру
27.07.16
✎
16:41
|
Или крась потом, в самом ТабДок:
ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); Область = Макет.ПолучитьОбласть("Строка"); Область.Области.Вася.ЦветФона = WebЦвета.Красный; Область.Область(1,2,1,2).ЦветФона = WebЦвета.Желтый; ТабДок.Вывести(Область); ТабДок.Область(ТабДок.ВысотаТаблицы,3,ТабДок.ВысотаТаблицы,3).Текст = "Вася"; ТабДок.Область(ТабДок.ВысотаТаблицы,3,ТабДок.ВысотаТаблицы,3).ЦветФона = WebЦвета.Аквамарин; |
|||
21
Ёпрст
гуру
27.07.16
✎
16:42
|
в общем, развлекайся.
Можешь, еще и искать по значению или по тексту нужную область. |
|||
22
myr4ik07
27.07.16
✎
16:42
|
(21) ну так я ж параметр заполняю, а не область, у меня вот какой бред
http://paste1c.ru/ym4 |
|||
23
Ёпрст
гуру
27.07.16
✎
16:44
|
(22) как всё запущенно
|
|||
24
myr4ik07
27.07.16
✎
16:45
|
(23) та перестань, есть нюансы почему использую макет - как вывод отчета, поверь
|
|||
25
myr4ik07
27.07.16
✎
16:46
|
(23) ты лучше совет дай, как в моей каше вот так красиво как ты здесь (20) написал сделать
|
|||
26
Ёпрст
гуру
27.07.16
✎
16:48
|
(25) открой макет, найди нужную ячейку. Задай ей имя человечье(заместо R2..C4..), затем смотри (18)
|
|||
27
myr4ik07
27.07.16
✎
16:54
|
(26) я чего то не доганяю, есть http://prntscr.com/by6i3j
обращаюсь http://prntscr.com/by6ij9 и по чем мне ориентировать какое значение установлено? |
|||
28
myr4ik07
27.07.16
✎
16:56
|
как мне обойти две драные колонки и сравнить одну колонку с другой по строке и если есть какая то разница то одну драую колонку цвет фона изменить?
|
|||
29
Ёпрст
гуру
27.07.16
✎
16:58
|
(27) ясен пень. В макете же нет текста у ячейки!
Ты его не задал там еще. |
|||
30
Ёпрст
гуру
27.07.16
✎
16:58
|
(28) циклом
|
|||
31
Ёпрст
гуру
27.07.16
✎
17:02
|
Если ЗначениеЗаполнено(ПланФакт[0].ДатаФакт) Тогда
ОбластьДетальныхЗаписей.Найти //ОбластьДетальныхЗаписей.Области.Детали.ЦветФона = WebЦвета.ЗеленаяЛужайка; //ОбластьДетальныхЗаписей.ТекущаяОбласть.ЦветФона = WebЦвета.Фиолетовый; ОбластьДетальныхЗаписей.Область(1,8,1,8).ЦветФона = WebЦвета.Фиолетовый; КонецЕсли; |
|||
32
myr4ik07
27.07.16
✎
17:02
|
(29) т.е. параметр заполняю + паралельно з фиксированной ячейки и до низу для каждого параметра заполняю тест?
|
|||
33
Ёпрст
гуру
27.07.16
✎
17:04
|
(32) ё..
|
|||
34
myr4ik07
27.07.16
✎
17:04
|
(31) впрочем, что то нарисовуется решение, пойду играться, спасибо
|
|||
35
Ёпрст
гуру
27.07.16
✎
17:04
|
делай как в (31) только выкини свой код оттуда.
|
|||
36
myr4ik07
27.07.16
✎
17:25
|
(35) глянь, http://prntscr.com/by6yil а тут же есть текст? почему тогда когда макет.обласьт("область").текст он пустой?
|
|||
37
Ёпрст
гуру
27.07.16
✎
17:28
|
(36) да уж... имя яейки не "область" вот и пусто
|
|||
38
Ёпрст
гуру
27.07.16
✎
17:29
|
и..ты где хоть смотришь то ? в Макете ? В Табличном документе ?
|
|||
39
myr4ik07
27.07.16
✎
17:30
|
(38) в макете, а макет это ж табличный документ
|
|||
40
Ёпрст
гуру
27.07.16
✎
17:33
|
(39) как тебе сказать то попроще. Макет, это грубо говоря шаблон. Ты берешь из него нужную область, задаешь ей текст, параметр, можешь её покрасить и выводишь (рисуешь) в результирующий Табличный документ, который потом печатаешь или показываешь пользователю.
Либо ты можешь рисовать сразу в Табличном документе, не используя при этом шаблон-макет. А ручонками, через Область табличного документа задавать текст, расшифровки, параметры, цвет, границы и т.д.. Так яснее ? |
|||
41
myr4ik07
27.07.16
✎
17:34
|
(38) я вот так попробовал
Вниз = 8; //получаем итоги из запроса ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; ОбластьДетальныхЗаписей.Параметры.ОПзС = ВыборкаДетальныеЗаписи.ОПзС; ОбластьДетальныхЗаписей.Параметры.НомерЗаказа = ВыборкаДетальныеЗаписи.НомерЗаказа; ПланФакт = ПолучитьПланФактОтгрузки(ВыборкаДетальныеЗаписи.Ссылка); Если ПланФакт.Количество() <> 0 Тогда ОбластьДетальныхЗаписей.Параметры.Отгрузка = ПланФакт[0].ДатаФакт; //ОбластьДетальныхЗаписей.Область("R"+Вниз+"C7").Текст = ПланФакт[0].ДатаФакт; ОбластьДетальныхЗаписей.Параметры.ОтгрузкаПлан = ПланФакт[0].ДатаПлан; //ОбластьДетальныхЗаписей.Область("R"+Вниз+"C8").Текст = ПланФакт[0].ДатаПлан; //Если ЗначениеЗаполнено(ПланФакт[0].ДатаФакт) Тогда // ОбластьДетальныхЗаписей.Область("R"+Вниз+"C7").ЦветФона = WebЦвета.ЗеленаяЛужайка; // //ОбластьДетальныхЗаписей.ТекущаяОбласть.ЦветФона = WebЦвета.Фиолетовый; //КонецЕсли; КонецЕсли; Вниз = Вниз + 1; КонецЦикла там где закомментировано имею ввиду. какие то дубляжи поехали |
|||
42
Ёпрст
гуру
27.07.16
✎
17:34
|
Соответственно, ты либо заранее красишь нужную ячейку в шаблоне-макете и потом вставляешь её в Табличный документ, ИЛИ
вставляешь что-то в табличный документ и красишь уже потом область в табличном документе (а не в макете-шаблоне) |
|||
43
myr4ik07
27.07.16
✎
17:35
|
(40) догнал, использую табдок, а потом вывожу в макет
|
|||
44
Ёпрст
гуру
27.07.16
✎
17:37
|
да ё..
вот так, для начала: // ОбластьДетальныхЗаписей.Область("R"+Вниз+"C7").ЦветФона = WebЦвета.ЗеленаяЛужайка; ОбластьДетальныхЗаписей.Область(1,1,1,1).ЦветФона = WebЦвета.Красный; ОбластьДетальныхЗаписей.Область(1,3,1,3).ЦветФона = WebЦвета.Желтый; ОбластьДетальныхЗаписей.Область(1,5,1,5).ЦветФона = WebЦвета.Зеленый; Потом, придёт оно, просветление |
|||
45
myr4ik07
27.07.16
✎
17:47
|
(44) )))))) ща почитаю о этих цифрах
|
|||
46
myr4ik07
27.07.16
✎
17:51
|
(44) ура ура ура, дошло ))))
ТабДок.Область("R8C8").Текст вот тут текст уже есть ))), логично, я же заполняю параметры в ТабДок, а проверяю в макете |
|||
47
myr4ik07
27.07.16
✎
17:58
|
(44) спасибо
|
|||
48
myr4ik07
28.07.16
✎
13:07
|
Вышло таким способом победить
.......................... Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //обнуляем полученную область от далее установленных форматов (шрифт, фон) ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); это делаем для того, что бы потом не очищать формат вручную ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); тут обычное заполнение з запроса параметрами Если ПланФакт.Количество() <> 0 и ПланФакт[0].ДатаФакт > дата(1,1,1) тогда ОбластьДетальныхЗаписей.Область("R1C7").ЦветФона = WebЦвета.ЗеленоватоЖелтый; Если НачалоДня(ПланФакт[0].ДатаПлан) < НачалоДня(ПланФакт[0].ДатаФакт) тогда ОбластьДетальныхЗаписей.Область("R1C7").ЦветТекста = WebЦвета.НасыщенноРозовый; ОбластьДетальныхЗаписей.Область("R1C7").Шрифт = Новый Шрифт(,,Истина); КонецЕсли; КонецЕсли; вот тут в условии мы каждый раз получаем область с макета, а и в зависимости от условия рисуем ячейку в макете, а это: 1-ая строка, 7-мая ячейка, так делаем каждый раз в цикле, мы типа к одной области добавили еще одну ту же область ТекОбласть = ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; |
|||
49
Ёпрст
гуру
28.07.16
✎
13:34
|
(48)
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); Если ПланФакт.Количество() <> 0 и ПланФакт[0].ДатаФакт > дата(1,1,1) тогда Область = ТабДок.Область(ТабДок.ВысотаТаблицы,7,ТабДок.ВысотаТаблицы,7); Область.ЦветФона = WebЦвета.ЗеленоватоЖелтый; Если НачалоДня(ПланФакт[0].ДатаПлан) < НачалоДня(ПланФакт[0].ДатаФакт) тогда Область.ЦветТекста = WebЦвета.НасыщенноРозовый; Область.Шрифт = Новый Шрифт(,,Истина); КонецЕсли; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |