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

