Имя: Пароль:
1C
 
Замена параметра в колонтитуле WORD
0 SRM1C
 
18.07.17
12:29
Привет.
Подскажите, пожалуйста, есть процедура, параметры меняет нормально, но параметры колонтитула не трогает, при поиске строки, результат "ложь", Есть предположение, что ошибка в этой строке.

Ворд.Selection.Find.Text = ШаблонВВорде;

Сама процедура замены.

Функция ЗаменитьШаблонВВордеНаТекст(Ворд, ШаблонВВорде, ТекстЗамены, Все = Истина)
    // В цикле будем искать все шаблоны указанного вида
    Ворд.Selection.Find.MatchWholeWord = 1;
    Ворд.Selection.Find.MatchCase = 0;
    Ворд.Selection.Find.Wrap = 1;
    Ворд.Selection.Find.Text = ШаблонВВорде;
    Рез = Ворд.Selection.Find.Execute();
    Если Все Тогда
        Пока Рез Цикл
            Если НЕ ПустаяСтрока(ТекстЗамены) Тогда
                Ворд.Selection.TypeText(ТекстЗамены);  
            Иначе
                Ворд.Selection.Delete(1,1);
            КонецЕсли;
            Рез = Ворд.Selection.Find.Execute();
        КонецЦикла; 
    ИначеЕсли Рез Тогда
        Если НЕ ПустаяСтрока(ТекстЗамены) Тогда
            Ворд.Selection.TypeText(ТекстЗамены);  
        Иначе
            Ворд.Selection.Delete(1,1);
        КонецЕсли;
    Иначе
        Возврат Рез;
    КонецЕсли;
    Возврат Рез;
КонецФункции
1 Мимохожий Однако
 
18.07.17
12:38
Попробуй Ворд.ActivePane.View.SeekView = wdSeekCurrentPageHeader;
2 SRM1C
 
18.07.17
13:05
Ворд.Selection.Sections(1).Footers(1).Range.Find.Execute("{ДоговорНаименованиеДата}", Ложь, Истина, Ложь, , , Истина, , Ложь, ТекстЗамены, 2);

Таким исправил, но верхний колонтитул увеличился :(
3 Масянька
 
18.07.17
13:07
(2) Код - семерочный:
    // формируем файл
    мWord = СоздатьОбъект("Word.Application");

    мWord.Visible = 0;
    мNewDoc = мWord.Documents;
    мШаблон = СокрЛП(Строка(КаталогШаблонов + мШаблон));
    мДок = мNewDoc.Add(мШаблон, 0, 0, 1);  
    
    // верхний колонтитул
    мКолонтитул = мДок.Sections.Item(1).Headers.Item(1).Range;
    мКолонтитул.Find.Execute("[ПечНомерДоговора]",0,0,,,,,,,мНомерДоговора,2);
    мКолонтитул.Find.Execute("[ПечДатаДоговора]",0,0,,,,,,,Нрег(СокрЛП(мДатаДоговора)),2);
Закон Брукера: Даже маленькая практика стоит большой теории.