|   |   | 
| 
 | 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) Большой абзац всяко разно можно разбить на предложения...     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |