Letysite.ru

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

Word application методы 1с

Благин Константин

Программирование как созидательный процесс.

Использование шаблонов Word в 1С

Использование шаблонов Word в 1С

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

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

Создадим шаблон на основе документа Word для 1С. Сначала необходимо включить показ закладок для более удобной работы с документом:

Использование шаблонов Word в 1С

Использование шаблонов Word в 1С

Далее необходимо в файл шаблона для 1С, добавить текст и пару закладок. Закладка добавляется через меню «Вставка» — «Закладка». Нужно выделить текст закладки, скопировать его, открыть меню «Вставка — Закладка», вставить скопированный текст закладки и нажать «Добавить»:

Установка закладки, шаблон Word для 1С

В результат запуска внешней обработки 1С по формированию печатной формы на основе шаблона в виде файла Word, мы получим следующий результат:

Результат использования шаблонов Word в 1С

Информацию по методам COM объекта Word, а так же дополнительные данные можно узнать из MSDN.

Дополнение к заметке Использование шаблонов Word в 1С

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

1. А как поменять размер шрифта во вставляемом тексте?
Достаточно изменить размер шрифта закладки, в шаблоне. А вот, если необходимо динамически менять размерность, тогда:

2. Картинки есть возможность выгружать в шаблон?
Да, конечно. Примеры для C# и VB описаны по ссылке: https://msdn.microsoft.com/ru-ru/library/ms178792.aspx, а для 1С код будет следующий:

3. При выполнении кода: ОбъектВорд.Documents.Add(«C:/Шаблон.docx») (туда я поместил Ваш документ) получаю ошибку : «Ошибка при вызове метода контекста (Add)» в чем может быть причина?
Может попробовать изменить путь на: «C:Шаблон.docx».

4. Подскажите пожалуйста еще почему при сохранении макета типа active document в файл word кодом:

Я получаю вместо нормального документа вот такой http://prntscr.com/eshgjk
Предполагаю, что метод Записать( , ) по умолчанию, записывает файл в формате MXL. Попробуйте вторым параметром установить значение: ТипФайлаТабличногоДокумента.DOCX, более подробно описано в «Синтакс-помощнике».

5. У меня в документе есть ссылки на файлы которые расположены на сетевом диске. Как в шаблоне сделать гиперссылку на эти файлы?
Интересный вопрос, если попробовать сделать запись макроса и посмотреть результат, то в Visual Basic добавление гиперссылки будет выглядеть следующим образом:

Соответственно код для 1С следующий:

Навигация по записям

Использование шаблонов Word в 1С : 29 комментариев

А как поменять размер шрифта во вставляемом тексте?

  1. Благин Константин Автор записи 27.11.2016 в 16:02

Достаточно изменить размер шрифта закладки, в шаблоне. А вот, если необходимо динамически менять размерность, тогда:

Добрый день, подскажите, пожалуйста, картинки есть возможность выгружать в шаблон?

  1. Благин Константин Автор записи 30.11.2016 в 15:03

Да, конечно. Примеры для C# и VB описаны по ссылке: https://msdn.microsoft.com/ru-ru/library/ms178792.aspx, а для 1С код будет следующий:

Спасибо, будем пробовать.

Снова, здравствуйте.
Вопрос по шаблонам. Попросили перенести шаблоны, написанные в Word из ЗиК 1.0 в ЗиК 3.0.
Как я понял — не перенесутся, нужно новые писать. Поскольку, учусь, то это даже на руку. За образец решил взять Ваш и начать разбираться. Но Ваш НЕ ГРУЗИТСЯ. Пишет:
Невозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии программы.

Метод объекта не обнаружен (СведенияОВнешнейОбработке)
Кстати, когда пытаюсь загрузить шаблоны из 1.0, то пишет тоже самое.
Можете что-нибудь посоветовать?

  1. Благин Константин Автор записи 04.12.2016 в 15:29

Данная ошибка, появляется, потому что обработка создана просто как внешняя, без возможности подключения к 1С. Если вы хотите подключить какую либо обработку, в режиме «1С:Предприятие», тогда в модуле обработки необходимо вставить определенный код, более подробно описано по следующим ссылкам:
Добавление дополнительных отчетов и обработок в тонком клиенте.
Создание нового отчета или обработки
youtube: Создание внешней обработки

А насчет переноса могу посоветовать, проанализировать, как в ЗиК 1.0 производилось заполнение шаблона. Найти участки кода, которые за это отвечают, попробовать сначала перенести их во внешнюю обработку, для тестирования. Как вариант, сам шаблон можно положить в макеты (тип макета «Active document») этой обработки и уже оттуда загружать его.

Здесь есть несколько нюансов, механизм заполнения шаблонов и сами шаблоны, типовые, доработанные или самописные? Объекты которые используются для заполнения в ЗиК 1.0 могут отсутствовать в ЗиК 3.0 или иметь другое наименование. Плюс ко всему, необходимо еще учесть, что ЗиК 1.0 это обычное приложение, использующее толстый клиент, а ЗиК 3.0 управляемое приложение, использующее тонкий клиент, соответственно здесь тоже присутствует своя специфика работы.

Да и еще, в ЗиК 3.0 как мне кажется должен быть свой механизм шаблонов, к сожалению, не работал с этими конфигурациями, но вероятно там уже есть механизм аналогичный ЗиК 1.0. Так что может, будет достаточно только добавить шаблон.

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

Ваша ссылка помогла.
Добавил две функции и одну процедуру, и Ваша обработка заработала.
Свою, похоже , придётся рисовать с нуля.

При выполнении кода: ОбъектВорд.Documents.Add(«C:/Шаблон.docx») (туда я поместил Ваш документ) получаю ошибку : «Ошибка при вызове метода контекста (Add)» в чем может быть причина?

  1. Благин Константин Автор записи 05.04.2017 в 07:59

Может попробовать изменить путь на: «C:Шаблон.docx»

Помогло. Спасибо.
Подскажите пожалуйста еще почему при сохранении макета типа active document в файл word кодом:

ОбработкаОбъект = РеквизитФормыВЗначение(«Объект»);
Макет = ОбработкаОбъект.ПолучитьМакет(«ШаблонПисьмаПросрочка»);
ИмяФайла = КаталогВременныхФайлов() + «»файл.doc»;
Макет.Записать(ИмяФайла);

Я получаю вместо нормального документа вот такой http://prntscr.com/eshgjk

  1. Благин Константин Автор записи 05.04.2017 в 19:56

Предполагаю, что метод Записать( , ) по умолчанию, записывает файл в формате MXL. Попробуйте вторым параметром установить значение: ТипФайлаТабличногоДокумента.DOCX, более подробно описано в «Синтакс-помощнике».

Константин,
У меня в документе есть ссылки на файлы которые расположены на сетевом диске.
Как в шаблоне сделать гиперссылку на эти файлы?

  1. Благин Константин Автор записи 31.07.2017 в 21:27

Здравствуйте, Руслан.
Интересный вопрос, если попробовать сделать запись макроса и посмотреть результат, то в Visual Basic добавление гиперссылки будет выглядеть следующим образом:

Соответственно код для 1С следующий:

я хочу заполнить шаблон с помощью заполнения пользовательской формы. как получить значение,выбранное из списка, если тип поля СправочникСсылка.НазваниеСправочника?

  1. Благин Константин Автор записи 07.06.2018 в 19:03
Читать еще:  Ms word проверка правописания

Предполагаю заполнение производите на стороне клиента, тогда можете сразу обратиться к элементу формы или объекта.

Здравствуйте. Попросили обновить шаблоны договоров для печати. Обновила, но теперь при печати выводит ошибку, что не удалось сформировать элемент управления ActiveX. С чем это может быть связано?

  1. Благин Константин Автор записи 28.06.2018 в 11:30

Ирина, для ответа необходима дополнительная информация:
1. Какая конфигурация используется?
2. Каким образом происходило обновление шаблонов?
3. Ошибка выходит при формировании документа на основе данных и шаблона или при отправке на печать?

Доброго дня. Прошу помочь с задачей вставки в документ Word, ранее записанного файла HTML (из 1С сохранил на диск, браузером файл открывается нормально — отображается НЕ как текст)., а в документе Word формируется как текст не конвертированный.
Вставляю так
Word = ПечатнаяФорма.COMСоединение;
Select = Word.Selection;
Docum = Word.Application.Documents(1);
Select.InsertFile(«C:Temp1.html»);

  1. Благин Константин Автор записи 19.07.2019 в 13:32

В данный момент не пользуюсь Office, попробуйте использовать Selection.PasteAndFormat как было подсказано здесь: https://toster.ru/q/164995

Добрый день. Все бы хорошо, но, как сделать не обработку а печатную форму?
Я сделал внешнюю печатную форму с шаблоном типа Active Document, добавил пока одну закладку на пробу, подключил, чтобы при нажатии кнопки «Печать» из справочника «договоры» выполнялось. Открывается Word, все работает, но, в базе возникает окно где написано : Печать. Печатная форма недоступна. Как сделать чтобы окно не вылезало? Обработка не подходит потому что она не падает в меню кнопки «Печать»

  1. Благин Константин Автор записи 08.09.2019 в 11:48

1. Конфигурация какая?
2. Нужен скриншот ошибки.
3. Нужен код модуля для анализа.

Скажите пожалуйста а можно шаблон word в обработку вставить, чтобы он в конфигурации был

  1. Благин Константин Автор записи 02.12.2019 в 20:54

Добрый день, подскажите, пожалуйста, как сделать так, чтобы подобный документ создавался при нажатии на кнопку на форме . Я создала команду «Документ», но не понимаю, что нужно вписать в ее обработчик. У меня имеется документ «ПриемНаРаботу» в виде списка, я заполняю форму (фио, паспорт, должность, оклад). А после могу нажать на кнопку «Документ», чтобы увидеть тот самый шаблон word.Как это можно сделать?

  1. Благин Константин Автор записи 15.12.2019 в 14:07

Ирина, вы можете воспользоватся примером из обработки, ссылку на которую находится внизу заметки.
1. Подготовить шаблон Word, расставив в нем закладки;
2. В код команды добавить заполнение файла и его вывод.

Добрый день, а как можно вставить в колонтитул на разных листах в ворде номера бланков взятых из 1С( 1 лист бланк — №0089 ,2 лист бланк — №0090 и …)

  1. Благин Константин Автор записи 02.02.2020 в 14:46

https://infostart.ru/public/488556/
Цитата:
Каждая страница Word разделена на несколько областей:

Верхний колонтитул
Основной текст
Нижний колонтитул
Нужно заметить, что в каждом разделе может быть уникальный колонтитул для первой страницы.

Word SaveAs 1c

Добрый день!
Подскажите как сохранить шаблон word. У меня ругается на SaveAs

Не работает SaveAs для Word 2013
Уважаемые, подскажите пожалуйста, с чем может быть связана проблема и как решить? При вызове.

Microsoft.Interop.Word.Document.SaveAs. Неверное сохранение
Создаю новый документ .docх и пытаюсь сохранить в папке. Но файл сохраняется в папке на один.

Сохранение SaveAs
Подскажите, пожалуйста, как осуществить следующее: необходимо сохранить данные в новый файл excel.

Ошибка на saveas
procedure TForm1.MenuItem6Click(Sender: TObject); begin if filework=» then Saveas else .

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

Перед процедурой у тебя написано &НаСервере, меняй это на &НаКлиенте. Повалятся ошибки, такие как обращение к константе например и начинай их исправлять потихоньку.

Модуле формы. Процедура срабатывает при нажатии кнопки

Попробуй так прописать

dggrom, выдаёт ошибку Поле объекта не обнаружено (Documents)
Докум.Documents.SaveAs(ИмяФайла);

Добавлено через 2 минуты
Yulunga, Я же писал что диск есть, права есть

Yulunga, у него метод записи самой не видет.

Ermak27, что за конфигурация, какие формы, управляемые или нет ?

по мне так проблема в этом:
Докум=Word.
Word=Докум;
Докум=Word.

запутал с какой-то целью. поэтому и нет там сейвас, что применяется не к тому к чему надо. чехарда. имена переменных закончились?

Yulunga, как мне мой код поправить?
Мне нужно чтобы два значение выводились на страницу.
Например: Страницу ворда я делю по пополам, получается при печати А5. Т.е есть в ТЗ 4 значение, то вордовский документ должен вывести две страницы, на каждой странице два значения. Приложил картинку.

Код который в самом начале, он так и выводит как надо, но встала задача сохранить эти вордовские документы по индексу, вот тут проблема и появилась у меня. Вчера я переделал немного код
Создал форму с типом ActiveDocument. Написал код который сохраняет мне вордовские документы но значение заносит в каждый лист, а мне нужно два значения на лист.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Метод SaveAs в Excel
Всем доброго времени суток.Помогите разобраться с методом SaveAs Есть,ну назовем ее,небольшая.

Lazarus MsWord SaveAs Error
Всем Доброго вечера. Уже 2 дня мучаюсь непонимаю что не так, не получается в lazarus-е сохранить.

Сохранение XL.ActiveWorkBook.SaveAs(buf);
Почему файл не сохраняется в папке в которой находится exe файл? В папке в которой хранится exe.

SaveAS excel-файл на странице
привет всем на странице создаётся таблица с выбранными данными из базы данных, теперь требуется.

Объект Word Application — методы

В этой статье мы рассмотрим методы объекта Word Application, методов довольно много. В большинстве случаев данные методы представляют только теоретический интерес, так как не дают возможности создавать сам документ Word.

В статье я не буду приводить примеров кода, так как по сути, нечего показывать, вы и сами с легкостью сможете написть небольшой скрипт на языке VBScript или JScript, или просто добавить макрос в редактор VBA, и просмотреть, как работают Word Application методы.

Объект Word Application — Методы

Activate () — Активизирует указанный объект.

BuildKeyCode (Arg1, Arg2, Arg3, Arg4) — Возвращает уникальный номер для указанной комбинации клавиш. Обязательнм является только первый параметр (Arg1). Все параметры содержат значение константы WdKey.

KeyString (KeyCode, KeyCode2) — Возвращает строку комбинаций клавиш для указанных ключей, которые содержат значения константы WdKey (например, Ctrl + Shift + A). Обязательным является только первый параметр.

ChangeFileOpenDirectory (Path) — Устанавливает каталог, к которому Word будет обращаться при работе с документами. По умолчанию таким каталогом является “Мои документы”.

CheckGrammar (Str) — Проверяет строку на предмет грамматических ошибок. Вернет True, если строка не содержит ошибок. Word Application методы.

CheckSpelling (Str) — Проверяет строку на предмет орфографических ошибок. Вернет True, если строка не содержит ошибок.

CleanString (Str) — Удаляет непечатаемые символы (коды символов 1 — 29) и специальные символы из заданной строки или заменяет их пробелами (символ кода 32). Возвращает результат в виде обработанной строки.

GoBack () — Перемещение курсора назад по последним трем позициям, в которых происходило редактирование (аналогично нажатию Shift + F5), Word Application методы

GoForward () — Перемещение курсора вперед по последним трем позициям, в которых происходило редактирование.

Help (HelpType) – Метод Word Application отображает установленную информацию справки.

HelpType – Определяет параметры показа, содержит значение константы WdHelpType:

  • WdHelp — 0 — Отображает диалоговое окно справки.
  • wdHelpAbout — 1 — Отображает диалоговое окно «О программе Microsoft Word».
  • wdHelpActiveWindow — 2 — Отображение справку, описывающую команду, связанную с активным просмотром или панелью.
  • wdHelpContents — 3 — Отображает диалоговое окно справки.
  • wdHelpExamplesAndDemos — 4 — Отображает «Примеры и демонстрации».
  • wdHelpIndex — 5 — Отображает диалоговое окно справки.
  • wdHelpKeyboard — 6 — Отображает справку по сочитаниям клавиш.
  • wdHelpPSSHelp — 7 — Отображает информацию о поддержке продукта.
  • wdHelpQuickPreview — 8 — Отображает быстрый просмотр.
  • wdHelpSearch — 9 — Отображает диалоговое окно справки.
  • wdHelpUsingHelp — 10 — Отображение список разделов справки, которые описывают, как использовать Справку.
  • wdHelpIchitaro — 11 — Открывает файл справки для пользователей Ichitaro.
  • wdHelpPE2 — 12 — Показывает справку по IBM Personal Editor 2.
  • wdHelpHWP — 13 — Открывает файл справки для пользователей AreA хангыль.

ListCommands (ListAllCommands) — Создает новый документ, а затем вставляет в него таблицу, содержащую сочетания клавиш и описания методов.

ListAllCommands – Параметр содержит логическое значение, true – все команды, false – только основные команды.

Move (Left, Top) – Позиция окна задач или активного документа. Параметры определяют горизонтальную и вертикальную позицию. Word Application методы

NewWindow () — Открывает новое окно для текущего документа. Возвращает объект Window.

ShowClipboard () — Отображает Буфер обмена.

SubstituteFont (UnavailableFont, SubstituteFont) — Устанавливает варианты отображения шрифта.

UnavailableFont — Название шрифта, недоступного на вашем компьютере, который вы хотите сопоставить с другим шрифтом для отображения и печати.

SubstituteFont — Название шрифта, доступного на вашем компьютере, который вы хотите заменить недоступным шрифтом.

Quit (SaveChanges, OriginalFormat, RouteDocument) — выход Microsoft Word и, возможно, сохраняет или маршруты открытые документы.

SaveChanges — Определяет, сохранять ли сделанные изменения в документе. Значение константы WdSaveOptions:

  • wdDoNotSaveChanges — 0 — Не сохранять сделанные изменения.
  • wdPromptToSaveChanges — 2 — Запросить у пользователя, чтобы сохранить внесенные изменения.
  • wdSaveChanges — 1 — Сохранить сделанные изменения автоматически без запроса пользователя.

OriginalFormat – Определяет параметры сохранения. Значения константы WdOriginalFormat:

  • wdOriginalDocumentFormat — 1 — Оригинальный формат документа.
  • wdPromptUser — 2 – Пользователю будет предложено выбрать формат документа.
  • wdWordDocument — 0 – Формат документа Microsoft Word.

RouteDocument — True, чтобы направить документ на следующего получателя. Если документ не имеет маршрутизации, то аргумент игнорируется, Word Application методы.

ResetIgnoreAll () – снимает метку со всех фрагментов текста, которые помечены как «без проверки» в процессе проверки орфографии.

Resize (Width, Height) — Размеры окна приложения Word или указанного окна задач. Параметры определяют ширину и высоту окна.

Run (MacroName, varg1, … , varg30) – запуск указанного макроса Visual Basic. Обязательный только первый параметр.

MacroName — Имя макроса.

varg1 . varg30 – До 30 параметров, передаваемых макросу.

ScreenRefresh () – Метод включает обновление экрана в течении одной команды

KeyBoard (code) – Переключение раскладки клавиатуры, в качестве параметра (code) передается целое значение (например, 1033 – для русского языка, 1049 – для английского языка). Если вызвать метод без параметров, то будет возвращено текущее значение раскладки клавиатуры. Word Application метод.

OnTime (When, Name, Tolerance) – Устанавливает таймер для запуска макроса в указанное время.

When — Время, в которое нужно запустить макрос. Можно прописать строкой (“15:30”) или использовать функции работы со временем.

Name — Имя макроса.

Tolerance – Дополнительный параметр. Задает максимальное время в секундах, которое может пройти, прежде чем мкрос, который не успел запуститься будет отменен.

Следующие Word Application методы отвечают за преобразование измерительных величин.

CentimetersToPoints (Centimeters) — Преобразует сантиметры в пункты (1 см = 28,35 пункта).

InchesToPoints (Inches) — Преобразует дюймы в пункты (1 дюйм = 72 пункта).

LinesToPoints (Lines) — Преобразует линии в пункты (1 линия = 12 пунктов).

MillimetersToPoints (Millimeters) — Преобразует миллиметры в пункты (1 мм = 2,85 пункта).

PicasToPoints (Picas) — Преобразует пики в пункты (1 пик = 12 пунктов).

PixelsToPoints (Pixels, fVertical) — Преобразует пиксели в пункты.

fVertical – Дополнительный параметр, True – по вертикали, False – по горизонтали.

PointsToCentimeters (Points) — Преобразует пункты в сантиметры.

PointsToInches (Points) — Преобразует пункты в дюймы.

PointsToLines (Points) — Преобразует пункты в линии.

PointsToMillimeters (Points) — Преобразует пункты в миллиметры.

PointsToPicas (Points) — Преобразует пункты в пики.

PointsToPixels (Points, fVertical) — Преобразует пункты в пиксели.

События для Word Application — VBA

Объект Word Application предоставляет в распоряжение довольно много событий, но… изначально к ним нет доступа в редакторе VBA. Второй проблемой является то, что события Word Application VBA нельзя использовать в сценариях Windows Script Host, ну я такой лазейки не нашел.

Что бы появилась возможность работать с событиями данного класса в редакторе VBA, надо выполнить следующие действия:

  • Создаем новый модуль класса, для этого в меню Insert выберите пункт Class Module.
  • В окне редактора для созданного модуля пишем код:

Все, теперь в редакторе кода в окне объектов появится объект App, который и предоставляет возможность работать с событиями Word Application в VBA.

Знаю, знаю, статья получилась довольно сухая – практически нет примеров Но ничего, в следующей статье мы быстренько пробежимся по некоторым свойствам, а потом еще попытаемся осилить коллекцию Documents и класс Document, без которых просто невозможно двигаться дальше.

Спасибо за внимание. Автор блога Владимир Баталий

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

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

Для работы с приложением 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 с заполненным верхним и нижним колонтитулом, обычным и с применением стиля текстом, а так же заполненной таблицей.

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)

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