Имя: Пароль:
1C
 
Изменить цвет строки в форме списка справочника. Что делаю не правильно?
,
0 AlexBor
 
naïve
14.02.16
09:01
Есть справочник Адрес в нем реквизит Управляющая_к - (Ссылка на справочник организации), в справочнике Организации - реквизит Недействующая (флажок).  Хочу сделать что бы в справочнике Адрес строки выделялись красным только те, в организации у которых стоит флажок недействующая.  Делаю так:

Если  ДанныеСтроки.Управляющая_к.Недействующая=1 тогда    
ОформлениеСтроки.ЦветФона=Новый Цвет (255,200,200);
КонецЕсли

Ошибка

и так

Если  ДанныеСтроки.Управляющая_к.Сыылка.Недействующая=1 тогда    
ОформлениеСтроки.ЦветФона=Новый Цвет (255,200,200);
КонецЕсли

Опять ошибка

Как сделать правильно?
1 AlexBor
 
naïve
14.02.16
09:15
Попробовал вот так то же не прокатывает

Для каждого Стр1 из ОформлениеСтроки цикл    
        
        Если Стр1.ДанныеСтроки.Ссылка.Управляющая_к.Недействующая=1 Тогда
        ОформлениеСтроки.ЦветФона=Новый Цвет (255,200,200);
    
        КонецЕсли
        
КонецЦикла;
2 ДенисЧ
 
14.02.16
09:33
А ошибку мы должны угадать?
И какой будет приз угадавшему?
3 AlexBor
 
naïve
14.02.16
09:35
(2) Ясно прошу прощения виноват:

Справочник.Адрес.Форма.ФормаСписка.Форма(46)}: Итератор для значения не определен
Для каждого Стр1 из ОформлениеСтроки цикл
4 RomaH
 
naïve
14.02.16
09:44
ОформлениЯСтрок
5 Фокусник
 
14.02.16
09:49
(0) в какой процедуре этот код? Форма обычная или управляемая?
6 AlexBor
 
naïve
14.02.16
09:51
(5) Обычная форма

Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ Первые 1
        |    УправляющиеКомпании.Период КАК Период,
        |    УправляющиеКомпании.УК КАК УК,
        |    УправляющиеКомпании.Адрес
        |ИЗ
        |    РегистрСведений.УправляющиеКомпании.СрезПоследних(, Адрес = &Адрес) КАК УправляющиеКомпании
        |ГДЕ
        |    УправляющиеКомпании.Адрес = &Адрес
        |
        |СГРУППИРОВАТЬ ПО
        |    УправляющиеКомпании.Адрес,
        |    УправляющиеКомпании.Период,
        |    УправляющиеКомпании.УК
        |
        |УПОРЯДОЧИТЬ ПО
        |    Период УБЫВ,
        |    УК УБЫВ";

    //
        
    Запрос.УстановитьПараметр("Адрес", ДанныеСтроки.Ссылка);
    Результат = Запрос.Выполнить().Выбрать();
    
    Пока Результат.Следующий() Цикл
        
        ОформлениеСтроки.Ячейки.Управляющая.Текст = Строка(Результат.УК);
        ОформлениеСтроки.Ячейки.Управляющая.ОтображатьТекст = Истина;
    КонецЦикла;

    
  
Для каждого Стр1 из ОформлениеСтроки цикл    
        
        Если Стр1.ДанныеСтроки.Ссылка.Управляющая_к.Недействующая=1 Тогда
            
            ВыражениеСодержащееНужноеЗначение = Стр1.ДанныеСтроки.Ссылка.Управляющая_к.Недействующая;
            ОформлениеСтроки.ЦветФона=Новый Цвет (255,200,200);
    
        КонецЕсли
        
КонецЦикла;
    

КонецПроцедуры
7 Фокусник
 
14.02.16
09:57
(6) перемести свой код в обработчик события. ПриПолученииДанных.

Или код из (0) исправь
Если  ДанныеСтроки.Управляющая_к.Сыылка.Недействующая=1 тогда    
ОформлениеСтроки.ЦветФона=Новый Цвет (255,200,200);
КонецЕсли

В ссылка опечатка, и нужно ДанныеСтроки.Ссылка.Не действующая=1

(Если в справочнике есть числовой или булево реквизит Недействующая
8 AlexBor
 
naïve
14.02.16
10:19
(7) Переместил в обработчик  ПриПолученииДанных.

  
        Если ДанныеСтроки.Ссылка.Управляющая_к.Недействующая=1 Тогда
            
          
            ОформленияСтрок.ЦветФона=Новый Цвет (255,200,200);
    
        КонецЕсли
        
Ошибка такая теперь {Справочник.Адрес.Форма.ФормаСписка.Форма(72,14)}: Переменная не определена (ДанныеСтроки)
        Если <<?>>ДанныеСтроки.Ссылка.Управляющая_к.Недействующая=1 Тогда
9 Ma3eIIa
 
14.02.16
10:23
Ужас. а в отладчике поставить точку остановки. и посмотреть какие там значение. а не писать тут и ждать.
10 Ma3eIIa
 
14.02.16
10:24
(8) бездумное копи паст кода....
11 hhhh
 
14.02.16
10:57
(8) ну переменную ДанныеСтроки определи
12 AlexBor
 
naïve
14.02.16
11:47
А почему в обработчике ПриВыводеСтроки данный код не работает а в обработчике СписокПриПолученииДанных работает?

Для каждого Стр2 из ОформлениеСтроки цикл    
        
        Если НЕ Стр2.ДанныеСтроки.Ссылка.ЭтоГруппа Тогда
            
        ВыражениеСодержащееНужноеЗначение = Стр2.ДанныеСтроки.Ссылка.Управляющая_к.Недействующая;        
        Если     ВыражениеСодержащееНужноеЗначение =1 Тогда
        Стр2.Ячейки.Недействующая.УстановитьТекст("Недействующая") Иначе
        Стр2.Ячейки.Недействующая.УстановитьТекст("Действующая")    ;
        КонецЕсли
        
        КонецЕсли
        
    КонецЦикла;
13 ДенисЧ
 
14.02.16
11:48
(12) Потому что ты не читаешь справку...
14 AlexBor
 
naïve
14.02.16
11:51
(13) Я примерно так же и думал ....а приминительно к коду ?
15 ДенисЧ
 
14.02.16
11:59
(14) А ты уже прочитал справку про события ПриВыводеСтроки() и ПриПолученииДанных() ?
На их параметры внимание обратил?
16 AlexBor
 
naïve
14.02.16
12:01
(15) Да прочитал но не догоняю приминительно к моему коду что нужно изментиь что бы работал в ПриВыводеСтроки
17 ДенисЧ
 
14.02.16
12:05
(16) И правильно. Ибо в ПриВыводеСтроки() этого делать не надо.
18 ВРедная
 
14.02.16
12:23
(16) где ты увидел в синтакс помощнике, что при выводе строки есть список строк по которым можно прогнать цикл?
19 AlexBor
 
naïve
14.02.16
12:29
(17) (18) Теперь понятно ...спасибо