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

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

Метки: 

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

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

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

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

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

tyu
rty
rte

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

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

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

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

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

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

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


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

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

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


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