Имя: Пароль:
1C
1С v8
v8: Макет из ActiveDocument
0 Наська72
 
18.07.13
08:22
Добрый день!
Впервые хочу сделать печатную форму в Ворд.
Поняла, что в тексте Wordовского документа нужна ставить закладки, потом через поиск/замену менять нужные мне данные.
Но вопрос вот в чем: У меня состав документа может разниться в зависимости от данных, соответственно какие-то закладки нужно видеть, а какие-то нет.
Как вывести только нужные закладки?
Или
Как удалить ненужные закладки?

Макет2 = ЭтотОбъект.ПолучитьМакет("Макет2");
MSWord = Макет2.Получить();
НаименованиеКонтрагента = "ООО Торгуем всем";
Попытка
   Документ = MSWord.Application.Documents(1);
   Документ.Activate();
   
   MyRange = MSWord.Bookmarks(СокрЛП("Шапка")).Range();
   Замена = Документ.Content.Find;
   Замена.Execute("НомерАкта", Ложь, Истина, Ложь, , , Истина, , Ложь, """" + НаименованиеКонтрагента + """");
   
   // Делаем видимым приложение и активизируем его.
   MSWord.Application.Visible = Истина;
   MSWord.Activate();
Исключение
   // Если произойдет ошибка, выводятся данные об ошибке, и объект закрывается.
   Сообщение = Новый СообщениеПользователю();
   Сообщение.Текст = ОписаниеОшибки();
   Сообщение.Сообщить();
       
   MSWord.Application.Quit();
КонецПопытки;
1 Cube
 
18.07.13
08:38
(0) Что есть "закладки"?
2 Наська72
 
18.07.13
08:39
В документе Word Меню Вставка - Закладка
3 Наська72
 
18.07.13
08:40
(1) В коде
MyRange = MSWord.Bookmarks(СокрЛП("Шапка")).Range();
4 Cube
 
18.07.13
08:43
(2) А что, через переменные вида "{МояПеременная}" уже не модно?))
5 Наська72
 
18.07.13
08:46
(4) Это я тоже использую. Смотрите внимательнее вопрос:
У меня в зависимости от данных меняются закладки на вывод (например количество заявителей), поэтому хочется увидеть аналогию с именованными областями в простом макете.
6 Cube
 
18.07.13
08:49
(5) А что, нельзя в переменную {Заявители} вывести всех заявителей? Зачем создавать переменные типа {Заявитель1}, {Заявитель2} и т.д.?
7 Cube
 
18.07.13
08:51
+(5) Кстати, если сильно хочется, то можно попробовать копипастом... Но шляпа это всё...
8 Наська72
 
18.07.13
08:57
(6) Есть определенный текст, который соответствует одному физическому лицу, нескольким физ лицам, организации, госу контракту и т.д.
Вы знаете что-то про закладки и ActiveDocument????


Строка MSWord.Bookmarks.Item(СокрЛП("ЗаявительФизN")).Delete();
Эффекта не дает =(
9 Cube
 
18.07.13
08:59
(8) "Есть определенный текст, который соответствует одному физическому лицу, нескольким физ лицам, организации, госу контракту и т.д."
Не осилил...

"Вы знаете что-то про закладки и ActiveDocument????"
Что-то знаю))
10 Cube
 
18.07.13
08:59
(8) "Строка MSWord.Bookmarks.Item(СокрЛП("ЗаявительФизN")).Delete();
Эффекта не дает =("

Так это удаляется закладка, а не текст, который был в этой закладке...
11 Наська72
 
18.07.13
09:15
(10) Тогда как удалить текст?
MSWord.Bookmarks.Item(СокрЛП("ЗаявительФизN")).select();
MSWord.Application.selection.TypeText("");

Все равно вижу
12 Cube
 
18.07.13
09:18
(11) Ну так ты же в (0) уже всё написала:

   MyRange = MSWord.Bookmarks(СокрЛП("Шапка")).Range();
   Замена = Документ.Content.Find;
   Замена.Execute("НомерАкта", Ложь, Истина, Ложь, , , Истина, , Ложь, "");
13 Наська72
 
18.07.13
09:24
(12) Мне нужно целый блок текста скрыть!
Вобщем можно в это кусок добавить пробел
MSWord.Bookmarks.Item(СокрЛП("ЗаявительФизN")).select();
MSWord.Application.selection.TypeText(" ");

Но будут пустые строки.
Еще раз вопрос - можно ли какие-то закладки не выводить?
14 Cube
 
18.07.13
09:27
(13) "Еще раз вопрос - можно ли какие-то закладки не выводить?"
Ну что значит "не выводить"? Это же тебе не макет, а готовый документ. Там уже всё выведено. Ты можешь только добавлять/изменять/удалять...

Ещё раз ответ: Может переделать макет, как в (6) например?
15 mikecool
 
18.07.13
09:28
а при чем здесь ActiveDirectory???
16 Cube
 
18.07.13
09:29
(15) Ну, опечатался человек, с кем не бывает))
17 mikecool
 
18.07.13
09:30
(16) я уж подумал, что то из ActiveDirectory вытаскивается и вставляется )))
а по сабжу - сделай несколько макетов под разные условия и не парься
18 Наська72
 
18.07.13
11:03
(17) да ошиблась, про другую задачку еще думала =) а это идея, замороченная, но идея
19 Наська72
 
18.07.13
11:08
У меня весь этот геморр с Wordом ради двух слов выделенным жирным в тексте ячейки (в табличном документе можно сделать жирным только всю ячейку сразу).
Может быть есть возможность дернуть из ворда один абзац и сунуть его в табличный документ?
20 Наська72
 
18.07.13
11:29
Хелп!
21 mikecool
 
18.07.13
11:30
(19) и это можно, но если у тебя уже есть готовые шаблоны и не хочешь разбираться с активдокументом - сделай несколько вариантов шаблонов и по условию выбирай нужный
22 Наська72
 
18.07.13
11:32
(21) проблема в том, что нельзя выделить одно слово жирным, а не всю ячейку.
Может быть подскажите, как из Макета 2(HTML документ)кусочек вставить в Макет1 (Табличный документ).
23 Cube
 
18.07.13
11:32
(19) Так разбей текст...

Например, в строке "На сумму 1282 рубля." нужно выделить числа жирным.

Вариант 1: Строку разбить на три колонки. Среднюю сделать жирной.
Вариант 2). Строку разбить на три строки. Среднюю сделать жирной.
24 Наська72
 
18.07.13
11:35
(23) я не знаю какой длины будут слова. Абзац большой.
25 Cube
 
18.07.13
11:40
(24) Тогда вариант 2 выбирай.

Пример:

ООО "Рога и копыта" в лице какого-то чепушилы с одной стороны и
<Жирно>Иванов Иван Иванович</Жирно>
с другой стороны, подписали следующее соглашение...

В ячейке, где выводится ФИО ещё нижнюю границу нарисуешь и комильфо.
26 Наська72
 
18.07.13
11:42
(25) вы сейчас имеете ввиду HTML документ?
Как в нем именованные области сделать?
27 Наська72
 
18.07.13
11:43
(25) У меня посреди текста <Жирно>550</Жирно> (Пятьсот пятьдесят) рублей <Жирно>00</Жирно> копеек
28 Cube
 
18.07.13
11:45
(27) Я думаю, что ничего страшного не произойдет, если вся строка "550 (Пятьсот пятьдесят) рублей 00 копеек" будет ширной...
29 Cube
 
18.07.13
11:45
(28) ширной = жирной :)
30 Наська72
 
18.07.13
11:45
(28) в том то и дело, что принципиально
31 mikecool
 
18.07.13
11:47
(22) я тебе писал о том, что можно не разбираться с активдокументом ворда, а тупо нашлепать несколько шаблонов ворд-документов и выбирать их по условию
32 Наська72
 
18.07.13
11:51
(31) Есть проблема в нижней части (где реквизиты и подписи) может быть от 1 до N заявителей. А закладки нельзя ставить по колонкам
33 mikecool
 
18.07.13
11:52
(32) моя твоя не понимай.. но кажется - придется таки выучить тебе объектную модель ))
в гугле забей "Объектная модель word" - обычно по первой ссылке подробное описание
34 Cube
 
18.07.13
11:52
(30) Ну, тогда скажи заказчику, что принято сначала числовую часть писать, а только потом расшифровку, вот так: "550,00 (Пятьсот пятьдесят рублей 00 копеек)"
Это не я придумал.

Тогда и гемора тебе меньше будет.
35 Cube
 
18.07.13
11:53
+(34) Большой абзац всяко разно можно разбить на предложения...
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.