|   |   | 
| 
 | Не заполняет таблицу в word | ☑ | ||
|---|---|---|---|---|
| 0
    
        sidalexsandr 03.08.18✎ 15:18 | 
        Не заполняется таблица в word. Вот текст функции: 
 Функция Печать() Экспорт Word = Новый COMОбъект("Word.Application"); //получаем макет Макет = ПолучитьМакет("МакетWord"); ВременныйПуть = КаталогВременныхФайлов(); ИмяВременногоФайла = ВременныйПуть + "Пример ворд.doc"; Макет.Записать(ИмяВременногоФайла); ТекДок = Word.Documents.ADD(ИмяВременногоФайла); // Поиск и замена маркеров Замена = ТекДок.Content.Find; //Execute работает как замена текста, подробности метода не знаю, единственное и это точно - без цифры 2 заменяется только первый текст, вторая замена не срабатывает //Замена.Execute("[ВставкаИз1с]",,,,,,,,, "привет 1с", 2); Замена.Execute("%ОбществоООО%",,,,,,,,, СсылкаНаОбъект.Наименование, 2); Замена.Execute("%ОбществоОООГенДир%",,,,,,,,, СсылкаНаОбъект.Наименование, 2); ШаблонВорд = ТекДок; //Заполняем первую таблицу Если ШаблонВорд.Bookmarks.Exists("Таблица1") Тогда //Выделяем обязательную закладку начала таблицы ШаблонВорд.Bookmarks("Таблица1").Select(); //Перемещаемся вниз, выделяем строку таблицы и копируем ее в буфер обмена ШаблонВорд.Application.Selection.MoveDown(); ШаблонВорд.Application.Selection.SelectRow(); ШаблонВорд.Application.Selection.Copy(); Для Счетчик = 1 По 10 Цикл //Заменяем значения ШаблонВорд.Application.Selection.Find.Execute("%Наим%" ,,,,,,,,,"Наим="+Счетчик,2); ШаблонВорд.Application.Selection.Find.Execute("%Сер%" ,,,,,,,,,Счетчик+10,2); //Перемещаемся вниз, вставляем из буфера обмена строку ШаблонВорд.Application.Selection.MoveDown(); ШаблонВорд.Application.Selection.Paste(); //Перемещаемся вверх и выделяем строку для замены значений ШаблонВорд.Application.Selection.MoveUp(); ШаблонВорд.Application.Selection.SelectRow(); КонецЦикла; //Вырезаем лишнюю строку ШаблонВорд.Application.Selection.Cut(); //Скрываем обязательную закладку начала таблицы ШаблонВорд.Bookmarks("Таблица1").Select(); ШаблонВорд.Application.Selection.TypeText(" "); КонецЕсли; // Вывод документа ТекДок.Application.Visible = Истина; ТекДок.Activate(); Сообщить("СсылкаНаОбъект = " + СсылкаНаОбъект); КонецФункции | |||
| 1
    
        sidalexsandr 03.08.18✎ 15:18 | 
        Заполнение идет в цикле Для Счетчик = 1 По 10 Цикл     | |||
| 2
    
        hhhh 03.08.18✎ 15:32 | 
        (1) а зачем вы 10 раз одно и тоже? после первого раза уже "%Наим%" нет нигде, зачем еще 9 раз проходить?     | |||
| 3
    
        sidalexsandr 03.08.18✎ 15:34 | 
        (2) Это для проверки выводится. Дальше будет заполнено реальными данными.     | |||
| 4
    
        sidalexsandr 03.08.18✎ 15:36 | 
        (2) Цикл должен выводить в строки таблицы Наим=1 Наим=2 Наим=3 и так далее     | |||
| 5
    
        s03 03.08.18✎ 15:58 | 
        (4) или в каждой строке свой параметр (в шаблоне), не общий "Наим", а "Наим1", "Наим2" и т.д. или добавляй строки программно и в этот момент их и заполняй     | |||
| 6
    
        hhhh 03.08.18✎ 16:02 | 
        (4) то что данный момент у тебя, ты выводишь 10 раз Наим=1     | |||
| 7
    
        sidalexsandr 03.08.18✎ 16:10 | 
        (5) Я сделал на основании примера из интернета, там было написано что в каждой строчке выводится значение переменной счетчик, которое постоянно увеличивается. Как программно добавлять строки и заполнять их?     | |||
| 8
    
        sidalexsandr 03.08.18✎ 16:58 | 
        Подниму     | |||
| 9
    
        sidalexsandr 06.08.18✎ 12:57 | 
        up     | |||
| 10
    
        bolobol 06.08.18✎ 13:36 | 
        MSDN в помощь     | |||
| 11
    
        sidalexsandr 06.08.18✎ 14:50 | 
        (10) Шутиш?     | |||
| 12
    
        sidalexsandr 06.08.18✎ 14:54 | 
        (10) Это Микрософтоская библиотека тех документации. А мне надо знать где я программе написал с ошибкой.     | |||
| 13
    
        sidalexsandr 06.08.18✎ 16:32 | 
        up     | |||
| 14
    
        sidalexsandr 07.08.18✎ 14:03 | 
        Подниму     | |||
| 15
    
        Deon 07.08.18✎ 14:09 | 
        Так а что не заполняется-то? Таблица не создается или данных в ней нет?     | |||
| 16
    
        sidalexsandr 07.08.18✎ 14:34 | 
        (15) Таблица есть, но данных в ней нет.
 Выводится только одна строчка 1 %Наим% %Сер% | |||
| 17
    
        Deon 07.08.18✎ 15:04 | 
        (16) А ты в своем шаблоне Закладку перед таблицей точно поставил?     | |||
| 18
    
        sidalexsandr 07.08.18✎ 15:25 | 
        (17) В документе word выделяю таблицу и правой кнопкой мыши->вставить название и даю имя Таблица 1     | |||
| 19
    
        Deon 07.08.18✎ 15:31 | 
        (18) Не, у тебя же в коде "ШаблонВорд.Bookmarks"
 Bookmarks - это закладки. Встань перед таблицей и жамкай Вставить - Закладки. Имя закладки "Таблица 1" | |||
| 20
    
        sidalexsandr 07.08.18✎ 15:43 | 
        (19) Спасибо. Теперь выдает ошибку:
 Ошибка при вызове метода контекста (SelectRow): Произошла исключительная ситуация (Microsoft Word): Метод или свойство SelectRow недоступны, потому что некоторые или все объекты не ссылаются на таблицу. | |||
| 21
    
        Deon 07.08.18✎ 15:45 | 
        (20) Ну вот теперь можно начинать пользоваться Отладчиком     | |||
| 22
    
        sidalexsandr 07.08.18✎ 15:59 | 
        (21) Можно подробнее?     | |||
| 23
    
        sidalexsandr 07.08.18✎ 16:01 | 
        Закомментировал //ШаблонВорд.Application.Selection.Find.Execute("%Наим%" ,,,,,,,,,"Наим="+Счетчик,2);
 //ШаблонВорд.Application.Selection.Find.Execute("%Сер%" ,,,,,,,,,Счетчик+10,2); Все равно ошибка (20) | |||
| 24
    
        Deon 07.08.18✎ 16:07 | 
        У тебя закладка должна стоять в строке над таблицей.
 Ибо у тебя в коде написано - выбрать закладку, потом спуститься на строку вниз и выделить строку таблицы | |||
| 25
    
        sidalexsandr 07.08.18✎ 16:09 | 
        Ошибка в верхнем SelectRow     | |||
| 26
    
        Deon 07.08.18✎ 16:15 | 
        (25) Потому что у тебя курсор не попал в таблицу     | |||
| 27
    
        sidalexsandr 07.08.18✎ 16:16 | 
        А почему не попал?     | |||
| 28
    
        Deon 07.08.18✎ 16:25 | 
        (27) Потому что ты закладку не туда поставил в шаблоне     | |||
| 29
    
        sidalexsandr 07.08.18✎ 16:30 | 
        (28) Я выделил таблицу. Далее в ворде вставка ->Закладка     | |||
| 30
    
        sidalexsandr 07.08.18✎ 16:31 | 
        А вот это правильно
 ТекДок = Word.Documents.ADD(ИмяВременногоФайла); ШаблонВорд = ТекДок; //Заполняем первую таблицу Если ШаблонВорд.Bookmarks.Exists("Таблица1") Тогда ? | |||
| 31
    
        Fram 07.08.18✎ 16:32 | 
        (29) ты ветку по диагонали читаешь что ли? Что тебе в (24) написали?     | |||
| 32
    
        sidalexsandr 07.08.18✎ 16:36 | 
        (31) Спасибо. Попробую     | |||
| 33
    
        sidalexsandr 07.08.18✎ 16:39 | 
        (31) Спасибо. Заработало но не совсем верно. Выделяет и копирует не вторую строчку, а первую. Как сделать чтобы копировалась и заполнялась вторая строчка?     | |||
| 34
    
        sidalexsandr 07.08.18✎ 16:44 | 
        Написал ШаблонВорд.Application.Selection.MoveDown();
 ШаблонВорд.Application.Selection.MoveDown(); ШаблонВорд.Application.Selection.SelectRow(); ШаблонВорд.Application.Selection.Copy(); Теперь выводится с первой строки, но выводятся только нечетные строки (через строку) | |||
| 35
    
        sidalexsandr 07.08.18✎ 16:46 | 
        Почему через строку? Ведь ШаблонВорд.Application.Selection.MoveDown();
 ШаблонВорд.Application.Selection.MoveDown(); ШаблонВорд.Application.Selection.SelectRow(); ШаблонВорд.Application.Selection.Copy(); стоит в не цикла. | |||
| 36
    
        sidalexsandr 07.08.18✎ 17:24 | 
        Переформулирую. Как сделать, чтобы копировалась вторая строка таблицы затем заполнялась и добавлялась вниз таблицы?     | |||
| 37
    
        sidalexsandr 08.08.18✎ 11:45 | 
        Подниму     | |||
| 38
    
        sidalexsandr 08.08.18✎ 12:25 | 
        (36) Up     | |||
| 39
    
        sidalexsandr 27.08.18✎ 13:41 | 
        (36) Вопрос ещё актуален     | |||
| 40
    
        sidalexsandr 28.08.18✎ 10:27 | 
        (36) Подниму     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |