|
Печать из 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) при чем тут таблицы, к таблицам по индексам обращаешься и рисуешь как в экселе
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |