Имя: Пароль:
1C
1С v8
Как вывести отчет в скд с формы документа
,
0 reznik911
 
22.01.14
15:01
есть документ Событие. для него создал макет Схема компоновки данных  - ЛистУчетаСервисногВыезда. набор данных запрос. На форму документа поместил кнопку печать  - Процедура ОсновныеДействияФормыПечать(Кнопка).  Посмотрел в учебнике Хрусталевой (разработка сложных отчетов в 1 предприятие 8)
создаются наборы данных объекты и затем на форму документа пишется запрос с помощью чего выводят результат в ТД. У меня иной случай набор данных запрос. чтоб свзяать с доументом я ж не могу писать запрос еще раз правильно? вот как связать эту процедуру с отчетом и чтоб выводил не в ТабДок а чтоб сам отчет показал. Форму отчета не создавал думал рас уж в табдок не выводить то зачем он.
1 vhl
 
22.01.14
15:21
СхемаКомпоновкиДанных = ПолучитьМакет("ЛистУчетаСервисногВыезда");
    
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
    ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек,"Ссылка",Ссылка);
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки);
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
2 reznik911
 
22.01.14
15:28
(1) вывести нужно не в табличный документ а вывести сам отчет или форму отчета накрайняк можно?
3 reznik911
 
22.01.14
15:33
(1) {Документ.Событие.Форма.ФормаДокумента.Форма(1433)}: Поле объекта не обнаружено (Результат)
    ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
4 vhl
 
22.01.14
15:33
ТД = Новый ТабличныйДокумент();
ПроцессорВывода.УстановитьДокумент(ТД);
ТД.Показать();
5 vhl
 
22.01.14
15:34
ТД = Новый ТабличныйДокумент();
ПроцессорВывода.УстановитьДокумент(ТД);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ТД.Показать();
6 reznik911
 
22.01.14
15:41
(5) формирует пустую таблицу((((
7 vhl
 
22.01.14
15:48
(6) Такой запрос
8 reznik911
 
22.01.14
15:51
(7) запрос то вот правильный. он в консоли и в отдельном отчете показывает верные данные
9 reznik911
 
22.01.14
15:52
(7) нужно результат не в таб док  закидывать а вывести сам отчет. я так думаю там ошибка поэтому выводит пустую таблицу
10 vhl
 
22.01.14
15:52
(8)    ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек,"Ссылка",Ссылка);
кури эту строку - правильно ли она отрабатывает или у тебя по другому параметры называются
11 тшл
 
22.01.14
15:53
(9) а что значит сам отчет?
12 vhl
 
22.01.14
15:53
(9) какой еще отчет? Ты в документе находишься
13 reznik911
 
22.01.14
15:54
(12) ну да. ну всмысле подобие форму отчета получить
14 vhl
 
22.01.14
15:55
(13) Табличный документ это и есть отчет
15 reznik911
 
22.01.14
15:56
(12) тогда придется отчет отдельно создать и его форму тоже. а потом в запросе вывести форму этого отчета?
16 тшл
 
22.01.14
15:56
наверно есть какая-то общаяформа "отчет" да ?
17 reznik911
 
22.01.14
15:56
я создал еще этот же отчет отдельно от документа в отчетах. то как его можно вывести?
18 reznik911
 
22.01.14
15:57
(16) нету)
19 тшл
 
22.01.14
15:57
(15) зачем тебе форма отчета?
20 vhl
 
22.01.14
15:57
(15) ТД = Новый ТабличныйДокумент(); - это ты создаешь его
ТД.Показать(); - это ты его выводишь
21 reznik911
 
22.01.14
15:58
(19) да чтоб он как то по человечески все вывел, да еще я и макет подкорекривать буду там уже сложнее будет
22 reznik911
 
22.01.14
15:58
(20) ну почему тогда он пустой(
23 vhl
 
22.01.14
15:58
(22) Потому что ты тему через строчку читаешь
24 vhl
 
22.01.14
15:59
(21) Макет ты в схеме компоновки своей "ЛистУчетаСервисногВыезда" делаешь, а данные выводятся в ТД
25 тшл
 
22.01.14
16:01
ОтчетПродажи = Отчеты.Продажи.Создать();
ФормаОтчета = ОтчетПродажи.ПолучитьФорму();
ФормаОтчета.Открыть();
если есть реквизиты заполняй перед открытием.