Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

1с word application

Evgeniy Korshunov

Этот блог — мой персональный сетевой помощник + коллекция ссылок

среда, 11 июля 2012 г.

Заполнение документа WORD из 1С 7.7

Если есть шаблон .dot в файле FullNameFile, то:

Через закладки не понравилось — до заполнения не видно, как будет выглядеть форматирование документа.

Ворд = СоздатьОбъект ( » Word . Application» ) ; Ворд . Visible = 1 ; ДокВорд = Ворд . documents ; ТекДокВорд = ДокВорд . Open ( СокрЛП ( ПутьШаблона ) ) ; //путь к шаблону (dot) Содержание = ТекДокВорд . Content ; Содержание . Find . Execute ( «[НомерДок]» , 0 , 0 , , , , , , , Строка ( СокрЛП ( НомерДок ) ) , 1 ) ; Содержание = ТекДокВорд . Content ; // это каждый раз! Содержание . Find . Execute ( «[ФИО]» , 0 , 0 , , , , , , , Строка ( СокрЛП ( ФИО ) ) , 1 ) ;
ТекДокВорд . SaveAs ( ПодКакимИменемСохранитьФайл +».doc»);

С 2003 офисом точно работает, под другими не пробовал.

UPD. 10.03.2017
В 2013 офисе тоже работает, проверено :).
Для замены всех встречающихся значений шаблона в тексте, необходимо установить последний параметр в 2.
Содержание . Find . Execute ( «[ФИО]» , 0 , 0 , , , , , , , Строка ( СокрЛП ( ФИО ) ) , 2 ) ;
Описание здесь и здесь.
Параметр — wdReplaceAll = 2;

18 комментариев:

В Word 2007 работает на ура

номердок=»роророророр»;
Ворд=СоздатьОбъект(«Word.Application»);
Ворд.Visible=1;
ДокВорд=Ворд.documents;
путьшаблона=»d:dogovor.dot»;
ТекДокВорд=ДокВорд.Open(СокрЛП(ПутьШаблона)); //путь к шаблону (dot)
Содержание=ТекДокВорд.Content;
Ворд=СоздатьОбъект(«Word.Application»);
Ворд.Visible=1;
ДокВорд=Ворд.documents;
ТекДокВорд=ДокВорд.Open(СокрЛП(ПутьШаблона)); //путь к шаблону (dot)
Содержание=ТекДокВорд.Content;
Содержание.Find.Execute(«[nom_dog]»,0,0. «номердок»,2);
//Рез = текдокворд.Bookmarks.Exists(«nom_dog»);
// сообщить(рез);
Содержание=ТекДокВорд.Content; // это каждый раз!
фио=»фиофио»;
Содержание.Find.Execute(«[fio]»,0,0. «фио фио»,2);
//Содержание=ТекДокВорд.Content;
ПодКакимИменемСохранитьФайл=»d:dog» ;
ТекДокВорд.SaveAs(ПодКакимИменемСохранитьФайл+».doc»);

Пожалуйста, подскажите.
воспользовалась вашим кодом. Документ находит. Закладки документа находит. Но почему то не заполняет нужными реквизитами. То есть закладки fio и nom_dog остаются пустыми. Буду очень благодарна за помощь.

Сократил код по минимуму, попробовал на 2016 Word-е.

Ворд=СоздатьОбъект(«Word.Application»);
Ворд.Visible=1;
ДокВорд=Ворд.documents;
ТекДокВорд=ДокВорд.Open(«e:dog.dotx»);
Содержание=ТекДокВорд.Content;
Содержание.Find.Execute(«[ФИО]»,0,0. «Иванов»,2);
ТекДокВорд.SaveAs(«e:dog.doc»);

Всё отработало как положено, было [ФИО], стало Иванов
Попробуйте ещё раз, только имя диска поправьте.

P.S. Это код не для использования закладок, а обычная автозамена текста.
Чтобы исключить случайные замены — текст взят в квадратные скобки.

А если нужно вывести таблицу в договоре каков алгоритм?

Тогда надо смотреть вот сюда 🙂

Я сам с заполнением таблиц не работал, не было таких задач.

Как сделать цикл чтобы печатал по шаблону заявления сотрудников из списка

Собственно, точно также, всю конструкцию поместить в цикл по сотрудникам.

Создание объекта Word > заполнение > печать или сохранение > закрытие.

Если сотрудников не пара тысяч — проблем быть не должно.

день добрый. Помогите «чайнику», никак не подставляются нужные значения. Что не так?

Ворд=СоздатьОбъект(«Word.Application»);
Ворд.Visible=1;
ДокВорд=Ворд.documents;
ТекДокВорд=ДокВорд.Open(СокрЛП(«C:UsersгмгDesktop»+»договор.dotm»)); //путь к шаблону (dot)
Содержание=ТекДокВорд.Content;
//вариант1
Содержание.Find.Execute(«[НомерДок]»,0,0. Строка(СокрЛП(Код)),2);
Содержание=ТекДокВорд.Content; // это каждый раз!
//вариант2
Содержание.Find.Execute(«[ФИО]»,0,0. «иванов вася»,2);
ТекДокВорд.SaveAs(«C:UsersгмгDesktop»+»договор1.doc»);

Нужно шаблон договора заполнить нужными реквизитами.

Решено!
В шаблоне не ставил квадратные скобки. Все работает. Спасибо за информацию.

Я бухгалтер и нужно напечатать заявление на открытие банковской карты на каждого сотрудника. Могли бы вы прислать структуру кода при написании модуля при подборе сотрудников из списка. Всё необходимые реквизиты есть в справочнике Сотрудники.

Самый простой перебор, например — https://helpf.pro/faq7/view/303.html или https://1c77progr.ru/article/obkhod-elementov-spravochnika-pereborom

А уже внутри цикла — вставляем код, который работает с Word.

Спр = СоздатьОбъект(«Справочник.Справочник»);
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл

Ворд=СоздатьОбъект(«Word.Application»);
Ворд.Visible=1;
ДокВорд=Ворд.documents;
ТекДокВорд=ДокВорд.Open(«C:UsersКотDesktopMS_WordMS_WordШАБЛОНЫДокумент.doc»);
Содержание=ТекДокВорд.Content;

Содержание.Find.Execute(«[ФИО]»,0,0. а+в+с,2);
Содержание=ТекДокВорд.Content;
Содержание.Find.Execute(«[Фамилия]»,0,0. а,2);
Содержание=ТекДокВорд.Content;
Содержание.Find.Execute(«[Имя]»,0,0. в,2);
Содержание=ТекДокВорд.Content;
Содержание.Find.Execute(«[Отчество]»,0,0. с,2);
Содержание=ТекДокВорд.Content;

Подскажите как сделать чтобы созданный документ Word после замены переменный и сохранения закрывался, чтобы не плодить много открытых документов.Спасибо

Как сделать закрытие созданного документа чтобы начался создаваться очередной. Чтобы не закрывать потом вручную 100 с лишним заявлений.

Интернет подсказал такое решение, надо пробовать:

Ворд.Application.DisplayAlerts =-1;
Ворд.ActiveDocument.saveas(ПутькФайлу);
Ворд.Application.quit();

При переходе на следующая запись выдаёт Ошибку
ДокВорд=ворд.documents;
Поле агрегатного обьекта не обнаружено (documents)

Работа с документами Microsoft Word, Часть 1. Программное создание документа: Справочник по C#

Большинству операций, выполняемых программным способом, есть эквиваленты в пользовательском интерфейсе (UI), доступные как команды в меню и на панелях инструментов. Также существует нижележащая архитектура, обеспечивающая поддержку команд, выбираемых из UI. Всякий раз, когда вы создаете новый документ Word, он базируется на каком-либо шаблоне; расширение файлов шаблонов «.dot», а файлы документов – «.doc». Шаблон Word может содержать текст, код, стили, панели инструментов, элементы автотекста, комбинации клавиш для быстрого доступа к командам. Новый документ связывается с шаблоном и получает полный доступ к его элементам. Если вы не указываете конкретный шаблон, новый документ создается на основе стандартного шаблона «Normal.dot», который устанавливается при установке Word).

Читать еще:  Command contains unrecognized phrase keyword

Для работы с приложением Microsoft Word в .NET, используется объект Application, который является предком всех остальных объектов. Получив на него ссылку, вы можете работать с его методами и свойствами. Этот объект предоставляет большой набор методов и свойств, позволяющих программным путем управлять Microsoft Word. Код инициализации нового объекта Application, представлен ниже.

Чтобы открыть существующий документ или создать новый, необходимо создать новый объект Document.

Выполняя какую-либо операцию в пользовательском интерфейсе Word (например, добавляя верхний колонтитул), вы выделяете соответствующую секцию, используя объект «Selection», определяющий текущую позицию «невидимого» курсора и применяете к ней новый параметр форматирования с использованием объекта «Range». Данный объект представляет область в документе и может включать в себя все что угодно – от пары символов, до таблиц, закладок и много другого. Вы не ограничены одним объектом «Range» – в одном документе можно определить сразу несколько таких объектов.

Чтобы добавить текст в документ, необходимо указать позицию для вставки и сам текст.

Так же вы можете применить к тексту определенный стиль.

В классе Microsoft.Office.Interop.Word.Document, присутствует коллекция «Tables», которая позволяет добавить таблицу в документ с использованием метода Add.

Для функционирования описанного выше кода, необходимо добавить к текущему проекту объектную библиотеку MS Word. Перейдите в меню «Проект» и выберете команду «Добавить ссылку» или в обозревателе решений, найдите пункт «Ссылки» и сделайте клик правой клавишей мыши по нему, из появившегося контекстного меню выберете соответствующий пункт.

В открывшемся окне «Добавить ссылку», перейдите на вкладку «COM» и выберете «Microsoft Word 14.0 Object Library» из предложенного списка библиотек.

В обозревателе решений у вас появится ссылка на данную библиотеку.

Перейдите в конструктор главной формы и добавьте из панели элементов, командную кнопку «Button». Данный элемент необходим для запуска процесса создания документа и вызов MS Word для отображения.

Сделайте двойной клик левой клавишей мыши по элементу «Button» и вы перейдете в автоматически созданный метод события «button1_Click». Добавьте в него приведенный ниже код.

Запустите ваш проект, нажав на клавиатуре, клавишу «F5». Нажмите на единственную кнопку, расположенную на главной форме вашего проекта. У вас автоматически откроется документ Microsoft Word с заполненным верхним и нижним колонтитулом, обычным и с применением стиля текстом, а так же заполненной таблицей.

10.3 Объект Application

Объект Word.Application, запуск нового экземпляра Word, события объекта Word.Application

Объект Application — это само приложение Microsoft Word. Все остальные объекты Word «вложены» в этот объект. Создать этот объект — значит запустить Word на вашем компьютере. Как правило, это нам и надо (если мы создаем в формате Word из другого приложения, например, из Access). Но не забудьте — если вы запускаете Word из другого приложения Office, то необходимо добавить в ваш проект ссылку на библиотеку Microsoft Word 11.0 Object Library.

Код на запуск Word очень прост:

Dim oWord As New Word.Application

Однако, выполнив этот код из другого приложения, вы, скорее всего, даже не заметите, что у вас что-то произошло. Причины просты:

  • по умолчанию Word запускается в скрытом окне;
  • если в нем не открыт ни один документ, он тут же и закрывается (после того, как завершается создавшая его процедура).

Сделать Word видимым очень просто:

Однако возникает вопрос: а нужно ли его делать видимым? Некоторые знакомые разработчики утверждают, что не нужно. Пусть Word работает в скрытом окне, создавая требуемый документ. Когда пользователю потребуется, он этот документ откроет. Решать вам, но я предпочитаю, чтобы Word все-таки был видимым: во-первых, сразу видны все проблемы при создании документа, а, во-вторых, пользователям почему-то очень нравится, когда у них на глазах открывается Word и начинает печатать строки, которые в противном случае пришлось бы печатать им самим.

Читать еще:  Вкладка разработчик в word 2020

Если вы работаете с Word в скрытом окне, не забудьте после выполнения необходимых действий его закрыть (иначе он так и останется в оперативной памяти, видимый только через Task Manager). Для закрытия Word нужно вызвать его метод Quit().

Чтобы Word не закрывался сам собой, в нем достаточно создать новый документ. Подробно об этом будет рассказано в следующем разделе, но самый простой вариант создания нового документа Word выглядит так:

Dim oWord As New Word.Application

Если Word уже открыт, то можно получить на него ссылку, например, при помощи такого кода:

Set oWord = GetObject(,»Word.Application»)

Однако на практике, кроме очень специальных случаев (активизация объектов OLE), такой подход по сравнению с открытием нового экземпляра Word ничего нам не дает. Наоборот, появляется дополнительный риск нечаянно испортить открытый в существующем экземпляре созданный пользователем документ или закрыть существующий экземпляр Word без сохранения пользовательских документов. Поэтому лучше создавать новый экземпляр Word.

Если же ваш код VBA выполняется в Word (то есть Word уже запущен), то объект Application создавать уже не надо. В этой ситуации он будет автоматически доступен в любой момент (чтобы в этом убедиться, достаточно впечатать в окне редактора кода Application и добавить точку). Более того, если не указано, к какому объекту относится то или иное свойство или метод, компилятор VBA в Word автоматически считает, что это свойство или метод принадлежит объекту Application. Поэтому такой код функционально одинаков:

Application.Selection.TypeText «Мой текст»

Selection.TypeText «Мой текст»

Еще один важный момент, который связан с объектом Application в Word. Для этого объекта предусмотрено большое количество удобных в использовании событий (открытие документа, выход из Word, щелчок правой кнопкой мыши, изменение документа, печать документа, сохранение документа и т.п.) Однако по умолчанию все эти события не видны. Чтобы они появились, необходимо в разделе Declarations кода формы (только формы — не модуля!) объявить объект Application с ключевым словом WithEvents, например, так:

Public WithEvents App As Word.Application

В списке объектов у нас появится новый объект App (то есть Application), для которого можно выбрать события и добавлять код в событийные процедуры точно так же, как это мы делаем для формы и элементов управления.

Работа с Word — Создание, открытие, форматирование, закрытие и сохранение

Использование Word в приложениях на Visual Basic 6 открывает широчайшие возможности для создания профессионально оформленных документов (например отчетов). Это часто необходимо при работе в фирме или на предприятии для обеспечения документооборота. Основным преимуществом использования Wordа в этом случае является то, что практически на всех компьютерах, используемых в фирмах и на предприятиях установлены Windows и пакет Microsoft Office. Поэтому подготовленные документы Word не требуют каких-либо дополнительных усилий для их просмотра, печати и редактирования. Единственное что нужно помнить, это то что работа через автоматизацию OLE (связывание и внедрение объектов) на деле оказывается довольно медленной технологией, хотя и очень полезной.

Чтобы использовать объекты Word в Visual Basic , необходимо инсталлировать сам Word. После этого вы получаете в своё распоряжение библиотеку Microsoft Word Object Library, которую нужно подключить к текущему проекту через диалоговое окно «Разработать»>>»Ссылки» (References) и указать Microsoft Word 9.0 Object Library (для Word 2000).

Два самых важных объекта Word это Word.Application и Word.Document. Они обеспечивают доступ к экземпляру приложения и документам Word.

Поэтому в раздел Generals «Общее» формы введите следующий код для объявления объектных переменных приложения Word и документа Word.

Чтобы создать новый экземпляр Word, введите такой код кнопки;

Для форматирования печатной области документа используйте данный код:

(вообще-то Word использует для всех размеров своих элементов пункты, поэтому для использования других единиц измерения, необходимо использовать встроенные функции форматирования.)

  • CentimetersToPoints(Х.ХХ) — переводит сантиметры в пункты.
  • MillimetersToPoints(X.XX) — переводит миллиметры в пункты

Для того чтобы в своём приложении не писать постоянно одно и тоже имя объекта, можно использовать оператор With.

Например код находящейся выше можно переписать так:

Читать еще:  Word работа со сносками

Если вам необходимо создать документ Word с нестандартным размером листа, то используйте данный код:

Данный код меняет ориентацию страницы (практически меняет местами значения ширины и высоты листа):

  • wdOrientLandscape — альбомная ориентация ( число 1)
  • wdOrientPortrait — книжная ориентация ( число 0)

Для сохранения документа под новым именем и в определенное место используйте данный код код:

После такого сохранения вы можете про ходу работы с документом сохранять его.

Или проверить, были ли сохранены внесенные изменения свойством Saved и если изменения не были сохранены — сохранить их;

Завершив работу с документом, вы можете закрыть сам документ методом Close и сам Word методом Quit.

Если в методах Close и Quit не использовать необязательный параметр True то Word запросит согласие пользователя (если документ не был перед этим сохранён) на закрытие документа.

Если вам необходимо оставить Word открытым, просто не используйте методы Close и Quit.

Если вам необходимо поставить пароль на документ, то используйте код:

PowerShell работа с Microsoft Word

Доброго времени суток друзья. Я уже рассказывал, как можно работать с Microsoft Excel средствами PowerShell. В данной статье мы рассмотрим работу PowerShell с Microsoft Word. Как и для Excel, чтобы получить доступ к MS Word нужно использовать COM объект. Для этого используем командлет New-Object с параметром –ComObject далее сам объект к которому хотим получить доступ, в нашем случае это Word.Application.

После создания объекта обращаемся к свойству Visible и переключаем его в TRUE чтобы видеть работу скрипта непосредственно в самом MS Word а не в фоновом режиме.

Далее необходимо создать сам документ для этого обращаемся к свойству Documents и его методу Add().

Обратимся к свойству Selection для работы с текущим документом, далее мы будем использовать его для форматирования нашего документа.

Задаем начальные настройки для документа допустим отступы со всех сторон.

Установим строчный интервал сверху и снизу.

Подготовительные работы закончены, теперь можем заполнять наш документ. Укажем что наш первый абзац будет по центру для этого воспользуемся свойством ParagraphFormat и его свойством Aligment.

Далее создаем таблицу с одной строкой и одной ячейкой которую зальем черным цветом и разместим пользовательскую картинку.

Далее переходим на новую строчку документа воспользовавшись методом TypeParagraph().

Далее установим нужные настройки для нашего заголовка.

Как видно из примера мы установили шрифт Time New Roman и размер шрифта 18, далее вставляем текст.

Для следующего текста поменяем настройки шрифта и размер и вид, а также выровняем текст по ширине документа.

Далее добавляем новый текст в наш документ.

Так как для следующего текста нам не нужен курсив, то отключаем его.

Далее создаем настройки для следующего текста, выправным его по центру и изменим цвет на темно-зеленый, а также выделим жирным.

Далее вставляем картинку в документ по центру, для этого используем свойство InlineShapes и его метод AddPicture() передав путь до картинки.

Далее отменяем центрирование и меняем цвет текста на черный.

Устанавливаем новые настройки для следующего текста.

Далее создадим таблицу с тремя столбцами в которую заполним с помощью PowerShell.

Здесь нужно отметить, что ячейки таблицы начинаются с 1. Для генерации новой строки нужно использовать свойство Rows и его метод Add(). Для удобства форматирования таблицы используем метод AutoFormat() передав число (это идентификатор шаблона форматирования таблицы). Для перехода от таблицы к обычному документу используем метод EndKey(6, 0).

Далее создаем настройки для нового текста, выровняем все по левому краю и добавим гиперссылок в наш документ.

Как вы заметили мы использовали свойство Hyperlinks и его метод Add() в который передали URL для гиперссылки.

Далее сохраняем документ (СохранитьКак) указываем путь куда будем сохранять наш файл, закрываем сам документ, закрываем само приложение MS Word.

Я постарался собрать на мой взгляд основные действия для заполнения документа – это форматирование текста, изменение размера текста, шрифта, цвета. Создание таблиц, заполнение таблицы графически и текстовым материалом, а также заливка ячейки цветом.

Вот таким способом можно создавать документы MS Word с помощью PowerShell.

Ссылка на основную публикацию
Adblock
detector