8.х Замена значений в шаблоне word

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dendik, 20 июл 2015.

  1. TopicStarter Overlay
    Dendik
    Offline

    Dendik Опытный в 1С

    Регистрация:
    12 фев 2010
    Сообщения:
    54
    Симпатии:
    0
    Баллы:
    26
    Добрый день! Для замены значений в шаблоне использую метод
    Замена.Execute("«"+поле.ИмяШаблон+"»", Ложь, Истина, Ложь, , , Истина, 1 ,Ложь, Таблица[0][поле.ИмяПостроитель],2);
    Проблема в том, что если в тексте есть повторяющиеся заменяемые поля, то меняется только первое из них, почему?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Потому что у Замена.Execute() есть отдельный параметр, отвечающий за этот функционал и ему(параметру) нужно присвоить определенное значение.
  3. TopicStarter Overlay
    Dendik
    Offline

    Dendik Опытный в 1С

    Регистрация:
    12 фев 2010
    Сообщения:
    54
    Симпатии:
    0
    Баллы:
    26
    если речь про wdReplaceAll, так вроде присвоил 2
  4. Николаич87
    Offline

    Николаич87 Опытный в 1С

    Регистрация:
    1 апр 2015
    Сообщения:
    122
    Симпатии:
    4
    Баллы:
    29
    пока найти(шаблон) цикл
    замена
    конеццикла
  5. Morris
    Offline

    Morris Новичок в 1С

    Регистрация:
    13 авг 2014
    Сообщения:
    22
    Симпатии:
    1
    Баллы:
    4
    Код:
        Замена = Документ.Content.Find;
        Пока Замена.Execute("<НомерДоговора>", Ложь, Истина,Ложь, , , Истина, ,Ложь, пНомерДоговора) Цикл
            Замена = Документ.Content.Find;
        КонецЦикла;
    
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Все работает и без цикла, просто нужно точно знать место поиска потому как текст может быть не только в теле документа, но и в фигурах, колонтитулах и т.д....., а это разные объекты и для каждого из них есть метод Find
  7. kn_
    Offline

    kn_

    Регистрация:
    21 авг 2015
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Процедура ЗаменаWord(Документ,ЧтоЗаменить,ЧемЗаменить)
    Документ.range(0,0);
    Замена = Документ.content.Find;
    wdReplaceAll = "00000002";
    Замена.Execute(ЧтоЗаменить, Ложь, Истина, Ложь, , , Истина, , Ложь, ЧемЗаменить, wdReplaceAll);
    Конецпроцедуры

Поделиться этой страницей