|   |   | 
| 
 | Печать из 1С в Word с помощью замены | ☑ | ||
|---|---|---|---|---|
| 0
    
        Death_eye 20.08.17✎ 06:39 | 
        Внешняя обработка. С помощью замены заполняется документ Word. Код типовой (запросы по выборке не пишу):
 Справка = ПолучитьМакет("ПФ_DOC_СправкаСМестаРаботы"); MSWord = Справка.Получить(); Попытка Документ = MSWord.Application.Documents(1); Документ.Activate(); Замена = Документ.Content.Find; Замена.Execute("#ФИОПолные#", Ложь, Истина, Ложь, , , Истина, , Ложь, "Иванова ИИ"); Замена.Execute("#ЖенскийПол#", Ложь, Истина, Ложь, , , Истина, , Ложь, "а"); Замена.Execute("#ДатаДок#", Ложь, Истина, Ложь, , , Истина, , Ложь, 4); MSWord.Application.Visible = Истина; MSWord.Activate(); Исключение Сообщить(ОписаниеОшибки()); MSWord.Application.Quit(); КонецПопытки; Но в документе заменяется только ФИО и все. Т.е. только первая замена делается и больше ничего. Подскажите, плз, где ошибка. | |||
| 1
    
        DJ Anthon 20.08.17✎ 07:23 | 
        ThisDocument.Content.Find.Execute(Строка, Истина, Истина, Ложь, Ложь, Ложь, Истина, wdFindContinue, Ложь, ПодСтрока, wdReplaceAll); 
 ThisDocument.Sections(1).Headers(1).Range.Find.Execute(Строка, Истина, Истина, Ложь, Ложь, Ложь, Истина, wdFindContinue, Ложь, ПодСтрока, wdReplaceAll); ThisDocument.Sections(1).Footers(1).Range.Find.Execute(Строка, Истина, Истина, Ложь, Ложь, Ложь, Истина, wdFindContinue, Ложь, ПодСтрока, wdReplaceAll); КолВоНадписей = ThisDocument.Shapes.Count; Для СчетчикЦикла = 1 По КолВоНадписей Цикл Если Число(ThisDocument.Shapes.Item(СчетчикЦикла).Type) = 17 Тогда ThisDocument.Shapes.Item(СчетчикЦикла).TextFrame.TextRange.Find.Execute(Строка, Истина, Истина, Ложь, Ложь, Ложь, Истина, wdFindContinue, Ложь, ПодСтрока, wdReplaceAll); КонецЕсли; КонецЦикла; Строка меняется на Подстрока | |||
| 2
    
        DES 20.08.17✎ 08:24 | 
        а попробуй Замена = Документ.Content.Find;
 перед каждым Замена.Execute() | |||
| 3
    
        Death_eye 20.08.17✎ 08:59 | 
        (2) Да, так работает.     | |||
| 4
    
        Death_eye 20.08.17✎ 08:59 | 
        Теперь другая проблема - подключаю как ВПФ к ЗУП 3.1
 Выдает ошибку - "не сформирована печатная форма" | |||
| 5
    
        DES 20.08.17✎ 09:12 | 
        (4) ну тут сорри, я больше по самопискам.     | |||
| 6
    
        v1perok 22.08.17✎ 09:54 | 
        Death_eye, вот Ошибка "Недостаточно памяти" в РКО (решение) (4)     | |||
| 7
    
        Базис naïve 22.08.17✎ 10:07 | 
        Почитай про параметры .Execute, один из них определяет - заменить первый найденный или все.     | |||
| 8
    
        sepu 22.08.17✎ 10:15 | 
        наркоманство какоекто, в докумене ворда расставляешь закладки(bookmark) на все слова которые надо заменить а потом просто пишешь для каждого букмарка из worddoc.bookmarks цикл букмарка.Range().Text = "" + соответствиезначенийименамбукмарок[букмарка.name]; конеццикла     | |||
| 9
    
        emuradov 22.08.17✎ 10:33 | 
        У тебя параметр замены не проставлен, попробуй так:
 Замена.Execute("["+СокрЛП(Колонка.Имя)+"]",,,,,,,,, Формат(стр[Колонка.Имя],"ДЛФ=Д"), 2) | |||
| 10
    
        Вафель 22.08.17✎ 10:35 | 
        (8) С таблицами так не прокатит     | |||
| 11
    
        sepu 22.08.17✎ 10:37 | 
        (10) при чем тут таблицы, к таблицам по индексам обращаешься и рисуешь как в экселе     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |