Имя: Пароль:
1C
1С v8
Обращение к колонкам в строке табличной части
,
0 AndrewM
 
04.11.12
14:30
Строка табличной части (Line of a tabular section)
Свойства:
<Имя колонки> (<Column name>)
НомерСтроки (LineNumber)
Описание:
Используется для доступа к свойствам и методам строки табличной части.

Удручает то, что к колонке строки ТЧ можно обратиться только по имени. Никаких тебе циклов. А изначально есть только строка ТЧ (например, в обработчике "ПриВыводеСтроки").
Но бывают табличные части, например, с днями месяцев в колонках, и хотелось бы иметь возможность обходить их циклом, а не повторять один и тот же кусок кода 31 раз.

Есть какой-то способ?
1 zak555
 
04.11.12
14:32
[][]
2 AndrewM
 
04.11.12
14:35
(1) Ты про квадратные скобки? Получение элемента по индексу для значения не определено. Да и в СП об этом ни слова. В строке ТЧ нельзя обратиться к её колонкам по индексу.
3 zulu_mix
 
04.11.12
14:35
я б поинтересовался - для чего это надо?
4 AndrewM
 
04.11.12
14:36
(3) Повторюсь: например, в обработчике "ПриВыводеСтроки"
5 Живой Ископаемый
 
04.11.12
14:36
Привыводестроки не имеет НИКАКОГО отношение к ТЧ и ее строкам. точка
6 zak555
 
04.11.12
14:36
точно с ТХ перпутал

выгрузи в ТЗ и работай
7 zulu_mix
 
04.11.12
14:36
(4) повторюсь тоже. что делается в этом обработчике?
8 zulu_mix
 
04.11.12
14:38
чую щас будет порция отменного, отборного копрокода
9 viktor_vv
 
04.11.12
14:41
А через метаданные никак ?
10 AndrewM
 
04.11.12
14:42
(6) Делал так в другом случае. Но в обработчике ПриВыводеСтроки имеется только строка.
(7) Проверяется значение заполнения. В зависимости от значения, выделяется жирным шрифтом.
11 AndrewM
 
04.11.12
14:45
(5) ??? Ну, там же есть ДанныеСтроки с типом ДокументТабличнаяЧастьСтрока
12 zulu_mix
 
04.11.12
14:47
управляемая форма?
13 AndrewM
 
04.11.12
14:48
(12) Обычная
14 Живой Ископаемый
 
04.11.12
14:48
2(11) то есть все-таки табличное поле но никак не ТЧ... я так и думал
15 Живой Ископаемый
 
04.11.12
14:51
Итого, ответ в (1)
Для Сч=1 По 12 Цикл
ДанныеСтроки["Мес"+Сч]
16 AndrewM
 
04.11.12
14:54
(15) Получение элемента по индексу для значения не определено (в обработчике "ПриВыводеСтроки").
Всё-таки это строка табличной части.
Тип же ДокументТабличнаяЧастьСтрока
17 Живой Ископаемый
 
04.11.12
14:56
2(16) а у меня определено и только что получилось.
18 AndrewM
 
04.11.12
14:56
+ (16) Я не просто повторяю "Получение элемента по индексу для значения не определено". Я на всякий случай проверяю и проверяю. И от (1) до (15) ситуация не изменилась. :)
19 zulu_mix
 
04.11.12
14:57
давай свой копрокод. будем копаться
20 AndrewM
 
04.11.12
14:57
(17) в обычном приложении?
21 Живой Ископаемый
 
04.11.12
14:57
22 zulu_mix
 
04.11.12
14:58
(20) в управляемом за такое руки отрывают
23 Живой Ископаемый
 
04.11.12
15:02
А вот уже к оформлению конкретной ячейки по имени похоже не обратится.
придется коллекцию оформлений ячеек перебирать и сравнивать имя.
http://screencast.com/t/hIufzHiX
24 AndrewM
 
04.11.12
15:04
(19) Вот копрокод:
Процедура ОтработанноеВремяПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   Если мВидыВремени.Найти(ОформлениеСтроки.ДанныеСтроки.ПервыйВидВремени15) > 0
        И ОформлениеСтроки.ДанныеСтроки.ПервыйЧасов15 = 0 Тогда
       ОформлениеСтроки.Ячейки.День15.Шрифт = мЖирныйШрифт;
   КонецЕсли;
КонецПроцедуры
25 AndrewM
 
04.11.12
15:05
+ (24) Если сдамся, повторю его ещё 31 раз. :)
26 Живой Ископаемый
 
04.11.12
15:06
о боже нет.. То есть имея ДанныеСтроки, нужно написать
ОформлениеСтроки.ДанныеСтроки?
27 Живой Ископаемый
 
04.11.12
15:07
Что такое 15 в слове ПервыйВидВремени15? число месяца?
28 viktor_vv
 
04.11.12
15:07
А чего ты сразу из ДанныеСтроки не берешь из параметров ?
29 AndrewM
 
04.11.12
15:10
(27) Это название колонки табличной части документа "ТабельУчетаРабочегоВремениОрганизации". Да, я сделал пока для 15-го дня, потому что там выполнялось нужное условие.
(28) Можно и так. В принципе там одно и то же.
30 viktor_vv
 
04.11.12
15:11
(24) То есть, если ты напишешь

   Если мВидыВремени.Найти(ДанныеСтроки["ПервыйВидВремени15"]) > 0
        И ДанныеСтроки["ПервыйЧасов15"] = 0 Тогда
       ОформлениеСтроки.Ячейки.День15.Шрифт = мЖирныйШрифт;
   КонецЕсли;

Выдает ошибку ?
31 AndrewM
 
04.11.12
15:16
(30) чёрт, я ставил в квадратные скобки цифру. :)
Точно, с наименованием ошибки нет.
32 viktor_vv
 
04.11.12
15:17
(31) Круто :)).
33 Живой Ископаемый
 
04.11.12
15:36
и главное столько пафоса было - проверяю и проверию, ситуация не изменилась...
34 AndrewM
 
04.11.12
15:50
(33) Да не было пафоса, ты что. :)
Вообще спасибо за комментарии. Писал с готовностью получить тухлых помидоров.
А копрокод на мисте выкладывать так вообще страшно.
35 Живой Ископаемый
 
04.11.12
15:55
ок. :) ладно.. значит показалось. ;)