Имя: Пароль:
1C
1С v8
v8: Вывод в табличный документ
0 Vasus55
 
31.01.12
13:10
проблема такая,
есть ТП в него данные выгружаются запросом, есть кнопка печать, с помощью которой считываются данные с табличного поля и выводятся в ТабДок и затем печатаются
делаю это так
Организация=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Организация;
   Статусы=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Статус;
   Тип=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.ОсновнойТипОрганизации;
   Телефон=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Телефон;
   Факс=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Факс;
   почта=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.Email;
   сайт=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные.WebСайт;
   ТабДок = Новый ТабличныйДокумент;
   Секция = ТабДок.ПолучитьОбласть("R1");
   ТабДок.НачатьАвтогруппировкуСтрок();
ТабДок.Вывести(Секция,1,"Группа",Истина);
Итого = 0;
   ТабДок.Вывести(Секция,2,"Группа 1",Истина);
   Секция.Область("R1C1").Текст = "Статус";
   Секция.Область("R1C2").Текст = "Организация";
   Секция.Область("R1C3").Текст = "ТипОрганизации";
   Секция.Область("R1C4").Текст = "Телефон";
   Секция.Область("R1C5").Текст = "Факс";
   Секция.Область("R1C6").Текст = "E-mail";
   Секция.Область("R1C7").Текст = "Web сайт";

   ТабДок.Вывести(Секция,2,"Группа 1",Истина);
   //Для К=1 По ЭлементыФормы.ТабличноеПоле1 Цикл
       
       Секция.Область("R1C1").Текст = Статусы;
       Секция.Область("R1C2").Текст = Организация;
       Секция.Область("R1C3").Текст = Тип;
       Секция.Область("R1C5").Текст =Телефон;
       Секция.Область("R1C6").Текст = Факс;
       Секция.Область("R1C7").Текст = почта;
       Секция.Область("R1C8").Текст = сайт;
       
       ТабДок.Вывести(Секция,1,"Группа",Истина);
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.ИтогиСнизу = Истина;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать("Пример использования верт. автогруппировки");
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать);

проблема в том что выводится только первая строка, а как сделать чтобы все строки выводились???
1 Wobland
 
31.01.12
13:11
сделать вывод в цикле? код не открывал
2 Wobland
 
31.01.12
13:13
мда... секции в самом макете не назначить никак?

Область=Макет.ПолучитьОбласть("Строка");
Для Каждого ТекСтрока Из ИсточникДанных Цикл
 Область.Параметры.Заполнить(ТекСтрока);
 ТабДок.Вывести(Область);
КонецЦикла;
3 Wobland
 
31.01.12
13:15
специально для таких как ты я даже целую обработку писал. глянь http://ifolder.ru/28413294
4 Vasus55
 
31.01.12
13:21
спасибо, буду разбираться дальше)
5 Vasus55
 
31.01.12
13:23
а если печать идет с общей формы?
6 Wobland
 
31.01.12
13:23
(5) и что?
7 Reset
 
31.01.12
13:24
(1) Я открыл. Там действительно нет цикла и выводится только одна (текущая) строка.
8 Wobland
 
31.01.12
13:27
(7) но как тонко сработано, коллега!
9 Vasus55
 
31.01.12
13:43
а как можно в цикле заполнить данными, в данном случае
10 Vasus55
 
31.01.12
13:43
делал так, а дальше че писать не знаю
Для Каждого строка Из ТабличноеПоле1
   Цикл
11 Wobland
 
31.01.12
13:44
ТП с какими данными связано? вот их и перебирай
12 Wobland
 
31.01.12
13:44
и не называй переменную Строка. нужно ласково - Строчечка
13 Fish
 
гуру
31.01.12
13:45
(10) А дальше все твои действия по выводу одной строки и КонецЦикла :))))
14 Vasus55
 
31.01.12
13:49
Для Каждого стр Из ТабличноеПоле1
   Цикл

       Секция.Область("R1C1").Текст = стр.Статус;
       Секция.Область("R1C2").Текст = стр.Организация;
       Секция.Область("R1C3").Текст = стр.ОсновнойТипОрганизации;
       Секция.Область("R1C4").Текст = стр.Телефон;
       Секция.Область("R1C5").Текст = стр.Факс;
       Секция.Область("R1C6").Текст = стр.Email;
       Секция.Область("R1C7").Текст = стр.WebСайт;
   КонецЦикла;
пробывал так, но неверно, думаю потому что R1, надо чтобы она менялась
15 Wobland
 
31.01.12
13:49
бовал. обработку открывал? смотрел там в макет?
16 Fish
 
гуру
31.01.12
13:52
(14) Ну если ты упорно не хочешь использовать области в макете, то меняй номер строки. Например так:
НомерСтроки = 1;
Цикл
Секция.Область("R" + НомерСтроки + "C1").Текст = стр.Статус;
НомерСтроки = НомерСтроки+1;
КонецЦикла;

Но, ИМХО, это конечно изврат :)))
17 Reset
 
31.01.12
14:41
Ёмаё
Секция.Область(НомерСтроки,НомерКолонки).Текст = "гхджгхдж";
18 Reset
 
31.01.12
14:41
ой некропостинг