Имя: Пароль:
1C
1С v8
1c 8.3 управляемые формы. Выделение строки цветом
,
0 illiona
 
naïve
16.10.17
05:55
Добрый день. Таблица формируется программно и выводится на форму
ЗначениеВРеквизитФормы(ТЗ,"ДанныеФайла");

Подскажите как выделить цветом строки по условию?
1 1dvd
 
16.10.17
05:56
фпоеске были?
2 1dvd
 
16.10.17
05:57
используйте Условное оформление
3 illiona
 
naïve
16.10.17
06:28
ЭтаФорма.УсловноеОформление.Элементы.Очистить();
    ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
    ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ДанныеФайла.Склад");
    ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДанныеФайла.Склад");
    ЭлементОтбора.ПравоеЗначение = 1;
    ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый);

Не получается к моей таблице
4 catena
 
16.10.17
06:33
(3)Что именно не получается?
5 Рэйв
 
16.10.17
06:38
(3)А уверена, что
ЭлементОтбора.ПравоеЗначение = 1
а не
ЭлементОтбора.ПравоеЗначение = "1"
?
6 illiona
 
naïve
16.10.17
06:39
Для каждого стр из ЭтаФорма.ДанныеФайла цикл
        Если СокрЛП(Стр.Склад) <> "количество" тогда
            Если СокрЛП(Стр.Склад) <> "цена" тогда
                ЭтаФорма.УсловноеОформление.Элементы.Очистить();
                ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
                ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
                ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(Стр.Склад);
                ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
                ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;

ничего не происходит. Наверно нет применения к строке. не могу разобраться как применить к строке
7 0xFFFFFF
 
16.10.17
06:57
(6) нафига это? У тебя цвета динамически вычисляться будут и ты их заранее не знаешь?
Мышой условное оформление можно настроить, мышой...
8 catena
 
16.10.17
07:00
(6)э... для каждой строки по условному оформлению?
9 catena
 
16.10.17
07:02
(6)Элемент отбора добавила, а заполнить его чем-нибудь не хочешь? Что за понадерганные строки.
10 illiona
 
naïve
16.10.17
07:02
у меня таблица программно создается, ее на форме нет изначально. Да оформление по условию для каждой строки
11 catena
 
16.10.17
07:06
(10)Не нужно там строки перебирать. Не нужно.
12 illiona
 
naïve
16.10.17
07:10
а как сделать по условию?
13 catena
 
16.10.17
07:30
(12)У тебя на каждую строчку УСЛОВИЕ разное? Или все-таки условие на таблицу?
14 illiona
 
naïve
16.10.17
07:36
одно условие на таблицу получается
15 catena
 
16.10.17
07:40
(14)Воооот. Значит и элемент УО один. Осталось определиться с самим условием.
16 illiona
 
naïve
16.10.17
07:49
Первый столбец <> цена и количество
17 catena
 
16.10.17
07:58
(16)Если первый столбец не цена и не количество, то раскрасить строку зеленым? Я правильно поняла?
18 illiona
 
naïve
16.10.17
08:02
да, не могу понять как программно это написать(
19 catena
 
16.10.17
08:06
(18) значение первого столбца не должно быть равно столбцу со значением цены и столбцу со значением количества?
20 illiona
 
naïve
16.10.17
08:10
у первого столбца не должно быть значение "количество" и "цена".
Пример таблицы
Склад | Металл
Склад1  |
количество | 1
Цена | 2
Склад2 |
количество | 3
Цена | 2
21 illiona
 
naïve
16.10.17
08:14
Хотела чтоб Строка Склад1, Строка Склад2 были окрашены цветом
22 catena
 
16.10.17
08:19
(20) Ну вот, отлично. Значит один элемент УО с двумя элементами отбора.

Какие есть свойства у элемента отбора?
23 illiona
 
naïve
16.10.17
09:40
Строка = ЭтаФорма.ДанныеФайла;
Строка[0].Склад = получит значение в первой колонке
24 catena
 
16.10.17
10:04
(23)Более того, в первой строке.
Тебе это не надо. Достаточно быть знакомым с первой колонкой по имени.

Ты посмотрела свойства у элемента отбора компоновки?
25 illiona
 
naïve
16.10.17
10:06
ЗначениеОтбора = "количество";
    ЭлементОформления = ЭтаФорма.УсловноеОформление.Элементы.Добавить();
    ЭлементыОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементыОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементыОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Склад");
    ЭлементыОтбора.ПравоеЗначение = ЗначениеОтбора;
    ЭлементыОтбора.Использование = Истина;
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,155,0));    //оранжевый

    ПоляОформления = ЭлементОформления.Поля.Элементы.Добавить();
    ПоляОформления.Использование = Истина;
26 illiona
 
naïve
16.10.17
10:07
не пойму свойства у элемента отбора какие могут быть?
27 illiona
 
naïve
16.10.17
10:16
или это обращение к строке?
28 catena
 
16.10.17
10:17
(26)Ясно. Не забивай голову.

(25)Отлично. Только мне казалось, что тебе надо НеРавно, но это уже не важно. И как результат?
29 illiona
 
naïve
16.10.17
10:20
ничего не выделяется
Имя = Строка[0].Склад;
ЭлементыОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(Имя);

может так?
30 illiona
 
naïve
16.10.17
10:21
вообще надо неравно) и так и так не получается
31 catena
 
16.10.17
10:38
(29)имя КОЛОНКИ. как колонка называется?
И условное оформление, может, не к форме применять, а к таблице, а?
32 illiona
 
naïve
16.10.17
10:40
колонка называется Склад
Таблица сформирована программно к ней можно обратиться ЭтаФорма.ДанныеФайла
33 catena
 
16.10.17
10:42
(32)Это очень хорошо, что обратиться к ней теоретически можно. Осталось собраться с силами и применить на практике.
34 DrZombi
 
гуру
16.10.17
10:46
Куда мы катимся, уже фото не спрашивают :)
35 DrZombi
 
гуру
16.10.17
10:46
(32) «Зачем вам голова?» – «Я в нее ем!»
36 illiona
 
naïve
16.10.17
10:51
это самое сложное применить на практике
37 illiona
 
naïve
16.10.17
10:57
Строка[0].Склад - обращение к колонке склад
38 catena
 
16.10.17
11:00
(37)Да, в первой строке. Ты уводишь разговор в сторону, чтобы не применять УО к таблице? Хочешь запутать противника?
39 illiona
 
naïve
16.10.17
11:31
а как если не в цикле их перебрать?
40 catena
 
16.10.17
11:49
(39)Вот ты когда открываешь форму справочника, тыкаешь в отбор и пишешь "Наименование" "равно" "ххх" - ты потом сама строки перебираешь, или ОТБОР САМ ВЫБИРАЕТ СТРОКИ, КОТОРЫЕ ТЫ ЗАХОТЕЛА, УКАЗАВ В ОТБОРЕ ВСЕГО ЛИШЬ НАИМЕНОВАНИЕ КОЛОНКИ?
41 illiona
 
naïve
16.10.17
11:53
Наименование колонки
42 illiona
 
naïve
16.10.17
11:53
ну никак не пойму как программно это сделать
43 catena
 
16.10.17
12:02
(42)Примени (25) не к форме, а к таблице.
44 illiona
 
naïve
16.10.17
12:15
Элемент = УсловноеОформление.Элементы.Добавить();

    ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ТаблицаДанныхФайла");

    ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаДанныхФайла.Склад");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
    ОтборЭлемента.ПравоеЗначение = "количество";
    
  
    Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый);

Красит все
45 illiona
 
naïve
16.10.17
12:15
не отдельные строки
46 catena
 
16.10.17
12:25
ЭлементУсловногоОформленияКомпоновкиДанных (DataCompositionConditionalAppearanceItem)
Поля (Fields)
Использование:

Только чтение.
Описание:

Тип: ОформляемыеПоляКомпоновкиДанных.
Содержит набор оформляемых полей.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
47 catena
 
16.10.17
12:25
Скажи честно, ты просто рандомно переставляешь слова в коде в надежде, что кто-то тут сдастся и напишет рабочий вариант?
48 illiona
 
naïve
16.10.17
12:42
пробую,ищу на форумах. Если б знала, как программно сделать уже бы закрыла тему :(
49 illiona
 
naïve
18.10.17
09:21
Все получилось. Всем спасибо.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс