Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 20:43

1С и Word

Автор .Mj, 02 авг 2013, 16:50

0 Пользователей и 1 гость просматривают эту тему.

.Mj

Здравствуйте. Помогите, пожалуста, решить одну проблему ...

Необходимо из 1С Документооборот 8 в файл *.doc вставить надпись, причём не просто вставить - а заменить ей в нужном файле текст <МестоДляВставки...>.
С формированием надписи и вставкой её в файл по координатам проблем не возникает.
С заменой указанного текста просто текстом - тоже проблем не возникает.
Но как поймать указанный текст и заменить его надписью - непонятно.
Прошу помощи.

Надпись формирую так же как и в функции ВставитьРегистрационныйШтампВФайлDocСУказаниемПоложения конфигурации Документооборот, примерно так:
Док = WordApp.Documents.Add(ИмяВременногоФайлаOffice);
 
oGraphicObject = Док.Shapes.AddTextBox(1, 100, 100, 145, 100);

//устанавливаем привязку положения к печатной области
oGraphicObject.RelativeHorizontalPosition = 0;
oGraphicObject.RelativeVerticalPosition = 0;


  oGraphicObject.left = -999998;
  oGraphicObject.Top = -999999;

oGraphicObject.Select();

Если ЗначениеЗаполнено(ТекстНадписи) Тогда
  WordApp.Selection.Font.Bold = Ложь;
  WordApp.Selection.ParagraphFormat.Alignment = 1;
WordApp.Selection.TypeText(ТекстНадписи.НазваниеОрганизации + Символы.ВК);
WordApp.Selection.TypeText("№ " + ТекстНадписи.РегНомер);
  WordApp.Selection.TypeText(" от ");
Иначе
  WordApp.Selection.ShapeRange.Line.Visible = Ложь;
КонецЕсли;

WordApp.Selection.ShapeRange.TextFrame.AutoSize = Истина;
WordApp.Selection.ShapeRange.Fill.Visible = Ложь;
WordApp.Selection.Font.Bold = Истина;

Док.SaveAs(НовыйПутьКФайлу, 0);

Док.Saved = Истина;
Док.Close();
WordApp.Quit();

Dethmontt

Find() и Execute() в помощь
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

.Mj

Цитата: Dethmontt от 02 авг 2013, 20:15
Find() и Execute() в помощь
т.е. грубо говоря что-то такиое ...
ЗаменаКонтента = НовыйДокумент.content.Find;
ЗаменаКонтента.Execute(ЧтоЗаменяем,Ложь,Истина,Ложь,,,Истина,,Ложь,Строка(ЧемЗаменяем));


тогда что передавать, чтобы заменялось не текстом, а надписью???
Добавлено: 04 авг 2013, 12:28


ну или хотя бы как вытащить координаты искомого текста?

.Mj

прошу совета!

Steelvan

Можно не заниматься связкой WORD с 1С, а получать сразу красивые отформатированные документы с использованием ОптимаСофт:Документы.
Скриншоты можно посмотреть http://www.optimasoft.info/index_doki.html
Там используется внешняя компонента, встроенная в 1С и управляемая кодом 1С.

Теги: 1C 1С Word 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск