Табличная часть документа, как перебрать и вывести всю...

Форум 1С: Одинэс.Ру

Найти!

Табличная часть документа, как перебрать и вывести всю...

deefm
08.04.2009 - 08:38
Здравствуйте, самописная конфигурация по учету договоров. Есть документ Договор. Содержит две закладки: на первой - реквизиты шапки, на второй - реквизиты табличной части (в ней вводятся доп.соглашения к договору, в отдельных строчках). Мне надо, если у Договора есть несколько доп.соглашений (несколько строчек в табл.части), то чтобы он их ВСЕ выводил в виде:
 
ДоговорА             ДатаА   СуммаА
   ДопСоглашение1     Дата1   Сумма1
   ДопСоглашение2     Дата2   Сумма2
ДоговорБ             ДатаБ   СуммаБ
ДоговорВ             ДатаВ   СуммаВ
 

 
Где ДопСоглашение1, Дата1, Сумма1, ДопСоглашение2, Дата2, Сумма2 берутся из табличной части.  А сейчас у меня выводится только последняя строчка табл.части. Вот мой текст:
 

ТЗ=СоздатьОбъект("Таблицазначений");
Док = СоздатьОбъект("Документ.Договор");
Док.ВыбратьДокументы(НачДата, КонДата);
Пока Док.ПолучитьДокумент() = 1 Цикл  
 
ТЗ.НоваяСтрока();
ТЗ.Контрагент = Док.Контрагент;
ТЗ.ДатаРег = Док.ДатаРег;
    ТЗ.Сумма = Док.Сумма;
    
//здесь обращаюсь к табл.части
//чтобы выбрать доп.соглашения
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
ТЗ.ДатаДС = Док.ДатаДС;
ТЗ.СуммаДС = Док.СуммаДС;
КонецЦикла;
 
КонецЦикла;  
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
06.10.2024 - 17:08
Смотри также:
Как восстановить md?
ПУБ 298 Проблема с вводом нормативов
1С для КПК?

Re: Табличная часть документа, как перебрать и вывести всю...

roma n
1 - 08.04.2009 - 08:41
1. Зачем ТЗ.
2. Но раз уж ТЗ, то в неё строки надо добавлять... наверное...

Re: Табличная часть документа, как перебрать и вывести всю...

Sasha
2 - 08.04.2009 - 08:41
Воспользуйся конструктором запроса

Re: Табличная часть документа, как перебрать и вывести всю...

Duke1C
3 - 08.04.2009 - 08:46
(2)+10
(0) ТЗ явно ни к чему.

Re: Табличная часть документа, как перебрать и вывести всю...

deefm
4 - 08.04.2009 - 08:50
Подскажите, пож-та, как можно без ТЗ?
Мне надо, чтобы если у договора были доп.соглашения (т.е. заполненны несколько строчек табл.части, в зависи-ти от кол-ва доп.соглашений), то они выводились бы под основным договором все сразу, т.е. как я показала в (0).

Re: Табличная часть документа, как перебрать и вывести всю...

roma n
5 - 08.04.2009 - 08:55
4-deefm > выводились бы куда? в табличный документ? Тогда и выводи сразу в него, без прокладки в виде ТЗ

Интересные темы

odines.ru
06.10.2024 - 17:08
Смотри также:
Перенос документа или шалавливые ручки.
анализ состояния автоматизации
Код элемента справочника не уникальный!!!

Re: Табличная часть документа, как перебрать и вывести всю...

deefm
6 - 08.04.2009 - 08:57
(5) в печ.форму, распечатываю что-то типа реестра по договорам.

Re: Табличная часть документа, как перебрать и вывести всю...

КвазиСпец
7 - 08.04.2009 - 09:03
Ну так и выводи сразу на печать! Зачем тебе ТЗ?

Re: Табличная часть документа, как перебрать и вывести всю...

roma n
8 - 08.04.2009 - 09:03
Пока Док.ПолучитьДокумент() = 1 Цикл  
ТабДок.ВывестиСекцию("Документ");  
//здесь обращаюсь к табл.части
//чтобы выбрать доп.соглашения
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
ТабДок.ВывестиСекцию("СтрокаДокумента");
КонецЦикла;
 
КонецЦикла;  

Re: Табличная часть документа, как перебрать и вывести всю...

deefm
9 - 08.04.2009 - 09:10
Конструктором пишу:
 
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Дата = Документ.Договор.ДатаРег;
|Контрагент = Документ.Договор.Контрагент.Наименование;
|Сумма = Документ.Договор.Сумма;
//здесь обращаюсь к табл.части (доп.соглашениям)
|ДатаДопСогл = Документ.Договор.ДатаДС;
|СуммаДопСогл = Документ.Договор.СуммаДС;
|Группировка Дата;
|Группировка Контрагент;
|Группировка Сумма;
|Группировка ДатаДопСогл;
|Группировка СуммаДопСогл;
|"//}}ЗАПРОС
;
 
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
Пока Запрос.Группировка(3) = 1 Цикл
Пока Запрос.Группировка(4) = 1 Цикл
Пока Запрос.Группировка(5) = 1 Цикл
Таб.ВывестиСекцию("Договора");
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
 
Выводит в виде:
 
ДоговорА     ДатаА    СуммаА     ДопСоглашение1     Дата1   Сумма1
ДоговорА     ДатаА    СуммаА     ДопСоглашение2     Дата2   Сумма2
ДоговорБ             ДатаБ   СуммаБ
ДоговорВ             ДатаВ   СуммаВ
 

А надо, чтобы как в (0).
 
  
 

Re: Табличная часть документа, как перебрать и вывести всю...

КвазиСпец
10 - 08.04.2009 - 09:13
Похоже, с запросами у тебя не очень... Пиши как в (8)

Re: Табличная часть документа, как перебрать и вывести всю...

deefm
11 - 08.04.2009 - 09:26
(8) Спасибо!!! вроде все выводит, как мне надо, только если у договора пустая табл.часть, то выводит пустую строчку... Подскажите пож-та, можно ли это побороть???

Re: Табличная часть документа, как перебрать и вывести всю...

КвазиСпец
12 - 08.04.2009 - 09:29
Если Док.КоличествоСтрок()>0 Тогда
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
ТабДок.ВывестиСекцию("СтрокаДокумента");
КонецЦикла;
КонецЕсли;

Re: Табличная часть документа, как перебрать и вывести всю...

roma n
13 - 08.04.2009 - 09:31
11-deefm >
Точно написано как в (8)? Не должно такого быть. В цикл ПолучитьСтроку()=1 при отсутствии строк закодить не должно => строка не должна появляться в таблице

Re: Табличная часть документа, как перебрать и вывести всю...

deefm
14 - 08.04.2009 - 09:34
(8), (12) большое СПАСИБО!!! Все получилось :)
К списку тем 1 > К списку форумов

Добавить новое сообщение

Ваше имя:
Тема сообщения:
Сообщение:
« Взаимозачет в УСН 77 Обмен данными »
© 2009 Форум 1С: Одинэс.Ру