Вывод ТЧ в макет active document word. Оформление таблицы

1. bajen 1 18.08.13 18:46 Сейчас в теме
Есть процедура заполнения макета.
АктивныйДокумент = Документы.ЗаказПокупателя.ПолучитьМакет("МакетДополнительногоСоглашения");
КомОбъект = АктивныйДокумент.Получить();

КомОбъект.Application.Visible=1;
КомОбъект.Variables.Item("НомерДопСоглашения").Value= Объект.Номер;
КомОбъект.Variables.Item("ДатаДопСоглашения").Value= Формат(Объект.Дата,"ДЛФ=DD");

КомОбъект.Variables.Item("НомерДоговора").Value=Объект.ДоговорКонтрагента.Номер;
КомОбъект.Variables.Item("ДатаДоговора").Value=Формат(Объект.ДоговорКонтрагента.Дата,"ДЛФ=DD");

КомОбъект.Variables.Item("НаименованиеКонтрагента").Value=Объект.Контрагент.Наименование;
Если ЗначениеЗаполнено(Объект.Контрагент.ОсновноеКонтактноеЛицо) Тогда
КомОбъект.Variables.Item("ГенДир").Value=Объект.Контрагент.ОсновноеКонтактноеЛицо.Наименование;
КомОбъект.Variables.Item("СоркГенДир").Value=Объект.Контрагент.ОсновноеКонтактноеЛицо.КонтактноеЛицо.Наименование;
КонецЕсли;
//

Word = КомОбъект.Application;

Doc = КомОбъект.Application.Documents(1);

КомОбъект.Bookmarks("Таблица").Select();

//MSWord.Application.Selection.TypeText(НарушенияТекст);


Doc.Paragraphs.Add();
//подготовка таблицы:


Rng = Word.Selection.Range;


//Формируем заголовок:

Rng.InsertAfter("№ *Наименование товара*Ед.изм.*Кол-во*Цена,руб*Стоимость,руб.");
Rng.InsertParagraphAfter();

//сама таблица

НумераторСтрок=0;
СуммаИтого=0;
КолСтрок=Объект.Товары.Количество();

Для каждого ВыборкаСтрокТовары Из Объект.Товары Цикл

Если ВыборкаСтрокТовары.Количество = 0 Тогда
Продолжить;
КонецЕсли;

Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;

НумераторСтрок = НумераторСтрок + 1;

Товар = СокрП(ВыборкаСтрокТовары.Номенклатура);
Rng.InsertAfter(Строка(НумераторСтрок)+"*"+Товар+"*"+
Строка(ВыборкаСтрокТовары.ЕдиницаИзмерения)+"*"+
Строка(ВыборкаСтрокТовары.Количество)+"*"+
Формат(ВыборкаСтрокТовары.Цена,"ЧЦ=9; ЧДЦ=2; ЧГ=")+"*"+
Формат(ВыборкаСтрокТовары.Сумма,"ЧЦ=10; ЧДЦ=2"));
Rng.InsertParagraphAfter();
СуммаИтого=СуммаИтого+ВыборкаСтрокТовары.Сумма;

КонецЦикла;

Rng.InsertAfter("* * *ИТОГО: * *"+Формат(СуммаИтого,"ЧЦ=10; ЧДЦ=2"));
Rng.InsertParagraphAfter();

Rng.ConvertToTable("*");

КомОбъект.Variables.Item("Предоплата").Value=Строка(ПроцентПредоплаты);
КомОбъект.Variables.Item("Отсрочка").Value=Строка(Отсрочка);
КомОбъект.Variables.Item("КоличествоДней").Value=Строка(Срок);

Если СМоментаОтгрузки = 1 Тогда
КомОбъект.Variables.Item("Текст").Value="с момента отгрузки товара (партии товара)";
Иначе
КомОбъект.Variables.Item("Текст").Value="с момента заказа товара до момента поступления на склад";
КонецЕсли;

Если ОтсрочкаПлатежа Тогда
КомОбъект.Bookmarks(СокрЛП("Пункт41")).select();
КомОбъект.Application.selection.TypeText(СокрЛП("4.1. Отсрочка платежа до момента поступления заказанного товара на склад в г. Иркутск ООО Цельсий."));
КонецЕсли;

СведенияОКонтагенте = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Объект.Контрагент, Объект.Дата,, Объект.Контрагент.ОсновнойБанковскийСчет);

КомОбъект.Variables.Item("НаименованиеПолное").Value=Объект.Контрагент.НаименованиеПолное;
КомОбъект.Variables.Item("ЮрАдрес").Value=ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "ЮридическийАдрес");
КомОбъект.Variables.Item("ФактАдрес").Value=ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "ФактическийАдрес");
КомОбъект.Variables.Item("БанкРеквизиты").Value= ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "Банк") + ", БИК: "+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "Бик")+", "+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "НомерСчета") + ", "+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "КоррСчет");
КомОбъект.Variables.Item("ИНН").Value=Объект.Контрагент.ИНН;
КомОбъект.Variables.Item("КПП").Value=Объект.Контрагент.КПП;
КомОбъект.Variables.Item("Телефон").Value=ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "Телефоны");
//КомОбъект.Variables.Item("ОГРН").Value=Объект.Контрагент.огр;

КомОбъект.Fields.UpDate();

КомОбъект.PrintOut(); //распечатать документ

//Ожидание окончания отправки на печать...
Пока КомОбъект.Application.BackgroundPrintingStatus<>0 Цикл
Предупреждение("Ожидание",1);
КонецЦикла;

// КомОбъект.Application.Quit(); //закрыть Word
КомОбъект = 0;

ТЧ выводится в макет.
Внимание вопрос )) Как сделать оформление таблица, а именно обвести таблицу и поменять ширину колонок?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sh_what 05.09.13 09:12 Сейчас в теме
Есть процедура заполнения макета.
АктивныйДокумент = Документы.ЗаказПокупателя.ПолучитьМакет("МакетДополнительногоСоглашения");
КомОбъект = АктивныйДокумент.Получить();

КомОбъект.Application.Visible=1;
КомОбъект.Variables.Item("НомерДопСоглашения").Value= Объект.Номер;
КомОбъект.Variables.Item("ДатаДопСоглашения").Value= Формат(Объект.Дата,"ДЛФ=DD");

КомОбъект.Variables.Item("НомерДоговора").Value=Объект.ДоговорКонтрагента.Номер;
КомОбъект.Variables.Item("ДатаДоговора").Value=Формат(Объект.ДоговорКонтрагента.Дата,"ДЛФ=DD");

КомОбъект.Variables.Item("НаименованиеКонтрагента").Value=Объект.Контрагент.Наименование;
Если ЗначениеЗаполнено(Объект.Контрагент.ОсновноеКонтактноеЛицо) Тогда
КомОбъект.Variables.Item("ГенДир").Value=Объект.Контрагент.ОсновноеКонтактноеЛицо.Наименование;
КомОбъект.Variables.Item("СоркГенДир").Value=Объект.Контрагент.ОсновноеКонтактноеЛицо.КонтактноеЛицо.Наименование;
КонецЕсли;
//

Word = КомОбъект.Application;

Doc = КомОбъект.Application.Documents(1);

КомОбъект.Bookmarks("Таблица").Select();

//MSWord.Application.Selection.TypeText(НарушенияТекст);


Doc.Paragraphs.Add();
//подготовка таблицы:


Rng = Word.Selection.Range;


//Формируем заголовок:

Rng.InsertAfter("№ *Наименование товара*Ед.изм.*Кол-во*Цена,руб*Стоимость,руб.");
Rng.InsertParagraphAfter();

//сама таблица

НумераторСтрок=0;
СуммаИтого=0;
КолСтрок=Объект.Товары.Количество();

Для каждого ВыборкаСтрокТовары Из Объект.Товары Цикл

Если ВыборкаСтрокТовары.Количество = 0 Тогда
Продолжить;
КонецЕсли;

Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;

НумераторСтрок = НумераторСтрок + 1;

Товар = СокрП(ВыборкаСтрокТовары.Номенклатура);
Rng.InsertAfter(Строка(НумераторСтрок)+"*"+Товар+"*"+
Строка(ВыборкаСтрокТовары.ЕдиницаИзмерения)+"*"+
Строка(ВыборкаСтрокТовары.Количество)+"*"+
Формат(ВыборкаСтрокТовары.Цена,"ЧЦ=9; ЧДЦ=2; ЧГ=")+"*"+
Формат(ВыборкаСтрокТовары.Сумма,"ЧЦ=10; ЧДЦ=2"));
Rng.InsertParagraphAfter();
СуммаИтого=СуммаИтого+ВыборкаСтрокТовары.Сумма;

КонецЦикла;

Rng.InsertAfter("* * *ИТОГО: * *"+Формат(СуммаИтого,"ЧЦ=10; ЧДЦ=2"));
Rng.InsertParagraphAfter();

Rng.ConvertToTable("*");

КомОбъект.Variables.Item("Предоплата").Value=Строка(ПроцентПредоплаты);
КомОбъект.Variables.Item("Отсрочка").Value=Строка(Отсрочка);
КомОбъект.Variables.Item("КоличествоДней").Value=Строка(Срок);

Если СМоментаОтгрузки = 1 Тогда
КомОбъект.Variables.Item("Текст").Value="с момента отгрузки товара (партии товара)";
Иначе
КомОбъект.Variables.Item("Текст").Value="с момента заказа товара до момента поступления на склад";
КонецЕсли;

Если ОтсрочкаПлатежа Тогда
КомОбъект.Bookmarks(СокрЛП("Пункт41")).select();
КомОбъект.Application.selection.TypeText(СокрЛП("4.1. Отсрочка платежа до момента поступления заказанного товара на склад в г. Иркутск ООО Цельсий."));
КонецЕсли;

СведенияОКонтагенте = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Объект.Контрагент, Объект.Дата,, Объект.Контрагент.ОсновнойБанковскийСчет);

КомОбъект.Variables.Item("НаименованиеПолное").Value=Объект.Контрагент.НаименованиеПолное;
КомОбъект.Variables.Item("ЮрАдрес").Value=ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "ЮридическийАдрес");
КомОбъект.Variables.Item("ФактАдрес").Value=ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "ФактическийАдрес");
КомОбъект.Variables.Item("БанкРеквизиты").Value= ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "Банк") + ", БИК: "+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "Бик")+", "+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "НомерСчета") + ", "+ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "КоррСчет");
КомОбъект.Variables.Item("ИНН").Value=Объект.Контрагент.ИНН;
КомОбъект.Variables.Item("КПП").Value=Объект.Контрагент.КПП;
КомОбъект.Variables.Item("Телефон").Value=ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОКонтагенте, "Телефоны");
//КомОбъект.Variables.Item("ОГРН").Value=Объект.Контрагент.огр;

КомОбъект.Fields.UpDate();

КомОбъект.PrintOut(); //распечатать документ

//Ожидание окончания отправки на печать...
Пока КомОбъект.Application.BackgroundPrintingStatus<>0 Цикл
Предупреждение("Ожидание",1);
КонецЦикла;

// КомОбъект.Application.Quit(); //закрыть Word
КомОбъект = 0;

ТЧ выводится в макет.
Внимание вопрос )) Как сделать оформление таблица, а именно обвести таблицу и поменять ширину колонок?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот