Имя: Пароль:
1C
 
Шаблоны Word и таблицы
0 Kuryshev
 
31.07.09
08:59
Подскажите пожалуйста, как можно вывести в табличной части шаблона документа Word столько строк сколько их в табличной части документа 1С? Если можно укажите пример.
1 dk
 
31.07.09
09:02
учу читать справку по VBA и записывать макросы - ДОРОГО! )
2 Deon
 
31.07.09
09:12
вопрос не очень понятен
3 lxs
 
31.07.09
09:16
(0) читай простые примеры разработки. там все есть.
4 rasswet
 
31.07.09
09:17
(2) я так понял нужно ему добавлять строки в таблицу, которая в ворде формируется.
5 Kuryshev
 
31.07.09
09:20
(3) Есть шаблон документа Word, есть 1С V8. В Word'e есть каркас таблицы. Нужно из 1С в Word вывести столько строк в табличную часть сколько в документе 1С, т.е. к примеру в документе 1С 3 строки с номенклатурой, соответственно в шаблон вывести нужно 3, если 2 - то 2, 1 - 1 и т.д.
6 Kuryshev
 
31.07.09
09:25
(3) Спасибо за наводку, оно самое (Как выгрузить прайс-лист в документ программы Microsoft Word?)! Только есть еще один ньюанс: если я правильно понял, то если таблиц в документе несколько - они нумеруются попорядку, Item(1), Item(2), и т.д.?

// Получить таблицу как объект в отдельную переменную
// учитывая тот факт, что таблица у нас единственная
Таблица = Документ.Tables.Item(1);
7 Tseb
 
31.07.09
09:26
да
8 rasswet
 
31.07.09
11:11
напиши кусок как вставлять, я себе тогда страницу скопипастю)
9 Джордж1
 
31.07.09
11:13
Ворд.Documents.Add(КаталогИБ()+"Shablon\"+СокрЛП(Шабл.Файл),0,0,1);
   Ворд.Visible=0;
   Табл=Ворд.ActiveDocument.Tables.Item(Шабл.НомерТаблицы);  
   //сначала добавляем колонки в таблицу
   Табл.Columns(Шабл.НомерКолонкиПартия).Select();
   Для к=2 по КолВоПартий Цикл
       Ворд.Application.Selection.InsertColumns();
   КонецЦикла;
   //заголовки партий
   Для к=1 по КолВоПартий Цикл
       Табл.Cell(Шабл.НомерПервойСтроки-1,Шабл.НомерКолонкиПартия-1+к).Range=ПолучитьАтрибут("Партия"+к);
   КонецЦикла;
   //объединим колонки над партиями
   п1=Табл.Cell(1, Шабл.НомерКолонкиПартия);
   Табл.Cell(1,Шабл.НомерКолонкиПартия-1+КолВоПартий).Merge(п1);
   ///////////////////////////////////////////////////////////////////////////////
   //теперь выводим данные
   Табл.Cell(Шабл.НомерПервойСтроки, 1).Select();
   Ворд.Application.Selection.InsertRowsBelow(ТЗ2.КоличествоСтрок()-1);//добавляем строки
   //заполняем данные
   ТЗ2.ВыбратьСтроки();
   Пока ТЗ2.ПолучитьСтроку()=1 Цикл
       Табл.Cell(Шабл.НомерПервойСтроки-1+ТЗ2.НомерСтроки, 1).Range=ТЗ2.НомерСтроки;
       Табл.Cell(Шабл.НомерПервойСтроки-1+ТЗ2.НомерСтроки, 2).Range=Строка(ТЗ2.Элемент);
       Табл.Cell(Шабл.НомерПервойСтроки-1+ТЗ2.НомерСтроки, 3).Range=ТЗ2.НормативСтр;
       //
       Для к=1 по КолВоПартий Цикл
           Табл.Cell(Шабл.НомерПервойСтроки-1+ТЗ2.НомерСтроки, Шабл.НомерКолонкиПартия-1+к).Range=СокрЛП(Формат(ТЗ2.ПолучитьЗначение(ТЗ2.НомерСтроки,"Партия"+к),"Ч06."+ТЗ2.Элемент.Точность));
       КонецЦикла;    
       //
       Табл.Cell(Шабл.НомерПервойСтроки-1+ТЗ2.НомерСтроки, 3+КолВоПартий+1).Range=ТЗ2.Результат;
       Табл.Cell(Шабл.НомерПервойСтроки-1+ТЗ2.НомерСтроки, 3+КолВоПартий+2).Range=ТЗ2.Вывод;
   КонецЦикла;    
   //покажем готовый документ
   Ворд.DisplayAlerts=0;
   Ворд.Visible=1;
10 Kuryshev
 
31.07.09
11:21
Спасибо за помощь!