|
v8: Active Document | ☑ | ||
---|---|---|---|---|
0
sanja26
07.09.11
✎
16:04
|
Есть вордовский документ загруженный в макет. Отдельные значения выводятся нормально.
Как вывести табличную часть документа в этот макет Процедура ПечатьПервогоПриложения() АктивныйДокумент = ПолучитьМакет("ПерваяФормаПриложения"); КомОбъект = АктивныйДокумент.Получить(); Замена = КомОбъект.Content.Find; Замена.Execute("[№Приложения]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ЭтотОбъект.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[№Договора]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[ДатаНачала]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Формат(ДоговорЗаказчика.Дата, "ДЛФ=DD"))); Замена = КомОбъект.Content.Find; Замена.Execute("[ТекДата]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Формат(ЭтотОбъект.Дата, "ДЛФ=DD"))); Замена = КомОбъект.Content.Find; Замена.Execute("[№Договора]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[ДатаНачала]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Формат(ДоговорЗаказчика.Дата, "ДЛФ=DD"))); Замена = КомОбъект.Content.Find; Замена.Execute("[№Договора]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[Принципал]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Формат(ДоговорЗаказчика.Дата, "ДЛФ=DD"))); Замена = КомОбъект.Content.Find; Замена.Execute("[Агент]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); КомОбъект.Application.Visible=1; КомОбъект.Activate(); КонецПроцедуры |
|||
1
sanja26
07.09.11
✎
16:17
|
Как программно описать вывод в Ворд ТЧ документа?
|
|||
2
sanja26
07.09.11
✎
18:18
|
ап
|
|||
3
Mort
07.09.11
✎
18:46
|
Я по йуности делал в шаблоне таблицу из шапки и одной строкой с "параметрами" и прописывал туда значения копируя строки таблицы. Щас бы придумал что-нибудь покошернее.
|
|||
4
sanja26
08.09.11
✎
17:45
|
Получилось так
Процедура ПечатьВторогоПриложения() wdLineStyleNone = 1; wdBorderBottom = -3;// Нижняя грань таблицы wdBorderLeft = -2; // Левая грань таблицы wdBorderRight = -4; //Правая wdBorderTop = -1; // нижняя wdBorderVertical = -6; //Вертикальная (видимо смежная) wdBorderHorizontal = -5; АктивныйДокумент = ПолучитьМакет("ВтораяФормаПриложения"); КомОбъект = АктивныйДокумент.Получить(); Word = КомОбъект.Application; Док=Word.Documents(1); Док.Activate(); Замена = КомОбъект.Content.Find; Замена.Execute("[№Приложения]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ЭтотОбъект.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[№Договора]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[ДатаНачала]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Формат(ДоговорЗаказчика.Дата, "ДЛФ=DD"))); Замена = КомОбъект.Content.Find; Замена.Execute("[ТекДата]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Формат(ЭтотОбъект.Дата, "ДЛФ=DD"))); Замена = КомОбъект.Content.Find; Замена.Execute("[№Договора]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[ДатаНачала]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Формат(ДоговорЗаказчика.Дата, "ДЛФ=DD"))); Замена = КомОбъект.Content.Find; Замена.Execute("[ДатаСрок]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Формат(ДоговорЗаказчика.СрокДействия, "ДЛФ=DD"))); Замена = КомОбъект.Content.Find; Замена.Execute("[№Договора]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[ДатаНачала]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Формат(ДоговорЗаказчика.Дата, "ДЛФ=DD"))); //Text = АктивныйДокумент.Selection; //Position = КомОбъект.Range(0, 0).selection; Word.selection.MoveDown(,12); Док.Paragraphs.Add(); //Word.Selection.MoveRight(,); Табл= Word.Selection.Range; //Формируем заголовок: Табл.InsertAfter("П/П*Наименование статьи расходов Агента*Стоимость (руб.)"); Табл.InsertParagraphAfter(); //сама таблица й = 1; Для Каждого строка из Услуги Цикл Табл.InsertAfter(Строка(й) + "*" + строка.Услуга+"*"+Строка.РазмерСуммыOUTСНДС); Табл.InsertParagraphAfter(); й = й + 1; КонецЦикла; Табл.InsertAfter("" + "*" + "ИТОГО общая сумма расходов Агента без НДС:"+"*"+"5"); Табл.InsertParagraphAfter(); Табл.InsertAfter("" + "*" + "НДС 18%:"+"*"+"5"); Табл.InsertParagraphAfter(); Табл.InsertAfter("" + "*" + "ИТОГО общая сумма расходов Агента, включая НДС 18%:"+"*"+"5"); Табл.InsertParagraphAfter(); Табл.ConvertToTable("*"); //Происходит конвертация строки в таблицу //не нравятся звездочки - используйте другой символ Док.Tables(1).AutoFormat(1); Док.Tables(1).Borders(wdBorderBottom).LineStyle = wdLineStyleNone; Док.Tables(1).Borders(wdBorderLeft).LineStyle = wdLineStyleNone; Док.Tables(1).Borders(wdBorderRight).LineStyle = wdLineStyleNone; Док.Tables(1).Borders(wdBorderTop).LineStyle = wdLineStyleNone; Док.Tables(1).Borders(wdBorderVertical).LineStyle = wdLineStyleNone; Док.Tables(1).Borders(wdBorderHorizontal).LineStyle = wdLineStyleNone; //Position = КомОбъект.Range(0, 0); ////Position = КомОбъект.Application.selection.Range; //Table = КомОбъект.Tables.Add(Position, 1, 2, 1, 2); //Для Каждого строка из Услуги цикл // Замена = КомОбъект.Content.Find; // Замена.Execute("[Услуга]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Строка.Услуга)); //КонецЦикла; СуммаКПрописи = Услуги.Итог("РазмерСуммыOUTСНДС"); ОбщаяСуммаЦифрами = ОбщегоНазначения.ФорматСумм(СуммаКПрописи, ЭтотОбъект.Валюта); ОбщаяСуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, ЭтотОбъект.Валюта); Замена = КомОбъект.Content.Find; Замена.Execute("[ОбщаяСуммаЦифрами]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ОбщаяСуммаЦифрами)); Замена = КомОбъект.Content.Find; Замена.Execute("[ОбщаяСуммаПрописью]", Ложь, Истина, Ложь, , , Истина, , Ложь, ОбщаяСуммаПрописью); СуммаНДС = Услуги.Итог("РазмерСуммыOUTСНДС") - Услуги.Итог("СуммаOUTБезНДС"); СуммаНДСЦифрами = ОбщегоНазначения.ФорматСумм(СуммаНДС, ЭтотОбъект.Валюта); СуммаНДСПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаНДС, ЭтотОбъект.Валюта); Замена = КомОбъект.Content.Find; Замена.Execute("[НДСЦифрами]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(СуммаНДСЦифрами)); Замена = КомОбъект.Content.Find; Замена.Execute("[НДСПрописью]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(СуммаНДСПрописью)); Замена = КомОбъект.Content.Find; Замена.Execute("[СуммаФактЦифрами]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[СуммаФактПрописью]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[НДСФактЦифрами]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[НДСФактПрописью]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[АгентЦифрами]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[АгентПрописью]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[НДСАгентЦифрами]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); Замена = КомОбъект.Content.Find; Замена.Execute("[НДСАгентПрописью]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(ДоговорЗаказчика.Номер)); КомОбъект.Application.Visible=1; КомОбъект.Activate(); КонецПроцедуры |
|||
5
Челмедведосвин
08.09.11
✎
19:40
|
Можно в демо библиотеки стандартных подсистем посмотреть. Там в одном документе реализовано (имя документа не помню, но их там немного).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |