|
v7: Небольшая головоломка с ИТЗ | ☑ | ||
|---|---|---|---|---|
|
0
Zhuravlik
15.05.13
✎
11:03
|
Добрый день. Есть индексированная таблица ИТЗ, сгруппированная по заранее неизвестному количеству группировок. Получается, что на каждом уровне группировки строка ИТЗ имеет таблицу тзПотомки, и не имеет на последнем.
А вот как узнать на каком уровне группировки в ИТЗ находится текущая тзПотомки? |
|||
|
1
Ёпрст
гуру
15.05.13
✎
11:12
|
поставить счетчик при обходе вестимо
|
|||
|
2
Zhuravlik
15.05.13
✎
11:28
|
(1) Это понятно, но не догоню как. Не стал пока с ним морочиться, пробовал через методы самой ИТЗ это узнать, и кажется решил...
Индексы от 1 до N - сохраняются для всех вложенных таблицах как Инд1 для тзПотомки1, Инд2 для тзПотомки2... |
|||
|
3
Ёпрст
гуру
15.05.13
✎
11:31
|
проще по ИмяИндекса(Индекс) посмотреть
|
|||
|
4
Ёпрст
гуру
15.05.13
✎
11:31
|
делов то
|
|||
|
5
Zhuravlik
15.05.13
✎
11:36
|
(3) Так я так и сделал) Только смотрю ВыражениеИндекса().
(4) Просто не пользовался этим методом, и не до конца был понятен метод Сгруппировать() у ИТЗ. Я думал так: если вложенные таблицы копируют структуру родителя, то и индексы тоже. А оказалось, что нет: ИТЗ.ВыбратьСтроки(); Пока ИТЗ.ПолучитьСтроку() = 1 Цикл Сообщить("1: " + ИТЗ.ВыражениеИндекса(2)); тз2 = ИТЗ.тзПотомки; Сообщить("2: " + тз2.ВыражениеИндекса(2)); тз2.ВыбратьСтроки(); Пока тз2.ПолучитьСтроку() = 1 Цикл тз3 = тз2.тзПотомки; Сообщить("3: " + тз3.ВыражениеИндекса(2)); Прервать; КонецЦикла; Прервать; КонецЦикла; |
|||
|
6
Ёпрст
гуру
15.05.13
✎
11:42
|
только ИТЗ лучше(проще) обходить в рекурсивной функции
|
|||
|
7
Zhuravlik
15.05.13
✎
11:45
|
(6) Да, так и делаю, (5) - просто показал как тестил, вдруг неправильно?
Спасибо) |
| Форум | Правила | Описание | Секции | Поиск |