Имя: Пароль:
1C
1С v8
УТ11. Вызов внешней печатной формы из внешней обработки
,
0 pessok
 
31.08.11
12:56
Снова вопрос по УТ11. Познаю 8.2 методом тыка...
Итак, есть печатная форма, зарегистрированная для РеализацияТоваровУслуг. Хочу вывести ее на печать из внешней обработки.
УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(
           "Справочник.ДополнительныеОтчетыИОбработки.РеестрДляОтгрузкиПострочный",
           "Макет", //макет так и называется в печатной форме
           СсылкаНаОбъект, //ссылка на документ реализации
       Неопределено,
           Неопределено);
Говорит, что метод Печать() не обнаружен, хотя в печатной форме есть экспортная процедура Печать(). Куда ковырять?
Или же так вызывать нельзя и нужно ползти именно в метод Печать() самой обработки?
1 pessok
 
31.08.11
12:56
+(0) s/самой обработки/самой печатной формы
2 pessok
 
31.08.11
13:10
напрямую тоже не хочет...
Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("РеестрДляОтгрузкиПострочный").Печать(
   ,);    
ошибка та же
3 mikecool
 
31.08.11
13:11
(2) смотри как в типовой печатается
4 mikecool
 
31.08.11
13:12
+3 саму обработку надо достать из хранилища, создать, а потом уж юзать
5 pessok
 
31.08.11
13:15
(4) тыкни рожей в метод, пожалуйста :)
6 pessok
 
31.08.11
14:00
ап...
7 pessok
 
31.08.11
15:50
если кому интересно, разобрался
ВнешняяПФорма = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Реестр для отгрузки построчный");
   ОбработкаОбъект = ВнешняяПФорма.ПолучитьОбъект();
   ДанныеОбработки = ОбработкаОбъект.ХранилищеОбработки.Получить();
   АдресХранилищаОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки);
   ИмяОбработки = Строка(ВнешняяПФорма.Ссылка.УникальныйИдентификатор());
   Подключение = ВнешниеОбработки.Подключить(АдресХранилищаОбработки, ИмяОбработки , Истина);
   Отчет = ВнешниеОбработки.Создать(Подключение);
   Отчет.Печать(ПараметрыПроцедуры);
8 pessok
 
31.08.11
16:25
а нет, не все. ошибок нету, но макет не выводится...
9 pessok
 
31.08.11
17:24
народ, хелп :)
вот процедура вывода, не работает, просто ничего не происходит
Процедура НапечататьРеестр(СсылкаНаОбъект)
   ВнешняяПФорма = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Реестр для отгрузки построчный");
   ОбработкаОбъект = ВнешняяПФорма.ПолучитьОбъект();
   ДанныеОбработки = ОбработкаОбъект.ХранилищеОбработки.Получить();
   АдресХранилищаОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки);
   ИмяОбработки = Строка(ВнешняяПФорма.Ссылка.УникальныйИдентификатор());
   Подключение = ВнешниеОбработки.Подключить(АдресХранилищаОбработки, ИмяОбработки , Истина);
   Отчет = ВнешниеОбработки.Создать(Подключение);
   
   Макет = Новый ТаблицаЗначений;
   Макет.Колонки.Добавить("ИмяВРЕГ");
   Стр = Макет.Добавить();
   Стр.ИмяВРЕГ = "Макет";
   
   Отчет.Печать(СсылкаНаОбъект, Макет, Неопределено, Неопределено);
КонецПроцедуры

процедура печать в самой обработке

Процедура Печать(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
   
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, УникальныйИдентификаторКоманды()) Тогда

       ТабличныйДокумент = СформироватьПечатнуюФорму(МассивОбъектовНазначения, ОбъектыПечати);

       УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
           КоллекцияПечатныхФорм,
           УникальныйИдентификаторКоманды(),
           ЭтотОбъект.Метаданные().Синоним,
           ТабличныйДокумент
       );

   КонецЕсли;

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