Имя: Пароль:
1C
 
1С->Word по OLE. Как удалить страницу?
Ø
0 Zam
 
14.12.05
07:38
Есть договор в ворде (шаблон). У договора 4 страницы. В зависимости от некоторых условий при формировании договора удаляется либо 3, либо 4 страница. Подскажите плиз как.
1 Zam
 
14.12.05
08:01
1С:Предприятие 7.7
:)
2 Sasha
 
14.12.05
08:03
Хм, а просто распечатывать либо без третьей, либо без четвертрой страницы не катит. Вообще-то в Word'е страницы удаляютс удалением текста с него...
3 banda
 
14.12.05
08:04
переведи договор в формат Excel,
а дальше я тебе помогу
4 smaharbA
 
14.12.05
08:17
Поставь разрыв - новый раздел со следующей страницы на всех страницах шаблона и
Documents(1).Sections(3).Range.Delete
5 Zam
 
14.12.05
08:18
(2) Про удаление страницы с удалением текста это я знаю :) У мну договор ЗАПОЛНЯЕТСЯ из 1С. И если будут все страницы - это будет геморно очень, во всяком случае с таким подходом, который я реализую. Проще найти метод который удалит страницу.
(3) Брр.... Форматирование и все такое... Можно конечно в Ексель, но надеюсь что разберусь с Вордом :)
6 smaharbA
 
14.12.05
08:20
Я что опять невидимка ?
7 Zam
 
14.12.05
08:29
(6)Нет. С чего ты решил? :) Когда я писал свой пост, твоего еще не было. Потом я увидел твой пост, и начал делать так как ты говоришь, пока еще не все получилось, но вроде это то что мне надо. Если не получится напишу :)
8 Zam
 
14.12.05
09:17
(4) Не получается, вернее не совсем получается. Весь текст, все удаляется, но страница пустой остается.
9 smaharbA
 
14.12.05
09:24
(8) Все удаляется, скажи подробнее что делал и код, хотя там кодато 1 строка...
10 Zam
 
14.12.05
09:58
Такое ощущение, что не там поставли разрыв. Но блин, ставлю в начале страницы... Куда еще его ставить....
11 Gloom
 
14.12.05
10:02
Так можно удалить (непоследнюю страницу):
=============================================
диапазон=myDocument.goTo(1,1,номерСтраницы);
началоДиапазона=диапазон.start;
диапазон=myDocument.goTo(1,1,номерСтраницы);
диапазон.start=началоДиапазона;
диапазон.delete();
12 smaharbA
 
14.12.05
10:03
(11) "поплывет" если разделов нету...
13 Gloom
 
14.12.05
10:04
+11 Упс, очепятался, вот так правильно:
=============================================
диапазон=myDocument.goTo(1,1,номерСтраницы);//второй параметр - wdGoToAbsolute
началоДиапазона=диапазон.start;
диапазон=myDocument.goTo(1,2,номерСтраницы);//второй параметр - wdGoToNext
диапазон.start=началоДиапазона;
диапазон.delete();
14 smaharbA
 
14.12.05
10:07
(10) ставь в конце каждой "новый раздел со следующей"
15 Zam
 
14.12.05
10:26
(13) Последняя удаляется, а вот предпоследняя нет :(
16 Zam
 
14.12.05
10:33
+(15) Вернее наоборт :) Надо чтобы удалил 3 страницу из 4, удаляет. Когда нужно чтобы удалил 4 из 4, не удаляет.
17 Gloom
 
14.12.05
10:53
(16)Ну, дык, я ж в (11) так и написал - "непоследнюю страницу". Последнюю
можно так грохнуть:
=============================================
диапазон=myDocument.goTo(1,1,номерПоследнейСтраницы);
началоДиапазона=диапазон.start;
диапазон=myDocument.range;
диапазон.start=началоДиапазона;
диапазон.delete();
18 Zam
 
14.12.05
10:54
Я так понимаю проблема с этим
"второй параметр - wdGoToNext" т.е. следующая страница, которой собственно говоря и нет... Значит туда нужно что-то другое передавать?
19 Zam
 
14.12.05
10:57
Спасибо. Уже второй раз выручаешь с Вордом :)
20 Zam
 
14.12.05
11:03
Когда писал 18, 17 еще не увидел :)
21 Zam
 
14.12.05
11:09
Одна маленькая проблемка. При удалении последней страницы - все удаляется, но сама страница остается. Пустая, но все равно есть. Мелочь, а не приятно :)
22 Gloom
 
14.12.05
11:31
(21)Значит на предыдущей странице PageBreak(символ с кодом 12) вставлен...
23 smaharbA
 
14.12.05
11:36
это от разделов осталось...
А с разделами всеже правильнее...
24 Zam
 
14.12.05
11:37
(22) А как поглядеть/убрать?
25 smaharbA
 
14.12.05
11:47
(24) руками, так - нажми кнопочку Пи...
программно Documents(1).Range.Find.Execute("^m", , , , , , , , , "")
26 Gloom
 
14.12.05
11:48
(24)
Если КодСимв(myDocument.range(началоДиапазона-1).Characters(1).text)=12 Тогда
   диапазон.start=началоДиапазона-1;
   ...
27 Zam
 
14.12.05
11:48
(23) Нет, я заново сделал файл из двух. Может и правильнее, тока заморочено чуток. Я плоховато в Ворде ориентируюсь, мне проще в 1С алгоритм прописать.
28 Zam
 
14.12.05
12:03
(25, 26) Не катит...
Включил кнопку Пи, вроде постарался перевод строки убрать везде, где можно. Но с предыдущей страницы неполучается убрать, вернее когда убираешь текст поднимается вверх. И еще, после текста на последней странице знак Пи стоит, и никак не убирается. Я так понимаю так и должно быть?
29 Zam
 
14.12.05
12:07
(26) НачалоДиапазона - 10 помогло :)))))
Думаю и меньше десяти хватит
30 Zam
 
14.12.05
12:09
Gloom и smaharbA
Большое вам спасибо :) Все работает так как надо.