Имя: Пароль:
1C
1С v8
Печать табличной части документа в word
0 deadpuma
 
09.10.12
11:51
Нужно чтобы в Документе Word автоматически создавалась таблица с произвольным количеством строк. Обычные реквизиты документа заполняются, а с таблицей проблемы.
Нашел пример кода в инете, но не совсем видимо правильно сделал.
Процедура вылетает на строке Выбор = КомОбъект.Selection();

и еще подскажите в самом документе Word нужно ли для таблицы вставлять специальный Экспресс-Блок, для обычных реквизитов, например, я использую DocVariable. А как в случае таблицы?

Процедура ОтправитьНаПечатьДоговор(Кнопка)
      АктивныйДокумент = ПолучитьМакет("МакетДоговорПоставки");

      ДатаДоговора = Дата(Параметры.Найти("ДатаДоговора").Значение);
      ФорматДаты = Формат(ДатаДоговора,"ДФ=dd.MM.yyyy");
     
      КомОбъект = АктивныйДокумент.Получить();
      КомОбъект.Application.Visible=1;
      //заголовок таблицы
      КомОбъект.Paragraphs.Add();
      Диапазон = КомОбъект.Paragraphs(КомОбъект.Paragraphs.Count()).Range;
      КомОбъект.Tables.Add(Диапазон,1,4);
      КомОбъект.Tables(2).Range.Select();
      Выбор = КомОбъект.Selection();
      Выбор.Style = "Сетка таблицы";
      Выбор.Rows.AllowBreakAcrossPages = 0;
      //Зададим ширину колонок
      КомОбъект.Tables(2).Columns(1).Width= КомОбъект.CentimetersToPoints(1);
      КомОбъект.Tables(2).Columns(2).Width= КомОбъект.CentimetersToPoints(3);
      КомОбъект.Tables(2).Columns(3).Width= КомОбъект.CentimetersToPoints(7);
      КомОбъект.Tables(2).Columns(4).Width= КомОбъект.CentimetersToPoints(2);
      КомОбъект.Tables(2).Columns(5).Width= КомОбъект.CentimetersToPoints(1);
      КомОбъект.Tables(2).Columns(6).Width= КомОбъект.CentimetersToPoints(4);
      КомОбъект.Tables(2).Columns(7).Width= КомОбъект.CentimetersToPoints(5);
      КомОбъект.Tables(2).Columns(8).Width= КомОбъект.CentimetersToPoints(5);
Независимо от того, куда вы едете — это в гору и против ветра!