Имя: Пароль:
1C
1С v8
Правка файла Word
0 AntonyFO
 
22.10.13
12:07
Добрый день! Пытаюсь реализовать следующее: открыть файл Word (.docx) сделать в нём изменения и открыть изменённый...в общем код такой:
ВОРД = Новый COMОбъект("Word.Application");
ВОРД.visible=ЛОЖЬ;
ВОРДДок=ВОРД.Documents.Open("\\Xi1\трудовые договора\ШАБЛОН\Трудовой договор.docx");
        
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".txt");
    ВОРДДок.SaveAs(ИмяВременногоФайла,7);
    ВОРДДок.Close();
    ТекДок=Новый ТекстовыйДокумент;
    ТекДок.Прочитать(ИмяВременногоФайла);
    Для Стр=1 По ТекДок.КоличествоСтрок() Цикл
            //здесь правка текста
        КонецЦикла;
ТекДок.Записать(ИмяВременногоФайла);
    ВОРДДокНовый = ВОРД.Documents.Open(ИмяВременногоФайла,ЛОЖЬ);
    ВОРД.visible=Истина;

Открывается файл, но внешне уже не тот что изначально, полагаю связано с преобразованием формата. Подскажите что сделал не так, что мне надо исправить? Спасибо
1 AntonyFO
 
22.10.13
12:55
Посмотрел на форуме, лучше через макет типа Active document делать...попробую
2 AntonyFO
 
22.10.13
12:56
(1) таким образом походу не получится, не нашёл подобного
3 ptiz
 
22.10.13
12:57
А зачем в txt преобразуешь?
4 AntonyFO
 
22.10.13
13:00
мм, а как тогда текст правленный сохранить?
5 ptiz
 
22.10.13
13:01
Просто через Word.Application что не работается?
6 AntonyFO
 
22.10.13
13:08
(5) понятно, то есть можно обойти строки подобно Эксэлю? Если можно покажите пример как обойти строки?
7 ptiz
 
22.10.13
13:28
(6) Наверняка можно какую-нибудь коллекцию типа "Paragraphs" посмотреть. Встань отладчиком в 1С на объект ворда и посмотри, что там есть.
8 AntonyFO
 
22.10.13
17:49
Сделал через Active Document:
        Макет=ЭтотОбъект.ПолучитьМакет("Макет");
    Ворд=Макет.Получить();
    Заменить = Ворд.Content.Find;
    Заменить.Execute("AntonFO", , , , , , , , , "Замена");
    Ворд.Application.Caption="Трудовой договор";
    Ворд.Application.Visible = Истина;
    Ворд.Activate();
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн