Вход | Регистрация


1С:Предприятие ::

Метки: 

1c 8.3 управляемые формы. Выделение строки цветом

Я
   illiona
 
16.10.17 - 05:55
Добрый день. Таблица формируется программно и выводится на форму 
ЗначениеВРеквизитФормы(ТЗ,"ДанныеФайла");

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

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

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

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

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

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

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

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

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

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

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

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

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

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



Список тем форума
Рекламное место пустует Рекламное место пустует
Ошибка? Это не ошибка, это системная функция.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует