Каталог решений - Вывод несколько раз макета ActiveDocument в один документ Word

Вывод несколько раз макета ActiveDocument в один документ Word

Вывод несколько раз макета 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();
    КонецПопытки;

has been added to your cart:
Оформление заказа