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

1C cоздание таблицы в Word

Столкнулся с такой проблемой. Формирую из 1С печатную форму договора, сам договор в Word. Все данные заполняю, не понятно только как заполнить таблицу. Количество строк в таблице не фиксированно и может меняться в каждом договоре. Как можно программно из 1С заполнить таблицу в Word?

Тема создана пользователем Sashok 01.10.2014 14:25:26

4 3284

01.10.2014 14:53:05

Cobimen

122

Есть несколько вариантов заполнить шаблон Word. Первый - создание таблицы и ее заполнение. Второй - заполнение уже существующей таблицы в шаблоне. Второй мне больше нравится так как не нужно париться с размещением самой таблицы в документе. Она создается в самом шаблоне, а потом только заполняется. Пример кода создания таблиц есть на infostart. Заполнения - найду и выложу.

01.10.2014 14:57:20

Cobimen

122

Пример с созданием таблицы

Word = MsWord.Application;
   Документ = Word.ActiveDocument();
   //Переместиться вниз на 30 строк
   Word.Selection.MoveDown(,29);
   Документ.Paragraphs.Add();
   //подготовка таблицы:
   Rng = Word.Selection.Range;
   //Формируем заголовок:
   Rng.InsertAfter("№*Наименование*Артикул*Количество*Цена*Сумма");  
   Rng.InsertParagraphAfter();
   //сама таблица
   Пока РезультатЗАпроса.Следующий() Цикл
       Rng.InsertAfter(Строка(Сч)+"*"+Строка(РезультатЗапроса.Номенклатура)+"*"+РезультатЗапроса.Артикул+"*"+Строка(результатЗапроса.Количество)+"*"+ Строка(результатЗапроса.Цена)+ "*"+Строка(РезультатЗапроса.Сумма));
       Rng.InsertParagraphAfter();
   КонецЦикла;   
   
   Rng.ConvertToTable("*");
   Документ.Tables(1).AutoFormat(1);
   Word.Visible = Истина;    

01.10.2014 15:10:58

Cobimen

122

Вот пример с заполнением таблицы Word

ТаблицаДляЗаполнения = ВОРД.ActiveDocument.Tables(2); 
        НомерСтроки          = 1;
        Пока ДетальныеЗаписи.Следующий() Цикл
            
            НомерСтроки                                          = НомерСтроки+1; 
            ТаблицаДляЗаполнения.Rows.Add(); //Добавление строки
            ТаблицаДляЗаполнения.Cell(НомерСтроки, 1).Range.Text = ДетальныеЗаписи.Номенклатура.Наименование;      // Установка значения наименование
            ТаблицаДляЗаполнения.Cell(НомерСтроки, 2).Range.Text = ДетальныеЗаписи.ЕдиницаИзмерения.Наименование;  // Установка значения единицы измерения
            ТаблицаДляЗаполнения.Cell(НомерСтроки, 3).Range.Text = ДетальныеЗаписи.Цена;                           //Установка значения цены
            
        КонецЦикла;    
        

01.10.2014 15:11:42

Cobimen

122

Если будут вопросы - обращайся.

Для создания нового сообщения необходимо войти или зарегестрироваться