Имя: Пароль:
   
1C
1С v8
Заполняю Word -макет, указываю заполнение таблицы, Данные выводит.Сверху слева листа
0 SkillUp
 
20.11.18
10:06
ДокументПечати =  ЭтаОбработка.ПолучитьМакет("Макет3");
    MSWord = ДокументПечати.Получить();

    Попытка
        Документ = MsWord.Application.documents(1);
        Документ.Activate();
        //Получаем документ для поиска.
        Замена = Документ.Content.Find;

        //Строка
        НомерСтроки  = 2;        
        
        //Колонки:
        НомерКолонкиНомер = 1;
        Номенклатура = 2;
        ТМ = 3;
        ВНГ = 4;
        ВТ =  5;
        КНП = 6;
        
        Для Каждого ТекСтр ИЗ ЭтаОбработка.СсылкаНаОбъект.Услуги Цикл
            ВордТаблица = Документ.Tables(1);
            
            ВордТаблица.Rows.Add();
            
            ЗаполнениеСтрок = ВордТаблица.Cell(НомерСтроки,НомерКолонкиНомер).Range;
            ЗаполнениеСтрок.Text = ТекСтр.НомерСтроки;
            
            ЗаполнениеСтрок = ВордТаблица.Cell(НомерСтроки,Номенклатура).Range;
            ЗаполнениеСтрок.Text = ТекСтр.Номенклатура;

итд. (заполнение таблицы)


Данные выводит, сверху-слева самого листа данные.

Там ни какой таблицы нету, почему там выводит данные там? Кто-то сталкивался с таким?
1 Галахад
 
20.11.18
10:36
Рабочий код:

    таблкол = 1;//Номер таблицы, по счету, в документе word
    
    Word.ActiveDocument.Paragraphs.Add();//добавляем параграф
    Номер = Word.ActiveDocument.Paragraphs.Count();//получаем номер параграфа
    Word.ActiveDocument.Tables.add(Word.ActiveDocument.Paragraphs(Номер).Range,1,5);//создаем новую таблицу размером 1*4 (1 строка и 4 колонки). Вставляем ее в параграф с соответствующим номером "Номер" (в данном случае в конец документа).
    
    ЗаполнитьЯчейкуТаблицы(Word, таблкол, 1, 1, "№");
    ЗаполнитьЯчейкуТаблицы(Word, таблкол, 1, 2, "Наименование");
    ЗаполнитьЯчейкуТаблицы(Word, таблкол, 1, 3, "Количество");
    ЗаполнитьЯчейкуТаблицы(Word, таблкол, 1, 4, "Цена (руб.)");
    ЗаполнитьЯчейкуТаблицы(Word, таблкол, 1, 5, "Сумма (руб.)");

    Сч = 0;
    Для Каждого Стр Из СсылкаНаОбъект.Товары Цикл
        
        Сч = Сч + 1;
        Word.ActiveDocument.Tables(таблкол).Rows.Add();//добавляем новую строчку в эту таблицу    
        
        ЗаполнитьЯчейкуТаблицы(Word, таблкол, Сч + 1, 1, "" + Сч);
        ЗаполнитьЯчейкуТаблицы(Word, таблкол, Сч + 1, 2, Стр.Номенклатура.Наименование);
        ЗаполнитьЯчейкуТаблицы(Word, таблкол, Сч + 1, 3, Формат(Стр.Количество, "ЧДЦ=2") + " " + Стр.ЕдиницаИзмерения);
        ЗаполнитьЯчейкуТаблицы(Word, таблкол, Сч + 1, 4, Формат(Стр.Цена, "ЧДЦ=2"));
        ЗаполнитьЯчейкуТаблицы(Word, таблкол, Сч + 1, 5, Формат(Стр.Сумма, "ЧДЦ=2"));

    КонецЦикла;
    
    Word.ActiveDocument.Tables(таблкол).AutoFormat(16);//выставляем формат отображения таблицы. В данном случае таблица будет с обычной границей, без заливки. Параметр варьируется от 0 до...(примерно несколько десятков). Удобно просто в цикле перебрать, а потом выбрать нужный!
    Word.ActiveDocument.Range( Word.ActiveDocument.Tables(таблкол).Cell(1,1).Range.Start,Word.ActiveDocument.Tables(таблкол).Cell(1,5).Range.End).Font.Bold = Истина;// выделяем область яцеек с 1 по 4 для первой строки и выставляем шрифт "Жирный"
    //Word.ActiveDocument.Range( Word.ActiveDocument.Tables(таблкол).Cell(1,1).Range.Start,Word.ActiveDocument.Tables(таблкол).Cell(1,5).Range.End).Font.size = 12;// выделяем область яцеек с 1 по 4 для первой строки и выставляем размер шрифта "14"            
    Word.ActiveDocument.Range( Word.ActiveDocument.Tables(таблкол).Cell(1,1).Range.Start,Word.ActiveDocument.Tables(таблкол).Cell(Сч + 1,5).Range.End).ParagraphFormat.Alignment = 1;// выделяем область яцеек с 1 по 4 для первой строки и выставляем выравнивание текста "По центру". Параметр варьируется от 0 до 3. (левый край, центр, правый край, по ширине  соответственно)
2 SkillUp
 
20.11.18
10:57
(1) О, класс, СПАСИБО!!!!
3 Галахад
 
20.11.18
11:02
(2) Пожалуйста. Сам недавно разбирался.