Вход | Регистрация


1С:Предприятие ::

Метки: 

Не заполняет таблицу в word

Я
   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(); 

Сообщить("СсылкаНаОбъект = " + СсылкаНаОбъект); 


КонецФункции
 
  Рекламное место пустует
   sidalexsandr
 
1 - 03.08.18 - 15:18
Заполнение идет в цикле Для Счетчик = 1 По 10 Цикл
   hhhh
 
2 - 03.08.18 - 15:32
(1) а зачем вы 10 раз одно и тоже? после первого раза уже "%Наим%" нет нигде, зачем еще 9 раз проходить?
   sidalexsandr
 
3 - 03.08.18 - 15:34
(2) Это для проверки выводится. Дальше будет заполнено реальными данными.
   sidalexsandr
 
4 - 03.08.18 - 15:36
(2) Цикл должен выводить в строки таблицы Наим=1 Наим=2 Наим=3 и так далее
   s03
 
5 - 03.08.18 - 15:58
(4) или в каждой строке свой параметр (в шаблоне), не общий "Наим", а "Наим1", "Наим2" и т.д. или добавляй строки программно и в этот момент их и заполняй
   hhhh
 
6 - 03.08.18 - 16:02
(4) то что данный момент у тебя, ты выводишь 10 раз Наим=1
   sidalexsandr
 
7 - 03.08.18 - 16:10
(5) Я сделал на основании примера из интернета, там было написано что в каждой строчке выводится значение переменной счетчик, которое постоянно увеличивается. Как программно добавлять строки и заполнять их?
   sidalexsandr
 
8 - 03.08.18 - 16:58
Подниму
   sidalexsandr
 
9 - 06.08.18 - 12:57
up
   bolobol
 
10 - 06.08.18 - 13:36
MSDN в помощь
 
  Рекламное место пустует
   sidalexsandr
 
11 - 06.08.18 - 14:50
(10) Шутиш?
   sidalexsandr
 
12 - 06.08.18 - 14:54
(10) Это Микрософтоская библиотека тех документации. А мне надо знать где я программе написал с ошибкой.
   sidalexsandr
 
13 - 06.08.18 - 16:32
up
   sidalexsandr
 
14 - 07.08.18 - 14:03
Подниму
   Deon
 
15 - 07.08.18 - 14:09
Так а что не заполняется-то? Таблица не создается или данных в ней нет?
   sidalexsandr
 
16 - 07.08.18 - 14:34
(15) Таблица есть, но данных в ней нет.
Выводится только одна строчка
1    %Наим%    %Сер%
   Deon
 
17 - 07.08.18 - 15:04
(16) А ты в своем шаблоне Закладку перед таблицей точно поставил?
   sidalexsandr
 
18 - 07.08.18 - 15:25
(17) В документе word выделяю таблицу и правой кнопкой мыши->вставить название и даю имя Таблица 1
   Deon
 
19 - 07.08.18 - 15:31
(18) Не, у тебя же в коде "ШаблонВорд.Bookmarks"
Bookmarks - это закладки. Встань перед таблицей и жамкай Вставить - Закладки. Имя закладки "Таблица 1"
   sidalexsandr
 
20 - 07.08.18 - 15:43
(19) Спасибо. Теперь выдает ошибку:
Ошибка при вызове метода контекста (SelectRow): Произошла исключительная ситуация (Microsoft Word): Метод или свойство SelectRow недоступны, потому что некоторые или все объекты не ссылаются на таблицу.
   Deon
 
21 - 07.08.18 - 15:45
(20) Ну вот теперь можно начинать пользоваться Отладчиком
   sidalexsandr
 
22 - 07.08.18 - 15:59
(21) Можно подробнее?
   sidalexsandr
 
23 - 07.08.18 - 16:01
Закомментировал//ШаблонВорд.Application.Selection.Find.Execute("%Наим%" ,,,,,,,,,"Наим="+Счетчик,2);

            //ШаблонВорд.Application.Selection.Find.Execute("%Сер%" ,,,,,,,,,Счетчик+10,2);


Все равно ошибка (20)
   Deon
 
24 - 07.08.18 - 16:07
У тебя закладка должна стоять в строке над таблицей.
Ибо у тебя в коде написано - выбрать закладку, потом спуститься на строку вниз и выделить строку таблицы
   sidalexsandr
 
25 - 07.08.18 - 16:09
Ошибка в верхнем SelectRow
   Deon
 
26 - 07.08.18 - 16:15
(25) Потому что у тебя курсор не попал в таблицу
   sidalexsandr
 
27 - 07.08.18 - 16:16
А почему не попал?
   Deon
 
28 - 07.08.18 - 16:25
(27) Потому что ты закладку не туда поставил в шаблоне
   sidalexsandr
 
29 - 07.08.18 - 16:30
(28) Я выделил таблицу. Далее в ворде вставка ->Закладка
   sidalexsandr
 
30 - 07.08.18 - 16:31
А вот это правильно
ТекДок = Word.Documents.ADD(ИмяВременногоФайла); 
ШаблонВорд = ТекДок; 
//Заполняем первую таблицу 


Если ШаблонВорд.Bookmarks.Exists("Таблица1") Тогда
?
   Fram
 
31 - 07.08.18 - 16:32
(29) ты ветку по диагонали читаешь что ли? Что тебе в (24) написали?
   sidalexsandr
 
32 - 07.08.18 - 16:36
(31) Спасибо. Попробую
   sidalexsandr
 
33 - 07.08.18 - 16:39
(31) Спасибо. Заработало но не совсем верно. Выделяет и копирует не вторую строчку, а первую. Как сделать чтобы копировалась и заполнялась вторая строчка?
 
 
   sidalexsandr
 
34 - 07.08.18 - 16:44
Написал ШаблонВорд.Application.Selection.MoveDown();
        ШаблонВорд.Application.Selection.MoveDown();
        ШаблонВорд.Application.Selection.SelectRow();
        ШаблонВорд.Application.Selection.Copy();

Теперь выводится с первой строки, но выводятся только нечетные строки (через строку)
   sidalexsandr
 
35 - 07.08.18 - 16:46
Почему через строку? Ведь ШаблонВорд.Application.Selection.MoveDown();
        ШаблонВорд.Application.Selection.MoveDown();
        ШаблонВорд.Application.Selection.SelectRow();
        ШаблонВорд.Application.Selection.Copy();
стоит в не цикла.
   sidalexsandr
 
36 - 07.08.18 - 17:24
Переформулирую. Как сделать, чтобы копировалась вторая строка таблицы затем заполнялась и добавлялась вниз таблицы?
   sidalexsandr
 
37 - 08.08.18 - 11:45
Подниму
   sidalexsandr
 
38 - 08.08.18 - 12:25
(36) Up



Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует