|
вывод табличной части документа в WORD. | ☑ | ||
---|---|---|---|---|
0
mpvpes
26.12.13
✎
14:56
|
Подскажите пожалуйста, как вывести табличную часть документа в WORD.
|
|||
1
mpvpes
26.12.13
✎
17:30
|
Код
Процедура ОсновныеДействияФормыПеч(Кнопка) // Табличная часть заявителей ТЧДок=ТабличнаяЧастьСписокЗаявителей.Выгрузить(); // Директор=СокрЛП(Справочники.СправочникРуководство.НайтиПоКоду("000000001")); ФИОВЛицеДиректора=СокрЛП(Справочники.СправочникРуководство.НайтиПоКоду("000000001").ФИОВЛице); ДолжностьДиректораМП=СокрЛП(Справочники.СправочникРуководство.НайтиПоКоду("000000001").Должность); ДолжностьВЛице=СокрЛП(Справочники.СправочникРуководство.НайтиПоКоду("000000001").ДолжностьВЛице); Договор = Документы.ТехническиеУсловияФизЛиц.ПолучитьМакет("Договор"); MSWord = Договор.Получить(); Попытка Документ = MSWord.Application.Documents(1); Документ.Activate(); //Шапка Документа Замена = Документ.Content.Find; Замена.Execute("[Номер]",Ложь, Истина, Ложь, , , Истина, , Ложь, Номер); Замена = Документ.Content.Find; Замена.Execute("[ДолжностьВЛице]",Ложь, Истина, Ложь, , , Истина, , Ложь, ДолжностьВЛице); Замена = Документ.Content.Find; Замена.Execute("[ФИОВЛицеДиректора]",Ложь, Истина, Ложь, , , Истина, , Ложь, ФИОВЛицеДиректора); //Начало Вывода ТабЧасти в Word Для Каждого ТекСтр ИЗ ТЧДок Цикл ФИОЗаявителя1=СокрЛП(ТекСтр.ФИОЗаявителя); ПаспортС1=СокрЛП(ТекСтр.ПаспортСерия); ПаспортН1=СокрЛП(ТекСтр.ПаспортНомер); ПаспортК1=СокрЛП(ТекСтр.ПаспортКемВыдан); ПаспортД1=СокрЛП(ТекСтр.ПаспортДатаВыдачи); Адрес1=СокрЛП(ТекСтр.РегистрацияГород); Документ.Content.Find.Execute("[ПечЗаявителя]",Ложь, Истина, Ложь, , , Истина, ,Ложь,ФИОЗаявителя1); Документ.Content.Find.Execute("[ПечТекст]",Ложь,Истина,Ложь,,,Истина,,Ложь," именуемый/-ая в дальнейшем «Заявитель» паспорт серия"); Документ.Content.Find.Execute("[ПечТекст1]",Ложь,Истина,Ложь,,,Истина,,Ложь,ПаспортС1+" № "); Документ.Content.Find.Execute("[ПечТекст2]",Ложь,Истина,Ложь,,,Истина,,Ложь,ПаспортН1+" выдан "); Документ.Content.Find.Execute("[ПечТекст3]",Ложь,Истина,Ложь,,,Истина,,Ложь,ПаспортК1+" "+ПаспортД1+"г."); Документ.Content.Find.Execute("[ПечТекст4]",Ложь,Истина,Ложь,,,Истина,,Ложь,"зарегистрированный/-ая по адресу:"+Адрес1); КонецЦикла; MSWord.Application.Visible = Истина; MSWord.Activate(); Исключение Сообщить(ОписаниеОшибки()); MSWord.Application.Quit(); КонецПопытки; КонецПроцедуры Выводит только первую строку ТЧ документа |
|||
2
mikecool
26.12.13
✎
17:32
|
видимо не добавляешь строки в таблицу ворда
|
|||
3
mpvpes
27.12.13
✎
08:39
|
А как добавлять строки в таблицу ворда
|
|||
4
fmrlex
27.12.13
✎
08:42
|
(3) Блин да погугли ты. Есть пример с созданием таблички путем вывода данных через разделительный символ и отработка затем процедурки формирования.
|
|||
5
mpvpes
27.12.13
✎
08:53
|
Что за разделительный символ, случайно не Символ.ПС
|
|||
6
fmrlex
27.12.13
✎
11:26
|
(5)Я "*" использовал
|
|||
7
mpvpes
28.12.13
✎
14:05
|
Нашел на этом форуме и получилось в шаблоне Документа ActiveDocumet вставить закладку (выбрать *Положение и *Невидимый)
ТабДок=Новый ТабличныйДокумент; // Табличная часть заявителей ТабДок=ТабличнаяЧастьСписокЗаявителей.Выгрузить(); // Директор=СокрЛП(Справочники.СправочникРуководство.НайтиПоКоду("000000001")); ФИОВЛицеДиректора=СокрЛП(Справочники.СправочникРуководство.НайтиПоКоду("000000001").ФИОВЛице); ДолжностьДиректораМП=СокрЛП(Справочники.СправочникРуководство.НайтиПоКоду("000000001").Должность); ДолжностьВЛице=СокрЛП(Справочники.СправочникРуководство.НайтиПоКоду("000000001").ДолжностьВЛице); Договор = Документы.ТехническиеУсловияФизЛиц.ПолучитьМакет("Договор"); //MSWord = Договор.Получить(); Попытка MSWord = Договор.Получить(); Документ = MSWord.Application.Documents(1); Документ.Activate(); //Шапка Документа Замена = Документ.Content.Find; Замена.Execute("[Номер]",Ложь, Истина, Ложь, , , Истина, , Ложь, Номер); Замена = Документ.Content.Find; Замена.Execute("[ДолжностьВЛице]",Ложь, Истина, Ложь, , , Истина, , Ложь, ДолжностьВЛице); Замена = Документ.Content.Find; Замена.Execute("[ФИОВЛицеДиректора]",Ложь, Истина, Ложь, , , Истина, , Ложь, ФИОВЛицеДиректора); //Начало Вывода ТабЧасти в Word Для Каждого ТекСтр ИЗ ТабДок Цикл ФИОЗаявителя1=СокрЛП(ТекСтр.ФИОЗаявителя); ПаспортС1=СокрЛП(ТекСтр.ПаспортСерия); ПаспортН1=СокрЛП(ТекСтр.ПаспортНомер); ПаспортК1=СокрЛП(ТекСтр.ПаспортКемВыдан); ПаспортД1=ТекСтр.ПаспортДатаВыдачи; Адрес1=СокрЛП(ТекСтр.РегистрацияГород); MSWord.ActiveWindow.Selection.GoTo(-1, , ,"Начало");// Закладка (-1 - позиция начало вывода перед закладкой MSWord.ActiveWindow.Selection.TypeText(ФИОЗаявителя1); MSWord.ActiveWindow.Selection.TypeText(" именуемый/-ая в дальнейшем «Заявитель» паспорт серия"); MSWord.ActiveWindow.Selection.TypeText(ПаспортС1+" № "); MSWord.ActiveWindow.Selection.TypeText(ПаспортН1+" выдан "); MSWord.ActiveWindow.Selection.TypeText(ПаспортК1+" выдан "+ПаспортД1+"г."); MSWord.ActiveWindow.Selection.TypeText("зарегистрированный/-ая по адресу: "); MSWord.ActiveWindow.Selection.TypeParagraph(); // переход на следующую строку КонецЦикла; MSWord.Application.Visible = Истина; MSWord.Activate(); Исключение Сообщить(ОписаниеОшибки()); MSWord.Application.Quit(); КонецПопытки; |
|||
8
alexei366
28.12.13
✎
14:40
|
(7) Ну фиг знает, тут ты или смотри как в стандартной конфе сделанно или делай сам (я вот к примеру сам замутил шаблонизацию: у меня там и строки таблиц и куски текста копирует, + замутил как в 77 тоесть можно использовать различные выражения над основным объектом)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |