|
Изменить цвет строки в форме списка справочника. Что делаю не правильно? | ☑ | ||
---|---|---|---|---|
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) Теперь понятно ...спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |