|
В вордовском шаблоне не заполняет данные | ☑ | ||
---|---|---|---|---|
0
peace
11.01.16
✎
11:56
|
Пытаюсь сделать замену в вордовском шаблоне дополнительного соглашения. Из табличной части документа беру сотрудников, заменяю данные по ним в ворде.. Вывод всех доп соглашений делаю в один документ. Получается так, что все макеты в документ выводятся, но замены не происходят. Помогите розобраться в чем может быть причина плз..
Код прилагаю: Попытка Договор = ПолучитьМакет("Макет"); ОбъектWord = Договор.Получить(); Word = ОбъектWord.Application; ДокументWord = Word.Documents(1); ДокументWord.Activate(); Word.Selection.WholeStory(); Word.Selection.Copy(); Счетчик = 1; Для каждого ТДстр Из СсылкаНаОбъект.РаботникиОрганизации Цикл СоздатьИЗаполнитьТЗподстановок(ТДстр.Сотрудник); Для Каждого Стр ИЗ ТЗп Цикл ПоискИЗаменаВВорде(ДокументWord,Стр.Шаблон,Стр.СтрокаЗамены); КонецЦикла; Word.Selection.EndKey(6); Если Счетчик < СсылкаНаОбъект.РаботникиОрганизации.Количество() тогда Word.Selection.InsertBreak(7); Word.Selection.Paste(); КонецЕсли; Счетчик = Счетчик + 1; КонецЦикла; ОбъектWord.Application.Visible=Истина; ОбъектWord.Activate(); Исключение Сообщить(ОписаниеОшибки(),СтатусСообщения.ОченьВажное); Word.Quit(); Возврат Неопределено; КонецПопытки; |
|||
1
Godofsin
11.01.16
✎
12:00
|
ПоискИЗаменаВВорде(ДокументWord,Стр.Шаблон,Стр.СтрокаЗамены); Вот эту процедуру покажи для начала и проверь ТЗп
|
|||
2
peace
11.01.16
✎
14:10
|
(1) код функции..
Функция ПоискИЗаменаВВорде(ОбъектВорд,знач ТекстПоиска = "",знач ТекстЗамены = "",ЗаменитьВсе = Истина) Для н = 1 по 3 цикл Замена=ОбъектВорд.Content.find; Замена.Execute(ТекстПоиска,Ложь,Истина,Ложь,,,Истина,,Ложь,ТекстЗамены); КонецЦикла; возврат истина; ДляВозврата = Ложь; ТекстЗамены = Строка(ТекстЗамены); ТекстПоиска = Строка(ТекстПоиска); Если ПустаяСтрока(ТекстПоиска) И ПустаяСтрока(ТекстЗамены) Тогда Возврат ДляВозврата; КонецЕсли; ПродолжитьЦикл = Истина; Пока ПродолжитьЦикл Цикл Если НЕ ЗаменитьВсе Тогда ПродолжитьЦикл = Ложь; КонецЕсли; ОбъектВорд.Selection.Collapse(); ОбъектВорд.Selection.Find.Forward = True; ОбъектВорд.Selection.Find.Text = ТекстПоиска; Если ОбъектВорд.Selection.Find.Execute() Тогда ОбъектВорд.Selection.Delete(); ОбъектВорд.Selection.InsertAfter(ТекстЗамены); ДляВозврата = Истина; Иначе ОбъектВорд.Selection.Find.Forward = False; Если ОбъектВорд.Selection.Find.Execute() Тогда ОбъектВорд.Selection.Delete(); ОбъектВорд.Selection.InsertAfter(ТекстЗамены); ДляВозврата = Истина; Иначе ПродолжитьЦикл = Ложь; ДляВозврата = Ложь; КонецЕсли КонецЕсли; ОбработкаПрерыванияПользователя(); КонецЦикла; Возврат ДляВозврата; КонецФункции Она у меня для одностраничного документа работала, сейчас посмотрю еще тзп |
|||
3
peace
12.01.16
✎
06:00
|
(1) Спасибо за помощь, нашел в чем проблема..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |