Имя: Пароль:
1C
1С v8
Удаление страницы MS Word из 1С
0 MistaEr
 
24.12.18
15:21
Формирую печать некого документа на каждого клиента по одному листу. Клиентов может быть максимум 7. Если в документе всего 2 клиента, нужно удалить последние 5 листов. Подскажите как это сделать?
1 MistaEr
 
24.12.18
15:22
Есть такая ветка
1С->Word по OLE. Как удалить страницу?
делаю как там прописано, начинает удалять с предпоследней страницы, последняя так и остается
2 MistaEr
 
24.12.18
15:37
Или уж все включить в таблицу и удалять строки таблицы WordDoc.Tables(1).Rows(НомерСтроки).Delete()
3 Alexandr_U1982
 
24.12.18
15:46
Как вариант, можно поставить закладки и удалять их.
4 MistaEr
 
24.12.18
16:46
(3) а есть функция удаления закладок?
5 Fish
 
24.12.18
16:48
(0) Может, проще сразу не плодить лишние листы?
6 Мимохожий Однако
 
24.12.18
16:49
(5) Ну вот. Всё испортил
7 Alexandr_U1982
 
24.12.18
16:59
(4)
Область       = Документ.Application.Selection;
Область.Start = Документ.Bookmarks("Раздел10").Start;
Область.End   = Документ.Bookmarks("Раздел10").End;
Область.Cut();
8 Alexandr_U1982
 
24.12.18
17:00
Вместо "Cut()" надо поставить команду удаления.
9 MistaEr
 
24.12.18
17:09
(5) я бы с удовольствием. мне кажется еще удаление долго проходит
10 MistaEr
 
24.12.18
17:16
Я бы добавлял по типу:
Вывести горизонтальный разделитель
Вывести секцию
11 MistaEr
 
24.12.18
18:10
(7) МаксимумПокупателей = 7;
    Пока МаксимумПокупателей > КоличествоПокупателей Цикл
        Область       = WordDoc.Application.Selection;
        Область.Start = WordDoc.Bookmarks("Область" + МаксимумПокупателей).Start;
        Область.End   = WordDoc.Bookmarks("Область" + МаксимумПокупателей).End;
        Область.Delete();
    КонецЦикла;
    
Область7 удаляет, а Область6 уже нет
12 MistaEr
 
24.12.18
18:15
Пардон,
МаксимумПокупателей = 7;
    Пока МаксимумПокупателей > КоличествоПокупателей Цикл
        Область       = WordDoc.Application.Selection;
        Область.Start = WordDoc.Bookmarks("Область" + МаксимумПокупателей).Start;
        Область.End   = WordDoc.Bookmarks("Область" + МаксимумПокупателей).End;
        Область.Delete();
        МаксимумПокупателей = МаксимумПокупателей - 1;
    КонецЦикла;

Вот так удаляет текст закладок.
Но пустые странички остаются
13 Alexandr_U1982
 
24.12.18
18:17
(12)Попробуй, когда устанавливаешь закладку в Word, выделить всю страничку, включая разделитель страниц (если он там есть).
14 MistaEr
 
27.12.18
11:03
(13) Огромное спасибо! все получается!
15 Вафель
 
27.12.18
11:31
может лучше выводить страницы, чем удалять?
16 seacat72
 
27.12.18
11:36
это не спортивно
17 Alexandr_U1982
 
27.12.18
11:58
Бывают печатные формы со сложной структурой, в которых проще в макет забить сразу весь текст (таблицы, рисунки и т.д.) и в дальнейшем, в зависимости от условий, удалять из него не нужные фрагменты.

Например, печатная форма трудового договора.
Проще сделать так, чтобы она сразу содержала максимальное количество текста и удалять его оттуда, чем из 1С в документ Word закидывать различные разделы. При этом нет проблем с форматированием текста и сохранением нумерации пунктов/разделов.
18 MistaEr
 
27.12.18
12:29
(15) Чтоб выводить слишком много кода писать и переделывать сложнее