Имя: Пароль:
1C
 
Работа с WORD из 1с
, , ,
0 LeoKeyn
 
07.06.18
10:10
Здравствуйте!
Подскажите пожалуйста. Пытаюсь заполнить WORD по макету, но никак не могу подставить данные в колонтитул. Везде пишут такой метод

Документ.Sections(1).Footers(1).Range.Find.Execute("{" + ЭлементДанных.Ключ + "}",Ложь, Истина, Ложь, Ложь, , Истина, , Ложь,ЭлементДанных.Значение,2);//нижний колонтитул

Но у меня он почему то не срабатывает
1 LeoKeyn
 
07.06.18
10:11
(0) Word = Новый COMОбъект("Word.Application");
        Документ = Word.Documents.add(ИмяВременногоФайла);
2 Масянька
 
07.06.18
10:12
(0)    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    мКолонтитул.Find.Execute("[ПечНомерДоговора]", 0,0,,,,,,,мНомерДоговора,2);

Сначала выделяешь колонтитул, а потом уже меняешь.
3 LeoKeyn
 
07.06.18
10:15
(2) мКолонтитул = Документ.Sections.Item(1).Footers.Item(1).Range;
               мКолонтитул.Find.Execute("{" + ЭлементДанных.Ключ + "}", 0,0,,,,,,,ЭлементДанных.Значение,2);

Всеравно не работает :-(
4 Масянька
 
07.06.18
10:16
(3) И что пишет?
5 LeoKeyn
 
07.06.18
10:17
(4) Просто замена не происходит
6 LeoKeyn
 
07.06.18
10:17
(4) попробовал еще так

мКолонтитул = Документ.Sections.Item(1).Footers.Item(1).Range;
               мКолонтитул.Find.Execute("{" + ЭлементДанных.Ключ + "}", Ложь, Истина, Ложь, Ложь, , Истина, , Ложь,ЭлементДанных.Значение,2);
7 Масянька
 
07.06.18
10:18
(5) А вообще в шаблоне что-то меняет?
8 LeoKeyn
 
07.06.18
10:18
Обычный метод


Замена = Документ.Content.Find;
            Замена.Execute("{" + ЭлементДанных.Ключ + "}", Ложь, Истина, Ложь, Ложь, , Истина, , Ложь, ЭлементДанных.Значение, 2);


Работает без проблем
9 Масянька
 
07.06.18
10:19
(8) Шаблон Word?
10 LeoKeyn
 
07.06.18
10:20
(9) Двоичный


ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".doc");
    Адрес = ФормированиеДоговораПоШаблону("Макет1");
    Если Адрес = Неопределено Тогда
        Возврат;
    КонецЕсли;
      Макет = ПолучитьИзВременногоХранилища(Адрес);
      Макет.Записать(ИмяВременногоФайла);
        Word = Новый COMОбъект("Word.Application");
        Документ = Word.Documents.add(ИмяВременногоФайла);
11 LeoKeyn
 
07.06.18
10:20
(9) Но в итоге создается ворд из обычного макета
12 Масянька
 
07.06.18
10:21
(10) Какой двоичный?!
У тебя шаблон Word или какие-то пляски с макетами 1с?
13 LeoKeyn
 
07.06.18
10:21
(12) Шаблон Word
14 Масянька
 
07.06.18
10:22
(11) В файле Word, который создается из обычного макета, есть колонтитулы?
15 LeoKeyn
 
07.06.18
10:22
(14) Да
16 Масянька
 
07.06.18
10:23
(13) Чего? А (11) - это что?
17 Масянька
 
07.06.18
10:23
(15) Скрин давай.
18 LeoKeyn
 
07.06.18
10:24
(16) Макет хранится в двоичном виде в обработке, после чего сохраняется на диск клиенту и на его основе уже генерится файл ворд, так что по сути да ворд из макета ворд
19 LeoKeyn
 
07.06.18
10:24
(17) скрин чего?)
20 Масянька
 
07.06.18
10:26
(19) Макета, сформированного файла.
21 LeoKeyn
 
07.06.18
10:31
22 LeoKeyn
 
07.06.18
10:31
(20) Все параметры нормально подставляются кроме колонтитула
23 LeoKeyn
 
07.06.18
10:39
Все примеры уже использовал которые нашел, почему то не помогает...
24 LeoKeyn
 
07.06.18
10:59
Никто не знает в чем проблема?
25 Сияющий в темноте
 
07.06.18
11:16
А если без 1с делать в колонтитуле поля подставляются?
26 LeoKeyn
 
07.06.18
11:25
Рабочий вариант

мКолонтитул = Документ.Sections.Item(1).Footers.Item(2).Range;
            мКолонтитул.Find.Execute("{" + ЭлементДанных.Ключ + "}",Ложь, Истина, Ложь, Ложь, , Истина, , Ложь,ЭлементДанных.Значение,2);

Для нижнего колонтитула
Программист всегда исправляет последнюю ошибку.