Имя: Пароль:
1C
1С v8
ТЗ на печать
0 13spartak13
 
03.01.17
12:52
Есть такой код:
&НаСервере
    Процедура УниверсальныйОтчетПоТЗ()
        
    ИтогТЗ = ЭтаФорма.Объект.ИтогТЗ.Выгрузить();
        
       Табл=Новый ТабличныйДокумент;
      

    Макет = ПолучитьМакетНаСервере();
      

    ОбластьШапкаОсновной=Макет.ПолучитьОбласть("ШапкаОсновной");
      

    ОбластьСтрокаОсновной=Макет.ПолучитьОбласть("СтрокаОсновной");
      

    ОбластьИтогОсновной=Макет.ПолучитьОбласть("ИтогОсновной");
      

    ОбластьШапкаДОП=Макет.ПолучитьОбласть("ШапкаПоказатели");
      

    ОбластьСтрокаДОП=Макет.ПолучитьОбласть("СтрокаПоказатели");
      

    ОбластьИтогДОП=Макет.ПолучитьОбласть("ИтогПоказатели");
      

    Табл.Вывести(ОбластьШапкаОсновной);
      

    
      

    Для Каждого Колонка из ИтогТЗ.Колонки ЦИКЛ
      

     ОбластьШапкаДОП.Параметры.ИмяПоказателя=Колонка.Имя;
      

     Табл.Присоединить(ОбластьШапкаДОП);
      

    КонецЦикла;
      

    
      

    счетчик=0;
      

    Для каждого стр из ИтогТЗ Цикл
      

     счетчик=счетчик+1;
      

     ОбластьСтрокаОсновной.Параметры.счетчик=счетчик;
      

     Табл.Вывести(ОбластьСтрокаОсновной);
      

     Для Каждого Колонка из ИтогТЗ.Колонки ЦИКЛ
      

     ОбластьСтрокаДОП.Параметры.ЗначениеКолонки=стр[Колонка.Имя];
      

     Табл.Присоединить(ОбластьСтрокаДОП);
      

     КонецЦикла;
      

    КонецЦикла;
      

    Табл.Вывести(ОбластьИтогОсновной);
      

    
      

    Для Каждого Колонка из ИтогТЗ.Колонки ЦИКЛ
      

     ОбластьИтогДОП.Параметры.Итог=ИтогТЗ.Итог(Колонка.Имя);
      

     Табл.Присоединить(ОбластьИтогДОП);
      

    КонецЦикла;
      

    
    Табл.Показать();  

          

    КонецПроцедуры

На КЛИЕНТЕ НИЧЕГО НЕ ПРОИСХОДИТ при вызове процедуры на клиенте
как вывести отчет на клиенте???
1 Остап Сулейманович
 
03.01.17
12:55
(0) Классика жанра.
1. Объявить ТабличныйДокумент на клиенте.
2. Заполнить его в процедуре на сервере.
3. Показать на клиенте.
2 Остап Сулейманович
 
03.01.17
12:56
+ (1) Посмотреть как в УФ формируется любая печатная форма документа.
3 Остап Сулейманович
 
03.01.17
12:59
+
Примерно так :

&НаСервере
Процедура УниверсальныйОтчетПоТЗНаСервере(Табл)
  ...
КонецПроцедуры

&НаКлиенте
Процедура УниверсальныйОтчетПоТЗ()
  Табл = Новый ТабличныйДокумент;
  УниверсальныйОтчетПоТЗНаСервере(Табл);
  Табл.Показать();
КонецПроцедуры
4 vicof
 
03.01.17
13:11
Казалось бы, причём тут тз?
5 13spartak13
 
03.01.17
13:24
(3) Спасибо помогло! (4) Вопрос касательно вывода! Почему выводит все в одну колонку? Как сделать чтобы отчет был красивый шапка, и дальше строки?

А то у меня получается так
номер строки
фио
отдел
1
абв
фыв
2
абс
фыв
6 nordbox
 
03.01.17
13:45
(5) А тебе как надо?
7 13spartak13
 
03.01.17
13:48
(6) Примерно так
НОмер строки  ФИО  Отдел
    1         абв  фыв
    2         абс  фыв
8 nordbox
 
03.01.17
13:52
Ну тогда подумай про Вывести и Присоединить
9 nordbox
 
03.01.17
13:53
Я не знаю зачем  для такой таблицы городить огород
У тебя какая структура ТЗ???
10 nordbox
 
03.01.17
13:57
......
ОбластьСтрока=Макет.ПолучитьОбласть("СтрокаДанных");
ОбластьСтрока.Параметры.ФИО=ТЗ.ФИО;
ОбластьСтрока.Параметры.Отдел=ТЗ.Отдел;
......
Табл.Вывести(ОбластьСтрока);
Табл.Показать();

Не проще??
11 13spartak13
 
03.01.17
13:57
(9) Буду благодарен если подскажите проще метод вывести ТЗ на печать...
12 13spartak13
 
03.01.17
13:59
(10) Подскажите как воспользоваться построителем отчета на клиенте

//ТПОтчета - Табличное поле с формы (Таблица значений) с данными
      

    ПострПечать = Новый ПостроительОтчета;
      

     ПострПечать.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТПОтчета);
      

     ПострПечать.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Интерфейс);
      

     ПострПечать.Выполнить();
      

     Для каждого Колонка Из ПострПечать.ВыбранныеПоля Цикл
      

     Колонка.Представление = ТПОтчета.Колонки[Колонка.Имя].Заголовок;
      

     КонецЦикла;
      

     ПострПечать.Вывести();
13 13spartak13
 
03.01.17
14:00
(10) Слишком много параметров ну может и не много но 20 раз писать строку думал есть метод проще
14 nordbox
 
03.01.17
14:03
Есть )))
Взять конструктор запроса с выводом результата
или на СКД
Тут телепатов нет, ты до конца говори что хочешь
15 13spartak13
 
03.01.17
14:07
(14) не могу взять конструктор потому что надо работать с тз выгружаемой из табличной части формы...
16 13spartak13
 
03.01.17
14:07
Вообще я хочу в нормальном виде вывести тз на печать в виде отчета...
17 nordbox
 
03.01.17
14:10
Ну и в чем проблема?
Вариантов куча, ТЗ откуда берется???
может и ТЗ делать не надо....
данные откуда???
18 13spartak13
 
03.01.17
14:17
(17) ТЗ берется из табличной части формы, соответственно таблица формируется из 3 или 4 запросов, мне просто надо взять отборочную информацию из табличной части и выводить в отчет, программа сторонняя поэтому только внешняя обработка и работа с ТЗ
19 nordbox
 
03.01.17
14:25
Это хоть читал?
http://v8.1c.ru/overview/Term_000000557.htm
20 13spartak13
 
03.01.17
14:27
(19) Читал и не один раз, но объясняю еще раз я не могу работать с запросами, могу работать только с табличной частью документа.... как я запросом обращусь к ней?
21 nordbox
 
03.01.17
14:35
Ты про вертикальные секции слышал??
Ты что и к чему собираешься присоединять????
Колонки (вертикальные) Секции ты где объявляешь??
22 nordbox
 
03.01.17
14:41
ОбластьСтрокаКолонка=Макет.ПолучитьОбласть("СтрокаПоказатели|Колонка");
23 13spartak13
 
03.01.17
15:16
(22) Т.е. Область надо задавать колонкам а не строкам? Что значит вертикальный разделитель?
24 nordbox
 
03.01.17
15:20
на почту тебе закинул
Это для обычной формы, но для упр тоже самое
25 nordbox
 
03.01.17
15:22
+24 Ой, извини, не то отправил )))
26 nordbox
 
03.01.17
15:33
(23) Почту смотри
27 13spartak13
 
03.01.17
16:04
(26) Огромное спасибо за помощь! Все четко и ясно!
28 nordbox
 
03.01.17
16:10
(27) Удачи
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший