Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Формирование печатной формы MS Word из макета. Как выводить оди макет на несколько страниц

Формирование печатной формы MS Word из макета. Как выводить оди макет на несколько страниц
Я
   slnes
 
02.05.18 - 10:12
Делаю печатную форму которая формируется в MS Word, примерно вот так

Для н = 1 по 10 Цикл
        
        Макет = ПолучитьМакет("Макет"); 
        Word = Макет.Получить();
        
        Doc = Word.Application.Documents(1);
        Doc.Activate();   
        Doc.Content.Find.Execute("{Параметр}",Ложь,Истина,Ложь,,,Истина,,Ложь,"Параметр1");
    
        Word.Application.Visible = Истина;
        Word.Activate();
            
    КонецЦикла    

В результате открывается 10 документов.
Подскажите пожалуйста как вывести это в один документ ворд на 10 листов?
 
 
   Chameleon1980
 
1 - 02.05.18 - 10:28
за цикл не пробовал выносить:

Doc = Word.Application.Documents(1);
Doc.Activate();  

?
   Chameleon1980
 
2 - 02.05.18 - 10:28
Макет = ПолучитьМакет("Макет"); 
        Word = Макет.Получить();
        
        Doc = Word.Application.Documents(1);
        Doc.Activate();
   Chameleon1980
 
3 - 02.05.18 - 10:28
Word.Application.Visible = Истина;
        Word.Activate();
   Chameleon1980
 
4 - 02.05.18 - 10:29
а я не понял
ты чего вообще делаешь то?
   Chameleon1980
 
5 - 02.05.18 - 10:34
макросы - начать запись - вставить разделитель - закончить запись - смотреть код макроса
   Chameleon1980
 
6 - 02.05.18 - 10:43
Selection.InsertBreak Type:=wdPageBreak

wdPageBreak = 7 какой-то
   slnes
 
7 - 02.05.18 - 10:46
(1)-(3) Параметр1 изменяется - забыл сказать, и вынос за цикл выведет документ один раз с первым значением параметра.
(4) Мне нужно как то после этого разделителя макет скопировать на новый лист, и потом вставить туда новый параметр
(6) что такое Selection? и что с этим делать непонятно
   Chameleon1980
 
8 - 02.05.18 - 10:49
ну тогда тебе с нуля надоть искать примеры работы с Word
это о вопросе с "Selection", наример
   slnes
 
9 - 02.05.18 - 10:50
(8) я кучу примеров нашел, но то метод не найден то ещё чего, мнеб рабочий примерчик для word 2010
   Chameleon1980
 
10 - 02.05.18 - 10:51
 
 Рекламное место пустует
   Chameleon1980
 
11 - 02.05.18 - 10:51
//Получаем выделенную область

  Selection = Object.Application.Selection;
   Chameleon1980
 
12 - 02.05.18 - 10:54
а просто
Doc.InsertBreak(7);

не пробовал?

ну и чепятай на каждом

или тебе параметры печати поменять может просто?
   slnes
 
13 - 02.05.18 - 10:57
(10) читал у меня шаблон с параметрами уже готовый в макетах  Макет = ПолучитьМакет("Макет"); Word = Макет.Получить(); не подходит оно мне.
(12) от того что я вставлю разрыв страницы шаблон туда не перенесется и получится только первое значение параметра с 10 переносами строк
   slnes
 
14 - 02.05.18 - 10:59
Надо как то так:
1. Скопировать шаблон
2. Вставить шаблон в документ
3. Заменить параметры
4. Вставить разрыв страницы
и опять с 2 -го
   Chameleon1980
 
15 - 02.05.18 - 11:03
(14) ну значит некоторое выноси за цикл
раз у тебя 10 доков создалось
я не работая с водр программно и то смею это логически предположить. блин
обленился народ
   Chameleon1980
 
16 - 02.05.18 - 11:04
ну и типовые посмотреть решения не?
   Chameleon1980
 
17 - 02.05.18 - 11:10
может что-то типа запомнить все (область) перед заполнением
потом заполнить
потом вставить разделитель
вставить запомненное
заполнить вставленное
и т.д. ?
   Chameleon1980
 
18 - 02.05.18 - 11:11
Sub CopyPaste()
'
' CopyPaste Ìàêðîñ
'
'
    Selection.Copy
    Selection.InsertBreak Type:=wdPageBreak
    Selection.PasteAndFormat (wdFormatOriginalFormatting)
End Sub
   Chameleon1980
 
19 - 02.05.18 - 11:12
wdFormatOriginalFormatting=16
   slnes
 
20 - 02.05.18 - 11:32
Ничего не получается
Задам вопрос снова с исправлением
Делаю печатную форму которая формируется в MS Word, примерно вот так

Для н = 1 по 10 Цикл
        
        Макет = ПолучитьМакет("Макет"); 
        Word = Макет.Получить();
        
        Doc = Word.Application.Documents(1);
        Doc.Activate();   
        Doc.Content.Find.Execute("{Параметр}",Ложь,Истина,Ложь,,,Истина,,Ложь,"Параметр"+строка(н));
    
        Word.Application.Visible = Истина;
        Word.Activate();
            
    КонецЦикла    

В результате открывается 10 документов.
Подскажите пожалуйста как вывести это в один документ ворд на 10 листов?
   Chameleon1980
 
21 - 02.05.18 - 11:40
ну блин.

видимо, это только в конце


        MSWord.Application.Visible = Истина; 

        MSWord.Activate();
   slnes
 
22 - 02.05.18 - 12:54
(21) ну нет тогда получим один {параметр1} на странице и только один раз.

Уже при втором проходе в документе не будет найден {Параметр}, т.к. он будет заменен на Параметр1 при первом проходе цикла
   slnes
 
23 - 02.05.18 - 12:56
в (21) ошибся, вместо {параметр1} надо написать Параметр1
   K1RSAN
 
24 - 02.05.18 - 14:07
(23) А нельзя сначала использовать ТабличныйДокумент, туда и разделители страниц и текст напихать, а потом то, что получилось вставить в Word документ?

Получается ты формируешь 10 раз в Word кусочек текста, а что мешает скомпановать 10 кусочков в один (с разделителями), и готовый кусман отправить в Word 1 раз?
   slnes
 
25 - 02.05.18 - 14:15
(24) У меня там шаблон из 5 листов и 10 параметров, в реальном варианте перебирается результат запроса, это я сократил что бы много не читать. И шаблон у меня ворд уже есть. Мне бы содержимое шаблона скопировать и после разравы страницы вставлять и заполнять.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует