Случилось, что понадобилось вывести шаблон справки к продукции для каждой строки ТЧ товары документа. Создаем макет печ. формы с типом ActiveDocument и загружаем туда наш шаблон. Далее все стандартно по созданию внешней печ. формы + код ниже
Код 1C v 8.х ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент. ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Справка" ;
АктивныйДокумент = ПолучитьМакет( "Макет" ) ;
КомОбъект = АктивныйДокумент. Получить( ) ;
Попытка
Word = КомОбъект. Application;
Док= Word. Documents( 1 ) ;
Док. GrammarChecked= 0 ;
Док. ShowGrammaticalErrors= 0 ;
Док. Activate( ) ;
Файл = КаталогВременныхФайлов( ) + "файл" + Выборка. Номер + ".doc" ;
Word. S_election. WholeStory( ) ;
Word. S_election. Copy( ) ;
Счетчик = 1 ;
Для каждого Строка Из СсылкаНаОбъект. Товары Цикл
Замена = Док. Content. Find;
НомерДокумента = ОбщегоНазначения. ПолучитьНомерНаПечать( СсылкаНаОбъект) ;
Замена. Execute( "[Номер]" , Ложь , Истина , Ложь , , , Истина , , Ложь , НомерДокумента) ;
Замена = Док. Content. Find;
Замена. Execute( "[Дата]" , Ложь , Истина , Ложь , , , Истина , , Ложь , Формат( Выборка. Дата, "ДЛФ = ДДММГГ" ) ) ;
Замена = Док. Content. Find;
Замена. Execute( "[Наименование]" , Ложь , Истина , Ложь , , , Истина , , Ложь , Строка( Строка. Номенклатура) ) ;
Замена = Док. Content. Find;
Замена. Execute( "[Количество]" , Ложь , Истина , Ложь , , , Истина , , Ложь , Строка( Строка. Количество) ) ;
Замена = Док. Content. Find;
Замена. Execute( "[Декларация]" , Ложь , Истина , Ложь , , , Истина , , Ложь , РегНомерДекларации) ;
Замена = Док. Content. Find;
СведенияОПоставщике = УправлениеКонтактнойИнформацией. СведенияОЮрФизЛице( Выборка. Организация, Выборка. Дата, , ) ;
ФактАдрес = ФормированиеПечатныхФормСервер. ОписаниеОрганизации( СведенияОПоставщике, "ФактическийАдрес" ) ;
Производитель = Выборка. ОрганизацияНаименованиеСокращенное + ", " + Выборка. ФактАдресОрганизации;
Замена. Execute( "[Производитель]" , Ложь , Истина , Ложь , , , Истина , , Ложь , Производитель) ;
Word. S_election. EndKey( 6 ) ;
Если Счетчик < СсылкаНаОбъект. Товары. Количество( ) тогда
Word. S_election. I_nsertBreak( 7 ) ;
Word. S_election. Paste( ) ;
КонецЕсли ;
Счетчик = Счетчик + 1 ;
КонецЦикла ;
Док. SaveAs( Файл) ;
Док. Close( 0 ) ;
ЗапуститьПриложение( """ " + Файл + """ " ) ;
Исключение
Сообщить( ОписаниеОшибки( ) ) ;
Word. Quit( ) ;
КонецПопытки ;