helpf.pro
Регистрация
 +1 
Распечатать

Вывод несколько раз макета ActiveDocument в один документ Word

Текст кода для вывода шаблона несколько раз в один документ Ворд.
Случилось, что понадобилось вывести шаблон справки к продукции для каждой строки ТЧ товары документа. Создаем макет печ. формы с типом ActiveDocument и загружаем туда наш шаблон. Далее все стандартно по созданию внешней печ. формы + код ниже
Код 1C v 8.х
  ТабДокумент  = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Справка";

АктивныйДокумент = ПолучитьМакет("Макет");
КомОбъект = АктивныйДокумент.Получить();

Попытка

Word = КомОбъект.Application;
Док=Word.Documents(1);
// Отключим проверку грамматики и вывод информации о грамматических ошибках.
Док.GrammarChecked=0;
Док.ShowGrammaticalErrors=0;

Док.Activate();
Файл = КаталогВременныхФайлов() + "файл" + Выборка.Номер + ".doc";
Word.S_election.WholeStory();
Word.S_election.Copy();

Счетчик = 1;
Для каждого Строка Из СсылкаНаОбъект.Товары Цикл

Замена = Док.Content.Find;
НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(СсылкаНаОбъект);
Замена.Execute("[Номер]", Ложь, Истина, Ложь, , , Истина, , Ложь, НомерДокумента);
Замена = Док.Content.Find;
Замена.Execute("[Дата]", Ложь, Истина, Ложь, , , Истина, , Ложь, Формат(Выборка.Дата, "ДЛФ = ДДММГГ"));
Замена = Док.Content.Find;
Замена.Execute("[Наименование]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Строка.Номенклатура));
Замена = Док.Content.Find;
Замена.Execute("[Количество]", Ложь, Истина, Ложь, , , Истина, , Ложь, Строка(Строка.Количество));
Замена = Док.Content.Find;
Замена.Execute("[Декларация]", Ложь, Истина, Ложь, , , Истина, , Ложь, РегНомерДекларации);
Замена = Док.Content.Find;
СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Выборка.Организация, Выборка.Дата,,);
ФактАдрес = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике, "ФактическийАдрес");
Производитель = Выборка.ОрганизацияНаименованиеСокращенное + ", " + Выборка.ФактАдресОрганизации;
Замена.Execute("[Производитель]", Ложь, Истина, Ложь, , , Истина, , Ложь, Производитель);

Word.S_election.EndKey(6);

Если Счетчик < СсылкаНаОбъект.Товары.Количество() тогда
Word.S_election.I_nsertBreak(7);
Word.S_election.Paste();
КонецЕсли;
Счетчик = Счетчик + 1;
КонецЦикла;

Док.SaveAs(Файл);
Док.Close(0);

ЗапуститьПриложение("""" + Файл + """");

Исключение
Сообщить(ОписаниеОшибки());
Word.Quit();
КонецПопытки;

Автор: sanja
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 19974
 +1 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1C медленно работает по сети с базой на SQL Server 22
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.