Имя: Пароль:
1C
1С v8
Удаление текста с переводом строки в Word
,
0 Andreyyy
 
30.08.12
08:25
Нужно динамически формировать в шаблоне Word отдельные пункты трудового договора.
Я их сразу все (3 штуки) вставил и пытаюсь удалять лишние:

Замена = MSWord.ActiveDocument.Range().Find;
Замена.Execute("3.2. Работодатель обязан:", Ложь, Истина, Ложь, , , Истина, , Ложь, "");

Но символы перевода строки не удаляются, если к тексту добавляю " + Символы.ПС", то он не находит этот текст.

Еще вариант: создал макрос на удаление нужных строк, но не знаю как поставить перед выполнением макроса курсор в нужное место.
1 andrewks
 
30.08.12
08:31
2 Andreyyy
 
30.08.12
08:41
Замена.Execute("3.2. Работодатель обязан:^|", Ложь, Истина, Ложь, , , Истина, , Ложь, "");

Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft Word): (здесь значок типа нотки)

Если прямо в ворде пишу в строке поиска, то выдает: "Нельзя использовать как специальный символ в поле "Найти".

Я так и не понял где в ссылке (1) использовалась эта конструкция.
3 Fish
 
30.08.12
08:44
(0) А зачем так сложно? Сделай в ворде один параметр и заполняй его в зависимости от условий.
4 Andreyyy
 
30.08.12
08:45
(3) Там форматирование текста, мне кажется еще больший геморрой.
Пробую сейчас через закладки устанавливать курсор и макросом удалять.
5 andrewks
 
30.08.12
08:50
попробуй Символ(13)  поискать
6 Fish
 
30.08.12
08:53
(4) Никакого геморроя. Ты вставляешь кусок текста в УЖЕ отформатированный абзац и при этом форматирование сохраняется.
7 y88
 
30.08.12
08:55
в ворде символ абзаца ^p
8 smaharbA
 
30.08.12
09:22
"107[ ^09^013]@(?)" ... "^p\1"
9 smaharbA
 
30.08.12
09:30
"3.2. Работодатель обязан:[ ^09^013]@(?)" ... "^p\1"
10 Andreyyy
 
30.08.12
15:45
Не вышло у меня удалить символ перевода строки (символ абзаца).
Получилось через закладки:

MSWord.ActiveWindow.Selection.GoTo(-1, , , "Оклад");
MSWord.Selection.MoveRight(, 267, Истина);
MSWord.Selection.Delete(, 1);
11 smaharbA
 
30.08.12
15:45
(10) см (9)
12 smaharbA
 
30.08.12
16:08
+

Док=Ворд.ActiveDocument;//надо заменить, но пока не ссуть
Диапазон = Док.Range();
Поиск=Диапазон.Find;
MsgBox Поиск.Execute("3.2. Работодатель обязан:[ ^09^013]@(?)", Ложь, Ложь, Истина, Ложь, Ложь, Истина, 1, Ложь, "^p\1", 2);
13 Andreyyy
 
30.08.12
16:12
(11) Я попробовал так:
Замена.Execute("3.2. Работодатель обязан:[ ^09^013]@(?)", Ложь, Истина, Ложь, , , Истина, , Ложь, "^p\1");

Ничего не вышло и ввиду того, что совсем не понимаю логики набора символов я не стал дальше проводить эксперименты в этом направлении, времени на чтение мануалов нет.
14 andrewks
 
30.08.12
16:13
(9) жесть какая )  а где описаны эти управляющие чудо-заклинания?
15 smaharbA
 
30.08.12
16:13
(14) в справке
16 smaharbA
 
30.08.12
16:15
два способа поиска "обычный" (с кодами тип  ^p) и подстановочный (примитивные, но вполне достаточные регулярные выражения, с несколько не привычным синтаксисом)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn