Имя: Пароль:
1C
 
Подсветить строки в табличном поле
0 MegaRoks
 
21.07.18
09:17
Есть процедура, мне надо сравнить из поля Подсветить_строки и если есть в табличном поле совпадения подсветить их

Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок)
    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        Если ОформлениеСтроки.ДанныеСтроки = Подсветить_строки Тогда
            ОформлениеСтроки.ЦветФона = WebЦвета.Желтый;
        КонецЕсли;        
    КонецЦикла;
КонецПроцедуры

Вопрос у меня в том, попытался сделать, но все равно не подсвечивает
1 lucbak
 
21.07.18
09:25
(0) ОформлениеСтроки.ДанныеСтроки.  ?
2 MegaRoks
 
21.07.18
09:46
Я что то не так делаю?
3 lucbak
 
21.07.18
09:49
(2) с чем конкретно пытаешься сравнить "Подсветить_строки " ? не с "ДанныеСтроки"же. Что идет после точки?
4 MegaRoks
 
21.07.18
09:57
Есть поле на форма куда вводится значение. Я хочу это введенное значение найти в табличном поле, и если они там есть то подсветить.

Например
я ввел rt

в табличном поле три строки

tyu
rty
rte

2 и 3 строки должны подсветиться
5 Cool_Profi
 
21.07.18
10:00
А отладчик что говорит?
6 MegaRoks
 
21.07.18
10:04
Не заходит в Если
7 lucbak
 
21.07.18
10:06
(4)
Всесто:
Если ОформлениеСтроки.ДанныеСтроки = Подсветить_строки Тогда
    
Что-то типа такого:

ПодсвечиваемСтроки="rt";
Если СтрНайти(ОформлениеСтроки.ДанныеСтроки["ТутНазваниеПоляКотороеПроверяем"], ПодсвечиваемСтроки) > 0 Тогда
8 Cool_Profi
 
21.07.18
10:22
(6) А что такое "Подсветить_строки"?
9 MegaRoks
 
21.07.18
10:28
Все работает, но теперь когда я заполняю таблицу она окрашивается. Как это можно избежать?
10 Cool_Profi
 
21.07.18
10:40
(9) Условие проверяй, что делать? Снимать штаны не предлагаю....
11 lucbak
 
21.07.18
10:49
(9) Что означает фраза "заполняю таблицу" ?
12 MegaRoks
 
21.07.18
11:01
Вот процедура заполнения табличного поля.

Процедура КоманднаяПанельЗаполнить(Кнопка)
    ТабличноеПоле.Очистить();
    Для Счетчик = 1 по 4 Цикл
        ЭлементыФормы.ТабличноеПоле.ДобавитьСтроку();
        ТекущаяСтрока = ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока;
        ТекущаяСтрока.Номер = Счетчик;
        ТекущаяСтрока.Значение = ТекущаяДата();
    КонецЦикла;
КонецПроцедуры

А вот процедура поиска и окрашивания

Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок)
    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        Если СтрНайти(ОформлениеСтроки.ДанныеСтроки["Значение"], Подсветить_строки) > 0 Тогда
            ОформлениеСтроки.ЦветФона = WebЦвета.Желтый;
        КонецЕсли;    
    КонецЦикла;
КонецПроцедуры

Когда отладчик доходит до строчки

ЭлементыФормы.ТабличноеПоле.ДобавитьСтроку();

То переходит в процедуру ТабличноеПолеПриПолученииДанных, хотя мне это не надо
13 lucbak
 
21.07.18
11:04
(12) Подсветить_строки - это дата?
14 Cool_Profi
 
21.07.18
11:08
ТекущаяСтрока.Значение = ТекущаяДата()
СтрНайти(ОформлениеСтроки.ДанныеСтроки["Значение"], Подсветить_строки)


Протяни руки, мы их будем медленно отрумать-твою....
15 MegaRoks
 
21.07.18
11:10
Нет, в значение будет значение, но пока что я туда кладу дату для проверки. В значение будет код, который например 4rt56
16 MegaRoks
 
21.07.18
11:13
Все работает, проблема только в том что когда я нажимаю заполнить таблицу, она вся окрашивается в желтый, как этого избежать?
17 lucbak
 
21.07.18
11:22
(16) Во первых - зачем ты вообше добавляешь строки через "ДобавитьСтроку" ? Что такое "ТабличноеПоле" ? это табличнаяЧасть ? делай просто через НоваяСтрока=ТабличноеПоле.Добавить() Где "ТабличноеПоле" это "Данные".
Во вторых все, что у тебя не работает это условие - во его и проверяй (а то ты так и не можешьсказать, что у тебя в переменной "Подсветить_строки" сейчас находится)
18 MegaRoks
 
21.07.18
11:27
Табличное поле это компонент с типом таблица значение. Я не могу понять что в моем условии не правильно
19 lucbak
 
21.07.18
12:28
(18)
Для начала измени свой код на:

Процедура КоманднаяПанельЗаполнить(Кнопка)
    тзДанные.Очистить();
    Для Счетчик=1 по 4 Цикл
        НоваяСтрока=тзДанные.Дбавить();
        НоваяСтрока.Номер=Счетчик;
        НоваяСтрока.Значение=ТекущаяДата();
    КонецЦикла;
КонецПроцедуры

//Где "тзДанные" - название твоей таблицы значений (то, что написано в поле "Данные" твоего табличного поля)
20 sechs
 
21.07.18
13:03
(16) Кури СП по СтрНайти до просветления, т-щ погромист. Особенно часть между  "Доступность" и "Примечание".