Имя: Пароль:
1C
1С v8
v8: Две табличные части в печатную форму (Хэлп ми)
,
0 LehhaK
 
30.05.12
11:39
Уважаемые знатоки, только учусь программировать и вот во что уперся:
В документе есть 2 табличных части, значения из которых  надо перебрать, сопоставить и вывести в печатную форму. Вторая табличная часть - дерево значений, в котором корневой каталог "каким-то образом"(!) связан с первой табличной частью. Узнать каким образом не могу, но известно, что у корневого каталога реквизит "родитель_ID" пустой, в печатной форме должно получиться следующее:
Объект ремонта1:
работа1
Работа2
работа3
Объект ремонта2:
работа4
Работа5
(без, собственно, корневого каталога, который, по сути, не несет смысловой нагрузки)
Есть модуль

Для каждого ТекСтр из ЭтотОбъект.РемонтыОборудования Цикл
   СтрокаРабот=Макет.ПолучитьОбласть("СтрокаРабот");
НовСтр = ТЗ.Добавить();
НовСтр.ОбъектРемонта = ТекСтр.ОбъектРемонта.Наименование;
НовСтр.ДатаНачалаРабот = ТекСтр.ДатаНачала;
НовСтр.ДатаОкончанияРабот = ТекСтр.ДатаОкончания;
СтрокаРабот.Параметры.ОбъектРемонта =НовСтр.ОбъектРемонта;
СтрокаРабот.Параметры.ДатаНачалаРабот = НовСтр.ДатаНачалаРабот;
СтрокаРабот.Параметры.ДатаОкончанияРабот = НовСтр.ДатаОкончанияРабот;
ТабДок.Вывести(СтрокаРабот);
СтрокаРемонтов=Макет.ПолучитьОбласть("СтрокаРемонтов");
Для каждого ТекСтр из ЭтотОбъект.РемонтныеРаботы Цикл
   ЕСли ТекСтр.Родитель_ID <> "" Тогда
   НовСтр = ТЗ_2.Добавить();
   НовСтр.РемонтныеРаботы = ТекСтр.РемонтнаяРабота.Наименование;
   НовСтр.ИД = ТекСтр.Родитель_ID;
   СтрокаРемонтов.Параметры.Работа = НовСтр.РемонтныеРаботы;
   ТабДок.Вывести(СтрокаРемонтов);
   КонецЕсли;
КонецЦикла;
КонецЦикла;

Сейчас модуль выводит строку из первой таб части, и все строки из 2ой, и т.д.
Теперь вопрос:
как реализовать этот процесс в данном модуле?
Понимаю, что упускаю что-то совсем простое, но не понимаю, что именно.
буду очень признателен за помощь
1 PR
 
30.05.12
11:41
2 Buster007
 
30.05.12
11:41
почему не можешь узнать каким образом они связаны?
3 butterbean
 
30.05.12
11:42
>> Узнать каким образом не могу
а придется
4 LehhaK
 
30.05.12
11:45
(2) Нету там никаких общих реквизитов, по которым шла бы связь или сравнение. Документ заполняется на основании другого документа, который заполняется автоматической обработкой с закрытым кодом
5 LehhaK
 
30.05.12
11:46
(1)я  что то нарушил?
6 LehhaK
 
30.05.12
11:46
(1) оу, сорри, название... Каюсь...
7 kosts
 
30.05.12
11:48
ТекСтр - косяк, та же переменная ...


Для каждого ТекСтр из ЭтотОбъект.РемонтыОборудования Цикл
...
Для каждого ТекСтр из ЭтотОбъект.РемонтныеРаботы Цикл
...
КонецЦикла;
КонецЦикла;
8 kosts
 
30.05.12
11:59
Если таблицы связаны, то можно сделать так


Для каждого ТекСтр из РемонтыОборудования Цикл

   Строки = РемонтныеРаботы.НайтиСтроки(Новый Структура("РеквизитСвязи1, РеквизитСвязи2", ТекСтр.РеквизитСвязи1, ТекСтр.РеквизитСвязи2));

   Для каждого ТекСтр из Строки Цикл
       ...
   КонецЦикла;

КонецЦикла;
9 LehhaK
 
30.05.12
12:06
(7) переименовал в ТекущСтр :)
(8) Щас попробую, нашел волшебный реквизит "РемонтыОборудования_ID"
10 LehhaK
 
30.05.12
12:23
(8) Спасибо тебе, kosts!!! Взлетело :)
Надо быть внимательней...