![]() |
|
Как заполнить колонтитул в документе Word из 1С? | ☑ | ||
---|---|---|---|---|
0
Arhitektor
18.02.04
✎
13:57
|
Как заполнить колонтитул в документе Word из 1С?
|
|||
1
Arhitektor
18.02.04
✎
14:06
|
Работаю следующим образом:
Перем Путь; //создаем ссылку на объект Word и делаем его невидимым Word = СоздатьОбъект("Word.Application"); Word.Visible = 0; //связываем ссылку с конкретным файлом Если СокрЛП(ВидДоговора) = "Основной договор" Тогда Путь = КаталогИБ()+"ExtForms\Шаблоны\Договор.doc"; ИначеЕсли СокрЛП(ВидДоговора) = "ТО" Тогда Путь = КаталогИБ()+"ExtForms\Шаблоны\ДоговорТО.doc"; ИначеЕсли СокрЛП(ВидДоговора) = "ПО" Тогда Путь = КаталогИБ()+"ExtForms\Шаблоны\ДоговорПО.doc"; КонецЕсли; Word.Documents.Open(Путь,,-1); //Создаем объект Fnd типа Find для поиска в документе Fnd = Word.ActiveDocument.Range().Find; Fnd.ClearFormatting(); Fnd.Forward = -1; //заполняем колонтитул Fnd.Execute("<Фирма_Кр>",,,,,,,,,СокрЛПФирма.ЮрЛицо.Наименование), 2); //не работает //заполняем шапку документа Fnd.Execute("<НомерДок>",,,,,,,,,НомерДок, 2); Fnd.Execute("<ДатаДок>",,,,,,,,,НРЕГ(Формат(ДатаДок,"Д (0)ДДММММГГГГ")), 2); Fnd.Execute("<Место>",,,,,,,,,Место, 2); Fnd.Execute("<Фирма>",,,,,,,,,СокрЛП(Фирма.ЮрЛицо.ПолнНаименование), 2); //выводим документ для просмотра и активизируем его Word.Visible = 1; Word.Activate(); Но как заполнить колонтитул? |
|||
2
shura
18.02.04
✎
14:12
|
Вручную поиск и замена в колонтитуле работает. Смотри на Fnd.Execute может после какой запятой надо указать область поиска?
|
|||
3
romix
18.02.04
✎
14:17
|
В учебниках по VBA рекомендуют новичкам юзать макрорекордер (Макросы - Записать). Word (Excel) генерит макрос, повторяющий действия пользователя, например, редактирование колонтитула.
|
|||
4
Arhitektor
18.02.04
✎
14:38
|
F1 F1 F1 F1 F1 F1 F1 F1 F1.......
|
|||
5
Шершень
18.02.04
✎
14:41
|
Можно так:
Word.ActiveDocument.Sections(1).Headers(1).Range.Text = "Мой любимый документ"; |
|||
6
Arhitektor
18.02.04
✎
14:42
|
А если там надо что-то поменять как в тексте?
|
|||
7
Arhitektor
18.02.04
✎
14:50
|
Тогда поступаем так:
FndCol = Word.ActiveDocument.Sections(1).Headers(1).Range().Find; FndCol.Execute("<Что_меняем>",,,,,,,,,"На_что_меняем", 2); Спасибо, Шершень в (1) тоже твой текст... |
|||
8
Шершень
18.02.04
✎
15:16
|
(7) ЗдОрово!
Кста, более правильно делать так: FndCol.Execute("<Что_меняем>",,,,,,-1,,,"На_что_меняем", 2); а строчку Fnd.Forward = -1; писать не надо. Параметры метода перебивают то, что установлено через свойства объекта. 7-й параметр - направление поиска, вперед. |
|||
9
Arhitektor
19.02.04
✎
06:30
|
Спасибо, Шершень!
Поменял, вроде как даже немного быстрее работает. А вот так можно сохранить документ: Word.ActiveDocument.SaveAs("e:\hello.doc"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |