Имя: Пароль:
1C
1С v8
Табличное поле, цвет фона ячейки.
,
0 sora_tm
 
25.02.12
23:38
Добрый вечер!
Пишу обработку, все сделал, навожу внешний вид. Есть табличное поле в форме с типом ТаблицаЗначений. Она заполняется по нажатию кнопки на форме. Есть колонка "Контрагенты" ее хочу выделить. Процедура.

Процедура ТиражиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   Если ДанныеСтроки=Неопределено Тогда
       Возврат;
   ИначеЕсли ДанныеСтроки=ЭлементыФормы.Тиражи.ТекущаяСтрока Тогда
       ОформлениеСтроки.ЦветФона=Новый Цвет(255,228,225);
   КонецЕсли;
       ОформлениеСтроки.Ячейки["Контрагент"].ЦветФона= Новый Цвет(0,228,225);

КонецПроцедуры


Проблема в том, что пока не заполнено табличное поле, и нету колонки, выскакивает ошибка, что нету этой колонки "Поле объекта не обнаружено (Контрагент)", если я заполняю Таб.поле, то процедура отрабатывает норм. Не могу понять, что сделать чтобы убрать ошибку.
1 vmv
 
25.02.12
23:40
забыть про обработчик ПриВыводеСтроки() будет самым правильным, не важно какая у тебя платформа - условное оформление это должно делать
2 vmv
 
25.02.12
23:41
ТкСтр = Элемент.ТекущаяСтрока;

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

так надо в этом ущербном методе)
3 PVV65
 
25.02.12
23:46
(1)(2) Это ты к чему?
4 sora_tm
 
25.02.12
23:49
(2) Первое условие у меня отрабатывает норм, окрашивает выделенную строку, а вот с ячейкой ерунда. А почему метод ущербен? По форуму ищу везде его используют.
5 PVV65
 
25.02.12
23:50
(4) Думаю в (1) он имел ввиду использование ПриПолученииДанных, а в (2) ни чем не лучше (0).
6 PVV65
 
25.02.12
23:50
+(5) ... либо УФ.
7 PVV65
 
25.02.12
23:53
(0) Попробуй так

Процедура ТиражиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   Если ДанныеСтроки=Неопределено Тогда
       Возврат;
   Иначе
       ОформлениеСтроки.Ячейки["Контрагент"].ЦветФона= Новый Цвет(0,228,225);
   КонецЕсли;

КонецПроцедуры
8 sora_tm
 
26.02.12
00:14
(7) Спасибо за помощь, так я тоже пробовал, тоже самое :(
9 sanja26
 
26.02.12
00:15
может ячейку проверять на неопределено?
10 sora_tm
 
26.02.12
00:20
(9) Логично, но не могу найти как.
11 sanja26
 
26.02.12
00:22
ОформлениеСтроки.Ячейки.найтипоНаименованию("Контрагент")? не
12 PVV65
 
26.02.12
00:25
(8) Поставь точку останова На "Если" и посмотри, какое значение имеет ДанныеСтроки при отсутствии колонки Контрагент.
13 PVV65
 
26.02.12
00:26
+(12) У меня сомнения, что причина в этом.
14 PVV65
 
26.02.12
00:27
(9) (11) Не путай человека.
15 sanja26
 
26.02.12
00:28
(14) в иначе попадает ведь
16 sora_tm
 
26.02.12
00:30
(11) Метод объекта не обнаружен (НайтиПоНаименованию)
(12) Значение: СтрокаТаблицыЗначений
17 PVV65
 
26.02.12
00:31
(15) Дык решать надо раньше.
18 PVV65
 
26.02.12
00:33
(16) ((2)) Это тип... Думая, что в (0) неверная информация. Данные ТП какие?
19 PVV65
 
26.02.12
00:36
+(18)  глупость.
20 sora_tm
 
26.02.12
00:37
Как только открыта  обработка, в ТП уже пустая строка висит. И соответственно с выделение изменение фона работает, а ячейку нет, тк нету колонки еще.
(18) Я сделал точку остановки и через "вычислить выражение" Посмотрел что в ДанныеСтроки.
21 PVV65
 
26.02.12
00:38
(16) Т.е. тип СтрокаТаблицыЗначений.

Нажми плюсик и посмотри, какие колонки в этой строке есть.
22 PVV65
 
26.02.12
00:39
(20) Ван момент плиз.
23 sanja26
 
26.02.12
00:39
может Колонки.Количество() проверять
24 sora_tm
 
26.02.12
00:41
(21) Нет плюса. Тип и Значение стоит СтрокаТаблицыЗначений.
25 sora_tm
 
26.02.12
00:45
(23) Да, получилось!
Спасибо огромное всем за помощь!
26 PVV65
 
26.02.12
00:49
Да.. Что то вы ребята меня поставили в тупик. Это что же за программа, в которой срабатывает событие ТП ПриВыводеСтроки при полном отсутствии строк?
Независимо от того, куда вы едете — это в гору и против ветра!