![]() |
![]() |
![]() |
|
3-х уровневая таблица значений. | ☑ | ||
---|---|---|---|---|
0
Босечка
20.09.11
✎
11:42
|
Есть 3-х уровневая таблица значений. При выполнении модуля ругается на ТабТЗ_Каб. "Поле объекта не обнаружено!" Я уже запуталась в этих таблицах. Двухуровневые делала без проблем, а 3- первый раз.
Т_М = Новый ТаблицаЗначений; Т_М.Колонки.Добавить("Модель"); Т_М.Колонки.Добавить("ТаблТЗ"); Для Каждого ТекущаяСтрока Из Т Цикл НайденнаяСтрока = Т_М.Найти(ТекущаяСтрока.Модель,"Модель"); Если НайденнаяСтрока=Неопределено Тогда СтрокаОсновная=Т_М.Добавить(); СтрокаОсновная.Модель =ТекущаяСтрока.Модель; СтрокаОсновная.ТаблТЗ = Новый ТаблицаЗначений; СтрокаОсновная.ТаблТЗ.Колонки.Добавить("ТипНадстройки"); Иначе НайденнаяСтрока = Т.Найти(ТекущаяСтрока.Модель,"Модель"); КонецЕсли; НайденнаяСтрока1 = СтрокаОсновная.ТаблТЗ.Найти(ТекущаяСтрока.ТипНадстройки,"ТипНадстройки"); Если НайденнаяСтрока1=Неопределено Тогда СтрокаТаблТЗ=СтрокаОсновная.ТаблТЗ.Добавить(); СтрокаТаблТЗ.ТипНадстройки=ТекущаяСтрока.ТипНадстройки; СтрокаТаблТЗ.ТабТЗ_Каб = Новый ТаблицаЗначений; СтрокаТаблТЗ.ТаблТЗ_Каб.Колонки.Добавить("Настройка"); СтрокаТаблТЗ.ТаблТЗ_Каб.Колонки.Добавить("Кол",Новый ОписаниеТипов("Число")); иначе НайденнаяСтрока1 = СтрокаОсновная.ТаблТЗ.Найти(ТекущаяСтрока.ТипНадстройки,"ТипНадстройки"); Конецесли; СтрокаТаблТЗ1=СтрокаТаблТЗ.ТаблТЗ_Каб.Добавить(); СтрокаТаблТЗ1.Настройка=ТекущаяСтрока.Настройка; СтрокаТаблТЗ1.Кабины=ТекущаяСтрока.Кол; Конеццикла; |
|||
1
mzelensky
20.09.11
✎
11:43
|
(0) а нафига такие заморочки??? не проще Деревом значений воспользоваться????
|
|||
2
mikecool
20.09.11
✎
11:43
|
правильно ругается, где объявление колонки ТабТЗ_Каб?
|
|||
3
Axel2009
20.09.11
✎
11:43
|
ну именовать переменные надо так, чтобы было понятно а не 1-2-3
|
|||
4
Axel2009
20.09.11
✎
11:44
|
(2) СтрокаТаблТЗ.ТабТЗ_Каб = Новый ТаблицаЗначений;
а вот где объявление СтрокаТаблТЗ.ТаблТЗ_Каб непонятно |
|||
5
mikecool
20.09.11
✎
11:44
|
СтрокаОсновная.ТаблТЗ = Новый ТаблицаЗначений;
СтрокаОсновная.ТаблТЗ.Колонки.Добавить("ТипНадстройки"); //добавь еще СтрокаОсновная.ТаблТЗ.Колонки.Добавить("ТабТЗ_Каб"); |
|||
6
Босечка
20.09.11
✎
12:04
|
Спасибо, попробую.
|
|||
7
Босечка
20.09.11
✎
12:10
|
А теперь вот здесь ругается:
{Отчет.ОтчетПоПроданымАвтомобилям(124)}: Поле объекта не обнаружено (ТаблТЗ_Каб) СтрокаТаблТЗ.ТаблТЗ_Каб.Колонки.Добавить("Настройка"); |
|||
8
Axel2009
20.09.11
✎
12:12
|
ужас
|
|||
9
butterbean
20.09.11
✎
12:13
|
что-то ты не то попробовала, покажи код
|
|||
10
Босечка
20.09.11
✎
12:16
|
Т_М = Новый ТаблицаЗначений;
Т_М.Колонки.Добавить("Модель"); Т_М.Колонки.Добавить("ТаблТЗ"); Для Каждого ТекущаяСтрока Из Т Цикл НайденнаяСтрока = Т_М.Найти(ТекущаяСтрока.Модель,"Модель"); Если НайденнаяСтрока=Неопределено Тогда СтрокаОсновная=Т_М.Добавить(); СтрокаОсновная.Модель =ТекущаяСтрока.Модель; СтрокаОсновная.ТаблТЗ = Новый ТаблицаЗначений; СтрокаОсновная.ТаблТЗ.Колонки.Добавить("ТипНадстройки"); СтрокаОсновная.ТаблТЗ.Колонки.Добавить("ТабТЗ_Каб"); Иначе НайденнаяСтрока = Т.Найти(ТекущаяСтрока.Модель,"Модель"); КонецЕсли; НайденнаяСтрока1 = СтрокаОсновная.ТаблТЗ.Найти(ТекущаяСтрока.ТипНадстройки,"ТипНадстройки"); Если НайденнаяСтрока1=Неопределено Тогда СтрокаТаблТЗ=СтрокаОсновная.ТаблТЗ.Добавить(); СтрокаТаблТЗ.ТипНадстройки=ТекущаяСтрока.ТипНадстройки; СтрокаТаблТЗ.ТабТЗ_Каб = Новый ТаблицаЗначений; СтрокаТаблТЗ.ТаблТЗ_Каб.Колонки.Добавить("Настройка"); СтрокаТаблТЗ.ТаблТЗ_Каб.Колонки.Добавить("Кол",Новый ОписаниеТипов("Число")); иначе НайденнаяСтрока1 = СтрокаОсновная.ТаблТЗ.Найти(ТекущаяСтрока.ТипНадстройки,"ТипНадстройки"); Конецесли; СтрокаТаблТЗ1=СтрокаТаблТЗ.ТаблТЗ_Каб.Добавить(); СтрокаТаблТЗ1.Настройка=ТекущаяСтрока.Настройка; СтрокаТаблТЗ1.Кабины=ТекущаяСтрока.Кол; Конеццикла; |
|||
11
butterbean
20.09.11
✎
12:17
|
повнимательнее.. сравни ТабТЗ_Каб и ТаблТЗ_Каб
|
|||
12
Рэйв
20.09.11
✎
12:20
|
(10)
Рекомендую на вложенные таблицы сделать тз-шаблоны с нужными колонками,а потом просто копировать структуру, так намного нагляднее. |
|||
13
Босечка
20.09.11
✎
13:23
|
Как корректно сворачивать 3-уровневую таблицу?
Мне надо свернуть по всем полям по всем уровням. После моей свертки, выдается сообщение "Поле объекта не обнаружено ТаблТЗ_Каб" Для Каждого ТекущаяСтрока Из Т_М Цикл Для Каждого ТекущаяСтрока1 Из ТекущаяСтрока.ТаблТЗ Цикл ТекущаяСтрока.ТаблТЗ.Свернуть("Надстройка","Кол"); КонецЦикла; КонецЦикла; Для Каждого ТекущаяСтрока Из Т_М Цикл Сообщить(" "+ТекущаяСтрока.ТипНадстройки); Для Каждого ТекущаяСтрока1 Из ТекущаяСтрока.ТаблТЗ Цикл Сообщить(" "+ТекущаяСтрока1.Надстройка+" "+ТекущаяСтрока1.Кол); Для Каждого ТекущаяСтрока2 Из ТекущаяСтрока1.ТаблТЗ_Каб Цикл Сообщить(" "+ТекущаяСтрока2.Модель); КонецЦикла; КонецЦикла; КонецЦикла; |
|||
14
butterbean
20.09.11
✎
13:25
|
(13) уже даже не смешно
|
|||
15
Wobland
20.09.11
✎
13:25
|
трёхуровневая таблица значений... вот были ещё когда-то трёхмерные штрихкоды...
|
|||
16
Босечка
20.09.11
✎
13:31
|
(15) Это к чему сказано было?
|
|||
17
Босечка
20.09.11
✎
13:34
|
ап...
|
|||
18
Wobland
20.09.11
✎
13:35
|
(16) хорошо тогда было. трёхуровневая ТЗ - это как?
|
|||
19
Feanor
20.09.11
✎
13:37
|
После
ТекущаяСтрока.ТаблТЗ.Свернуть("Надстройка","Кол"); в ТекущаяСтрока.ТаблТЗ не останется поля "ТаблТЗ_Каб" |
|||
20
Босечка
20.09.11
✎
13:38
|
Колонкой ТЗ является таблица значений. И так 2 раза. Не сталкивались?
|
|||
21
Wobland
20.09.11
✎
13:38
|
(20) не, не доводилось, стараюсь без такого ;)
|
|||
22
Feanor
20.09.11
✎
13:39
|
(20) да хоть 100500 раз))) сворачиванием таблицы мы обрубаем все подчиненные таблицы - неужто это не понятно...
|
|||
23
Босечка
20.09.11
✎
13:41
|
(22) Нет не понятно.
Как же быть тогда? |
|||
24
Feanor
20.09.11
✎
13:42
|
(23) ответ очевиден: как-то обойтись без свёртывания таблиц, имеющих подчиненные таблицы.
|
|||
25
Босечка
20.09.11
✎
13:42
|
Наверное перенести на нижний уровень? Так?
|
|||
26
Feanor
20.09.11
✎
13:43
|
(25) для начала сформулировать задачу нужно правильно.
|
|||
27
Рэйв
20.09.11
✎
13:52
|
(13)На тебе шаблон. Закопипасть в обработку и медитируй.
А вообще тренируй пространственное мышление. А то еще бывают пятимерные массивы и все такое:)) |
|||
28
Alex_MA
20.09.11
✎
13:52
|
(0)Страшновато. Надо использовать ДеревоЗначений, зачем так извращаться ?
|
|||
29
Feanor
20.09.11
✎
13:57
|
(28) ты не шаришь. что бы враги не догадались, что задумал автор! дерево значений - для трусов и слабаков))
|
|||
30
Рэйв
20.09.11
✎
13:59
|
(29)Его предлагали в самом начале.Видимо не подходит по религиозным причинам:-)
|
|||
31
Axel2009
20.09.11
✎
14:00
|
(27) потом придешь туда работать, там будут колонки "Хрень1", "Хрень2" и т.д...
|
|||
32
Feanor
20.09.11
✎
14:00
|
(30) не вижу принципиальной разницы между деревом и таблицей, ТС, наверное, тоже))
|
|||
33
Рэйв
20.09.11
✎
14:02
|
(31) Ну что ж...Будет забавно:)
|
|||
34
Босечка
20.09.11
✎
14:02
|
Наверно...
|
|||
35
Босечка
20.09.11
✎
14:03
|
(27) Спасибо, пригодится.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |