Имя: Пароль:
1C
1С v8
Как получить макет внешнего отчета
0 mirrr
 
29.09.11
11:49
Если отчет в составе конф-ии, то получение макета:
Макет=Отчеты.Отчет1.ПолучитьМакет("Макет");
А если отчет внешний, то как лучше получить его макет?
1 Ненавижу 1С
 
гуру
29.09.11
11:50
(0) нужно сначала создать объект внешнего отчета и получить из него сам макет
2 Hostess_
of_Love
 
29.09.11
11:56
Функция Печать() Экспорт
Макет = СоздатьМакет();
Возврат Макет;
КонецФункции

Функция СоздатьМакет() Экспорт
Макет=Отчеты.Отчет1.ПолучитьМакет("Макет");
Возврат Макет;
КонецФункции
3 mirrr
 
29.09.11
12:00
(2) отчет внешний
4 Hostess_
of_Love
 
29.09.11
12:03
(3)Макет = ПолучитьМакет("Макет");
5 Hostess_
of_Love
 
29.09.11
12:03
вместо Макет=Отчеты.Отчет1.ПолучитьМакет("Макет");
6 luckyluke
 
29.09.11
12:05
Типовая БП, печать внешней внешней печатной формы:

ИмяФайла = ПолучитьИмяВременногоФайла("epf");
   Попытка
       ДвоичныеДанные.Записать(ИмяФайла);
       Обработка = ВнешниеОбработки.Создать(ИмяФайла);
       Обработка.СсылкаНаОбъект = Ссылка;
       
       // Передать внешней обработке дополнительные параметры
       Если ДополнительныеПараметры <> Неопределено Тогда
           
           // Если у внешней обработки есть реквизит для дополнительных параметров, присвоить ему значение
           Если НЕ Обработка.Метаданные().Реквизиты.Найти("ДополнительныеПараметры") = Неопределено Тогда
               Обработка.ДополнительныеПараметры = ДополнительныеПараметры;
           КонецЕсли;
           
       КонецЕсли;
       
       ТабДокумент = Обработка.Печать();
       УдалитьФайлы(ИмяФайла);
   Исключение
       ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),, "Не удалось сформировать внешнюю печатную форму!");
   КонецПопытки;
7 mirrr
 
29.09.11
12:06
(4) Форма управляемая, ни на клиенте ни на сервере этот вариант не работает
8 luckyluke
 
29.09.11
12:07
(7) тебе же в (1) написали как надо.
9 Hostess_
of_Love
 
29.09.11
12:10
надо сразу писать что форма управляемая
10 Поручик
 
29.09.11
12:57
(7) Если в модуле объекта, то штатным образом
Макет = ПолучитьМакет("Макет");

В модуле формы в серверной процедуре

ОбъектЗн = РеквизитФормыВЗначение("Объект");
Макет = ОбъектЗн.ПолучитьМакет("Макет");
11 mirrr
 
30.09.11
14:35
(10) < В модуле формы в серверной процедуре

ОбъектЗн = РеквизитФормыВЗначение("Объект");
Макет = ОбъектЗн.ПолучитьМакет("Макет"); >

можно ли то же реализовать, только НаСервереБезКонтекста, передав в процедуру объект отчет, или нет смысла?