|
УФ Раскрасить отдельную ячейку в табличной части дкоумента | ☑ | ||
---|---|---|---|---|
0
Aswed
09.12.16
✎
11:51
|
САБЖ
Ткните носом как сделать. Поиск что то ничего не выдал. |
|||
1
Torquader
09.12.16
✎
11:53
|
ПриВыводеСтроки - ОформлениеСтроки.Ячейки и т.д.
|
|||
2
kochurovg
09.12.16
✎
11:56
|
Свойство формы "УсловноеОформление"
|
|||
3
Aswed
09.12.16
✎
11:56
|
Забыл сказать что табличную часть рисую динамически.
В итоге в УсловномОформлении нельзя указать условия расцветки для этих ячеек. |
|||
4
Aswed
09.12.16
✎
11:56
|
(1) При выводе строки нет в УФ
|
|||
5
LeReve
09.12.16
✎
12:01
|
(4) в уф только условное оформление
|
|||
6
Defender aka LINN
09.12.16
✎
12:16
|
(3) Как связаны между собой эти предложения?
|
|||
7
FIXXXL
09.12.16
✎
12:18
|
(3) формируй условное оформление программно при создании твоих программных колонок
делал такое, работает |
|||
8
catena
09.12.16
✎
12:22
|
(3)Это почему это?
|
|||
9
shpioleg
09.12.16
✎
12:51
|
(3) Можно сделать у формы дополнительный реквизит для условного оформления. В коде вычисляются значения этого реквизита, а условное оформление, используя его содержимое, раскрашивает нужную ячейку в строке.
|
|||
10
Aswed
09.12.16
✎
13:02
|
(7) Блин точно! Программно!!!
Спасибо, а я уперся в прямые настройки. |
|||
11
Aswed
09.12.16
✎
13:03
|
(9) Интересно. А как это?
|
|||
12
shpioleg
09.12.16
✎
15:08
|
(11) Например, как я делал.
Есть таблица ходов шахматной партии. Чтобы подсвечивать не всю строку, а отдельно ход белых/черных я на форму кинул вспомогательный булевский реквизит УОПолуход, который заполняется в коде при активизации ячейки ,УОПолуход = ТекущийПолуход%2; В условном оформлении настроил условия на колонки белых и черных, используя реквизит формы УОПолуход. Для колонки белых УОПолуход = Истина, а для черных УОПолуход = Ложь. Таким образом, при клике мышки по ячейке таблицы срабатывает обработчик ПриАктивизацииЯчейки и кликнутая ячейка выделяется. |
|||
13
Aswed
09.12.16
✎
15:27
|
(12) Аааааааа понятно.
У меня же количество колонок не известно и может быть любым. |
|||
14
Aswed
09.12.16
✎
16:42
|
Ткните носом что не правильно?
Уже час сижу пялюсь и не могу понять ЭлементМассива = МассивДобавляемыхРеквизитов.Получить(Т); ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаДанныхНоменклатура"); ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Таблицаданных.Количество"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = 10; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый); |
|||
15
shpioleg
09.12.16
✎
17:06
|
(14) Ну, выглядит правильно. Может это поможет?
http://catalog.mista.ru/public/181336/ |
|||
16
Aswed
09.12.16
✎
17:33
|
В общем вот так работает
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаДанныхЦена"); ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаДанных.Цена"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = 15; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый); |
|||
17
Aswed
09.12.16
✎
17:34
|
А вот так не работает
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаДанныхЦена"); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаДанных"+Реквизит.Имя); ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаДанных.Цена"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = 15; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый); |
|||
18
Aswed
09.12.16
✎
17:35
|
Хотя поле "ТаблицаДанных"+Реквизит.Имя
это программно добавленное поле в эту табличную часть на форме |
|||
19
Aswed
09.12.16
✎
17:36
|
Вот так его создаю
НовыйЭлемент = ЭтаФорма.Элементы.Добавить(Реквизит.Имя, Тип("ПолеФормы"), Элементы["Группа_" + ПолучитьИдентификаторЭлементаПоИмени(Реквизит.Имя)]); НовыйЭлемент.Заголовок = Реквизит.Заголовок; НовыйЭлемент.ПутьКДанным = "ТаблицаДанных." + Реквизит.Имя; НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.Ширина = 2; НовыйЭлемент.РастягиватьПоГоризонтали = Ложь; НовыйЭлемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииЗначения"); НовыйЭлемент.ТолькоПросмотр = Истина; |
|||
20
Aswed
09.12.16
✎
17:37
|
Вот целиком кусок когда
НовыйЭлемент = ЭтаФорма.Элементы.Добавить(Реквизит.Имя, Тип("ПолеФормы"), Элементы["Группа_" + ПолучитьИдентификаторЭлементаПоИмени(Реквизит.Имя)]); НовыйЭлемент.Заголовок = Реквизит.Заголовок; НовыйЭлемент.ПутьКДанным = "ТаблицаДанных." + Реквизит.Имя; НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.Ширина = 2; НовыйЭлемент.РастягиватьПоГоризонтали = Ложь; НовыйЭлемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииЗначения"); НовыйЭлемент.ТолькоПросмотр = Истина; ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаДанныхЦена"); //ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаДанных"+Реквизит.Имя); ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаДанных.Цена"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = 15; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый); |
|||
21
FIXXXL
09.12.16
✎
18:06
|
(17)
не работает ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаДанных"+Реквизит.Имя); а так: ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаДанных."+Реквизит.Имя); |
|||
22
FIXXXL
09.12.16
✎
18:08
|
кароч:
Для Каждого ТекЦвет из ТаблицаЦветовТиповМагазов Цикл ЦветУО = ТекЦвет.ЦветТипа; МассивПолейОформления = Новый Массив; МассивПолейОформления.Добавить(ИмяЦена); МассивПолейОформления.Добавить(ИмяМагаз); ЛевоеЗначение = РеквизитЦвет.Путь + "." + РеквизитЦвет.Имя; ПравоеЗначение = ТекЦвет.КодТипа; СоздатьЭлементУО(ЛевоеЗначение, ПравоеЗначение, ЦветУО, МассивПолейОформления); КонецЦикла; &НаСервере Процедура СоздатьЭлементУО(Знач ЛевоеЗначение, Знач ПравоеЗначение, Знач ЦветУО, Знач МассивПолейОформления,ВидСравненияУО=Неопределено) ЭлементОформления = УсловноеОформление.Элементы.Добавить(); //условие отбора ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ЛевоеЗначение); ЭлементОтбора.ВидСравнения = ?(ВидСравненияУО=Неопределено,ВидСравненияКомпоновкиДанных.Равно,ВидСравненияУО); ЭлементОтбора.ПравоеЗначение = ПравоеЗначение;//Новый ПолеКомпоновкиДанных(ПравоеЗначение); ЭлементОтбора.Использование = Истина; //цвет оформления ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветУО); ЭлементОформления.Использование = Истина; //поля оформления Для Каждого ПолеДляОформления из МассивПолейОформления Цикл ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ПолеДляОформления); ПолеОформления.Использование = Истина; КонецЦикла; КонецПроцедуры |
|||
23
Aswed
20.12.16
✎
11:54
|
Уже которую неделю бьюсь над мелочью и не могу понять что же все таки не так.
Вот код //создаю реквизиты ИдентификаторЭлементаФормы = ПолучитьИдентификаторЭлементаФормы(ТО); ИмяРекивизита = "Признак_ТО__" + ИдентификаторЭлементаФормы; МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(ИмяРекивизита, Новый ОписаниеТипов("Булево"), "ТаблицаДанных", НСтр("ru = 'Прим.'"))); //Применимость //создаю элементы формы ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); Для каждого Реквизит Из МассивДобавляемыхРеквизитов Цикл //НовыйЭлемент = ЭтаФорма.Элементы.Добавить(Реквизит.Имя, Тип("ПолеФормы"), Элементы["Группа_" + ПолучитьИдентификаторЭлементаПоИмени(Реквизит.Имя)]); НовыйЭлемент = ЭтаФорма.Элементы.Добавить(Реквизит.Имя, Тип("ПолеФормы"), Элементы.ТаблицаДанных); НовыйЭлемент.Заголовок = Реквизит.Заголовок; НовыйЭлемент.ПутьКДанным = "ТаблицаДанных." + Реквизит.Имя; НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.Ширина = 2; НовыйЭлемент.РастягиватьПоГоризонтали = Ложь; НовыйЭлемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПриИзмененииЗначения"); НовыйЭлемент.ТолькоПросмотр = Истина; //пытаюсь поставить условное оформление //тестовое добавление ЭлементОформления = УсловноеОформление.Элементы.Добавить(); ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(НовыйЭлемент.Имя); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Истина; ЭлементОтбора.Использование = Истина; ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СеребристоСерый); ЭлементОформления.Использование = Истина; ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(НовыйЭлемент.Имя); КонецЦикла; И она падла не работает! Скоро головой буду биться об стену, ни как не могу понять где я ошибся. |
|||
24
Вафель
20.12.16
✎
11:59
|
оформляется не реквизит формы. а поле с данными
|
|||
25
Aswed
20.12.16
✎
12:06
|
(24) В курсе.
Там все так и написано. |
|||
26
Aswed
20.12.16
✎
12:10
|
Сам нашел!
Не верно указывал путь к полю для сравнения Было ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(НовыйЭлемент.Имя); а правильно ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(НовыйЭлемент.ПутьКДанным + "." + НовыйЭлемент.Имя); Теперь не могу понять какого фига красит всю таблицу колонку целиком))) |
|||
27
aleks_default
20.12.16
✎
12:15
|
Видимо условие не отрабатывает
|
|||
28
Aswed
20.12.16
✎
13:25
|
А как тогда задать условие?
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(НовыйЭлемент.ПутьКДанным + "." + НовыйЭлемент.Имя); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Истина; ЭлементОтбора.Использование = Истина; Вот так если пишу красит все. Скотина! |
|||
29
Aswed
20.12.16
✎
14:22
|
Нет все таки видимо я не верно задаю отбор.
Не срабатывает правило ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(НовыйЭлемент.ПутьКДанным + "." + НовыйЭлемент.Имя); Хотя и ошибки ни какой не выскакивает |
|||
30
Aswed
20.12.16
✎
14:30
|
Млять! Победил!!
Верно так: ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(НовыйЭлемент.ПутьКДанным); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Истина; ЭлементОтбора.Использование = Истина; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |