Вставить разрыв страницы в word

1. mark_oilbass 28.10.20 15:13 Сейчас в теме
Здравствуйте!

Подскажите пожалуйста. Как реализовать следующее поведение: из 1С в ворде необходимо найти нужное слово, удалить его и вместо этого слова вставить разрыв страницы.
По теме из базы знаний
Найденные решения
7. SlavaKron 28.10.20 17:11 Сейчас в теме
Так же как и при интерактивной работе, программно любое слово можно заменить на специальный символ – абзац или разрыв страницы.
Разрыв страницы это "^m":
Документ.Content.Find.Execute(СловоЗамены, Ложь, Ложь, Ложь, , , Истина, , Ложь, "^m", 2);
user712426; kabantus; mongiilol; mark_oilbass; +4 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. SlavaKron 28.10.20 17:11 Сейчас в теме
Так же как и при интерактивной работе, программно любое слово можно заменить на специальный символ – абзац или разрыв страницы.
Разрыв страницы это "^m":
Документ.Content.Find.Execute(СловоЗамены, Ложь, Ложь, Ложь, , , Истина, , Ложь, "^m", 2);
user712426; kabantus; mongiilol; mark_oilbass; +4 Ответить
8. mark_oilbass 28.10.20 17:49 Сейчас в теме
(7) Хм, это очень мне очень понравилось)
2. comptr 35 28.10.20 15:44 Сейчас в теме
https://helpme1c.ru/rabota-s-word-v-yazyke-1s-8-3-8-2-v-primerax
Ориентироваться в методах, перечислениях и прочем помогает описание объектной модели от MS:
https://docs.microsoft.com/ru-ru/office/vba/api/overview/word/object-model
4. mark_oilbass 28.10.20 16:15 Сейчас в теме
(2) не подходит коллекция Fields у меня пустая, возможно из за того, что файл открывается новый еще не сохраненный.
Нашел такой вариант, но хотелось бы выделить всю строку, а не одно слово.

For Each i In myDocument.Words() do
f i.text = "Слово" then
myDocument.Range(i.Start, i.End).Select();
endif;
EndDo;
3. AnryMc 849 28.10.20 15:46 Сейчас в теме
 Word = Новый COMОбъект("Word.Application");
...
		   Для каждого Слово Из Область.Words Цикл
			   СловоДляПроверки = СокрЛП(Слово.Text);
...
InsertBreak(Word.WdBreakType _
        .wdSectionBreakNextPage)



wdColumnBreak 8 Column break at the insertion point.
wdLineBreak 6 Line break.
wdLineBreakClearLeft 9 Line break.
wdLineBreakClearRight 10 Line break.
wdPageBreak 7 Page break at the insertion point.
wdSectionBreakContinuous 3 New section without a corresponding page break.
wdSectionBreakEvenPage 4 Section break with the next section beginning on the next even-numbered page. If the section break falls on an even-numbered page, Word leaves the next odd-numbered page blank.
wdSectionBreakNextPage 2 Section break on next page.
wdSectionBreakOddPage 5 Section break with the next section beginning on the next odd-numbered page. If the section break falls on an odd-numbered page, Word leaves the next even-numbered page blank.
wdTextWrappingBreak 11 Ends the current line and forces the text to continue below a picture, table, or other item. The text continues on the next blank line that does not contain a table aligned with the left or right margin.
5. mark_oilbass 28.10.20 16:16 Сейчас в теме
(3)вы как раз описали тот вариант который я нашел. Но как выделить всю строку?
6. AnryMc 849 28.10.20 16:38 Сейчас в теме
(5)
Но как выделить всю строку?


Не понял зачем...

Разрыв работает из любой "точки" строки (позиции)

Примерно:
Область = Док.Range(0,0);
Область.InsertBreak(2); //наверно "2" (в кавычках) - не помню точно

P.S.ПоследнийПараграф=Док.Range().Paragraphs.Add (Док.Range().Characters.Last);
P.P.S.
word = Новый COMОбъект("Word.Application");
word.Caption="Личные данные.doc";
word.Visible=1;
doc = word.Documents;
newdoc = doc.Add();
selection = word.Selection;
table = newdoc.Tables.Add(selection.Range(),40,2,1,0);
Selection.MoveDown(5,49);
Selection.InsertBreak(7);
selection = word.Selection;
table = newdoc.Tables.Add(selection.Range(),40,2,1,0);
Selection.MoveDown(5,48);
Selection.InsertBreak(7);
selection = word.Selection;
table = newdoc.Tables.Add(selection.Range(),40,2,1,0);//сохранение д-та
doc.SaveAs("d:\Личные данные.doc");
doc = 0;
word.quit(0);
word = 0;
Показать
mongiilol; +1 Ответить
9. mongiilol 26.01.21 16:46 Сейчас в теме
(6)
Тоже использую, на мой взгляд самый удобный способ.

Selection.InsertBreak(7);


Вообще на будущее ТС, в самом Word: Вид->Макросы->Запись макроса
И потом можно посмотреть код исполнения данного действия в макросе по кнопке изменить.
kabantus; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот