Ошибка при вызове метода контекста add word

   livingstone

08.07.15 — 15:36

Добрый день.

Платформа 8.3. Конфигурация — Документооборот. База серверная.

Проблема следующая:

При выполнении команды «Док = WordApp.Documents.Add(ПутьКФайлуНаДиске);» выводится сообщение «Ошибка при вызове метода контекста (Add), Произошла исключительная ситуация (Microsoft Word): Ошибка в Word.»

Если этот кусок кода будет выполнятся на клиенте, то все отрабатывается нормально. Ошибка только на сервере.

ПутьКФайлуНаДиске = локальный С:Юсерзс…., сетевой не пробовал, думаю проблема не в этом.

Сервер 1с установлен там же.

Подскажите пожалуйста, в чем может быть проблема.

   Лефмихалыч

1 — 08.07.15 — 15:50

на сервер ворд установи

   livingstone

2 — 08.07.15 — 15:53

Ворд установлен.

   Мыш

3 — 08.07.15 — 15:55

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

   Лефмихалыч

4 — 08.07.15 — 15:55

значит обеспечь, чтобы файл лежал на сервере вот тут «С:Юсерзс….» до вызова Add

   livingstone

5 — 08.07.15 — 15:58

Файл там точно есть. Не думаю, что проблема с правами, так как с клиента ведь все срабатывает.

   Fish

6 — 08.07.15 — 15:59

(5) С клиента ты обращаешься к файлу под другим пользователем.

   Лефмихалыч

7 — 08.07.15 — 15:59

(5) отладчик не предлагать?

   Мыш

8 — 08.07.15 — 15:59

(6) Товарищ «не думает». Так шта не мешайте.

   livingstone

9 — 08.07.15 — 16:03

Процедура

1. Копирую некий файл вордовский в С:Юзерс. (т.е. права явно есть)

2. WordApp = Новый COMОбъект(«Word.Application»)

   Док = WordApp.Documents.Add(ПутьКФайлуНаДиске);

КонецПроцедуры

(7) отладчиком уже все по несколько раз проходил.

   Лефмихалыч

10 — 08.07.15 — 16:05

(9) ты на клиентской машине в С:Юзерс копируешь?

   Fish

11 — 08.07.15 — 16:05

(8) Типа: «а что тут думать, прыгать надо»? :))

   livingstone

12 — 08.07.15 — 16:07

(10) нет, на сервере.

т.е. С:Юзерс — это каталог сервера.

   Fish

13 — 08.07.15 — 16:12

(12) Читай (3) и (6) ещё раз.

   hhhh

14 — 08.07.15 — 16:21

(12) там users…

   yukon

15 — 08.07.15 — 16:47

Вопросы серверной автоматизации Office

https://support.microsoft.com/kb/257757

Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.

   livingstone

16 — 09.07.15 — 07:50

(13) Проблема не в правах, права на каталог назначены. К тому же, если были бы проблемы с правами, серверный метод не смог бы даже скопировать файл в каталог. В (9) я описал суть метода. Ошибка возникает с «Док = WordApp.Documents.Add(ПутьКФайлуНаДиске);». Видимо проблема с самим вордом. Но тогда непонятно, почему с клиента проблемы не возникает.

   Dmitri888

17 — 09.07.15 — 09:03

А word х32 или х64?

   Krolik Bezobraznik

18 — 09.07.15 — 09:09

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

Сам недавно столкнулся, у меня фоновое задание обращается в файлу на диске, процедура в серверном модуле. После того как дал доступ, все заработало.

   Dmitri888

19 — 09.07.15 — 09:14

17+ И какой сервер установлен 32 или 64?

   Krolik Bezobraznik

20 — 09.07.15 — 09:18

(0) Проверьте доступ к папке. В вашем серверном модуле сделайте функцию с кодом

Функция ПроверитьДоступКПапке(Путь)

    
    КаталогНаДиске = Новый Файл(Путь);

    
    Возврат КаталогНаДиске.Существует();

    
КонецФункции

Посмотрите, что она вам вернет, если ЛОЖЬ, а пака есть, то делайте как я написал в (18)

   drcrasher

21 — 09.07.15 — 09:36

Копипаста:

При работе с Excel на сервере ОБЯЗАТЕЛЬНО!!! создать папку C:WindowsSysWOW64configsystemprofileDesktop или C:WindowsSystem32configsystemprofileDesktop (в зависимости от разрядности вашей системы).

  

livingstone

22 — 10.07.15 — 12:25

Вобщем сделал как в (21). Теперь все работает. Всем большое спасибо.

Сразу скажу — на файловой базе в Windows 7 этот код работает корректно. Итак, есть: W2016Server + сервер приложений 8.3.10.2580 + самописный документ, в котором есть строчка ДокументВорд = ОбъектВорд.Documents.Add(ИмяФайлаПаспортаЗаявки); Сразу говорю — файл я проверял вот так: Тест = Новый Файл(«c: emp_pm est.docx»); Если Тест.Существует Тогда — он существует, и сервер его может прочитать. С правами доступа к папкам всё ОК. На сервере установлен Office 2013 (причем я ставил и 32-битный, и 64-битный), COM-компонент ручками зарегистрировал, поэтому строчка ОбъектВорд = Новый COMОбъект(«Word.Application»); теперь выполняется без ошибок. В отладчике объект виден. Так вот, спотыкаемся на строчке ДокументВорд = ОбъектВорд.Documents.Add(ИмяФайлаПаспортаЗаявки); Если файл имеет расширение DOC — ошибка такая: {Документ.дкЗаявкаНаПроект.МодульОбъекта}: Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Microsoft Word): Ошибка в Word. Если файл имеет расширение DOCХ — ошибка чуть другая: {Документ.дкЗаявкаНаПроект.МодульОбъекта}: Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Microsoft Word): Приложению Word не удалось прочитать документ. Возможно, он поврежден. Попробуйте выполнить следующие действия: * Откройте файл с помощью команды »Открыть и восстановить». * Откройте файл с помощью конвертера резервных копий. Я уже в отчаянии, целый день мучаюсь. Сборки Офиса 2013 — от Кролика, с самыми последними обновлениями, сами понимаете, это бренд, здесь всё пучком. (На Win7 с файловой базой, где всё работает — такая же). Майкрософту я доверяю меньше, но завтра-таки попробую поставить c оригинального образа RTM. Интуиция подсказывает, что не взлетит. Подскажите, что ещё можно попробовать проверить?

А если попробовать зайти на сервер и вручную открыть данный файл? Открывается нормально и содержимое отображает?

[Сборки Офиса 2013 — от Кролика, с самыми последними обновлениями, сами понимаете, это бренд, здесь всё пучком. (На Win7 с файловой базой, где всё работает — такая же). Майкрософту я доверяю меньше, но завтра-таки попробую поставить c оригинального образа RTM] Достаточно спорное утверждение. Я бы больше доверял оригинальному дистрибутиву, чем какой-то сборке, из которой вполне могли повыкидывать «ненужные» вещи.

попробуйте другую папку. c: emp_pm  — очень сомнительное место, вряд ли там откроет файл ворд.

конечно, открывает и отображает :) Я же не первый день замужем. И даже ЗапуститьПриложение(ИмяФайла), я уверен, будет работать. и папка эта — не первая, до неё я использовал подкаталог во временной папке (пробовал разные). Разумеется, права доступа — всем на всё. Ещё раз повторю, что на локальном компьютере с W7 при такой же структуре папок и том же дистрибутиве Офиса (только без сервера приложений) всё работает. Мне кажется, подвох в Windows 2016. Другой вариант — в сервере приложений. Третьего не дано.

Подвох возможно кроется в битности офиса, 1С. Допустим офис 64x, а 1С 32x и наоборот.

нафиг вам этот офис вообще уперся. распаковал, засунул в xml чо хочешь, запаковал и все дела. быстро, дешево и сердито.

Курить «профиль безопасности» в программе «Администрирование серверов 1С Предприятия». По умолчанию использование COM на сервере 1С запрещено. Не советую работать с вордом екселем и тд. на сервере. Зависнет ворд вместе с ним 1с сеанс, что будете делать?

попробуйте написать сценарий и из него управлять вордлм,а уже этот сценарий запустите из 1ц,если что-то пойдет не так можно убить сценарий и ворд из самой 1с а сервер,кстати,обычно 64-битный

Зачем такой изврат, можно просто фоновым заданием, мне кажется.

Подвохов там масса. Начиная от того под кем выполняется. Если ушло на сервер значит выполняется под серверным userV8 значит у него должен быть доступ к dcom объекту. Лезешь в dcom офиса и выдаешь ему там все права. Но лучше сделать по другому. docx это упакованные в zip xml. на просторах интернета есть уже готовый код. Также реализацию и можно посмотреть в 1С Договорчики. Фактически docx распаковывается, в нужном xml правится, пакуется обратно. Сам понимаешь никаких проблем с COM и офис не нужен.

#11
by Dmitriy_Kolesnikov

изначально офис был 32-битный и была ошибка при создании ком-объекта: ОбъектВорд = Новый COMОбъект(«Word.Application»); Но я вручную создал коннектор (по инструкции), и ошибка исчезла. Более того, как сказано в , я снес 32-битный Офис и поставил 64-битный — это ничего не изменило. а ссылку? У меня 15 файлов, часть в DOCX, часть в HTML, надо все их упихать в один. Я делаю это с помощью метода InsertFile. Благодарю, сейчас почитаю про эти профили. Похоже, собака зарыта именно здесь. пользователю usr1cv8 уже выданы везде все права, в том числе в COM+. Насчет XML и ZIP — это интересно, но на будущее. Я уже написал код, который быстро работает на файловой базе. Теперь задача — заставить его выполняться на сервере.

«а ссылку?» я писал про XML и ZIP

В самом объекте dcom дал права? Администрирование ? Службы компонентов ? *** ? Настройка DCOM ? Документ Microsoft Word 97–2003 ? безопасность.

Сборки Офиса 2013 — от Кролика, с самыми последними обновлениями, сами понимаете, это бренд Кто все эти люди?

#16
by Dmitriy_Kolesnikov

конечно весьма уважаемые люди. Робин Гуды наших дней. руководствуясь вашей логикой, уголовниками можно обозвать 99,9% граждан России, пользующихся компьютерами.

показывай что у тебя между: ОбъектВорд = Новый COMОбъект(«Word.Application»); ДокументВорд = ОбъектВорд.Documents.Add(ИмяФайлаПаспортаЗаявки);

Тэги: Админ

Комментарии доступны только авторизированным пользователям

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

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

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

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

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

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

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

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

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

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

Когда файл шаблона Word готов, создаем новую внешнею обработку в 1С, добавляем форму и в модуле формы вставляем следующий код:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ЗаполнитьШаблонВорд();
	
КонецПроцедуры

&НаКлиенте
Функция ЗаполнитьШаблонВорд()

	//Попытка создать COM объект
	Попытка
		ОбъектВорд = Новый COMОбъект("Word.Application"); 
	Исключение
		Сообщить("Ошибка при запуске Microsoft Word: " + ОписаниеОшибки(), СтатусСообщения.Внимание);
		Возврат Неопределено;
	КонецПопытки;
	
	//Путь к шаблону
	ОбъектВорд.Documents.Add("C:UsersКонстантинDesktopШаблон.docx");
	ШаблонВорд = ОбъектВорд.ActiveDocument;
	
	//Получаем все закладки из шаблона
	Для каждого ЗакладкаВорд Из ШаблонВорд.Bookmarks Цикл
		Сообщить(ЗакладкаВорд.Name);		
	КонецЦикла;
	
	//Заменяем закладку1 на текст
	ШаблонВорд.Bookmarks("Закладка1").Select();
	ШаблонВорд.Application.Selection.TypeText("Текст для закладки №1.");
	
	//Заменяем закладку2 на текст
	ШаблонВорд.Bookmarks("Закладка2").Select();
	ШаблонВорд.Application.Selection.TypeText("Текст для закладки №2.");
	
	//Заменяем закладку3 на текущую дату
	ШаблонВорд.Bookmarks("Закладка3").Select();
	ШаблонВорд.Application.Selection.TypeText(ТекущаяДата());
	
	ОбъектВорд.Application.Visible = Истина;
	ОбъектВорд.Activate();
	
	//Закрытие документа
	//ОбъектВорд.Application.Quit();
	
КонецФункции

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

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

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

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

Скачать файл обработки 1С и шаблона Word.

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

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

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

//Заменяем закладку3 на текущую дату
ШаблонВорд.Bookmarks("Закладка3").Select();

ШаблонВорд.Application.Selection.Font.Bold = 1;
ШаблонВорд.Application.Selection.Font.Size = 20;
	
ШаблонВорд.Application.Selection.TypeText(ТекущаяДата());

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

// Вставка изображения
ШаблонВорд.Bookmarks("Закладка3").Select();
ШаблонВорд.Application.Selection.InlineShapes.AddPicture("C:UsersКонстантинDesktoplogo_1c.png");

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

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

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

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

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

Sub Макрос1()
'
' Макрос1 Макрос
'
'
    Selection.MoveLeft Unit:=wdCharacter, Count:=15, Extend:=wdExtend
    ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
        "C:UsersКонстантинDesktopТест.txt", SubAddress:="", ScreenTip:="", _
        TextToDisplay:="ТестоваяСсылка"
End Sub

Описание метода добавления в MSDN: https://msdn.microsoft.com/en-us/vba/word-vba/articles/hyperlinks-add-method-word

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

Функция ЗаполнитьШаблонВорд()

	//Попытка создать COM объект
	Попытка
		ОбъектВорд = Новый COMОбъект("Word.Application"); 
	Исключение
		Сообщить("Ошибка при запуске Microsoft Word: " + ОписаниеОшибки(), СтатусСообщения.Внимание);
		Возврат Неопределено;
	КонецПопытки;
	
	//Путь к шаблону
	ОбъектВорд.Documents.Add("C:Usersk.blaginDesktopШаблон.docx");
	ШаблонВорд = ОбъектВорд.ActiveDocument;
	
	//Получаем все ссылки из шаблона
	Для каждого ЗакладкаВорд Из ШаблонВорд.Hyperlinks Цикл
		Сообщить(ЗакладкаВорд.Name);		
	КонецЦикла;
	
	//Меняем адрес уже существующей ссылки
	ШаблонВорд.Hyperlinks("Logs.zip").Address = "C:Usersk.blaginDesktopMemory.zip";
	
	//Заменяем закладку на ссылку
	ОбъектЗакладка = ШаблонВорд.Bookmarks("Закладка3");
	ШаблонВорд.Hyperlinks.Add(ОбъектЗакладка.Range, "C:Usersk.blaginDesktopШаблон.docx", "", "Шаблон.docx", "C:Usersk.blaginDesktopШаблон.docx");
	
	ОбъектВорд.Application.Visible = Истина;
	ОбъектВорд.Activate();
	
	//Закрытие документа
	//ОбъектВорд.Application.Quit();
	
КонецФункции

Как распечатать word подставив параметры из 1С ?

Ссори что поднимаю старую тему, но как Вы решили (если решили конечно) проблему с тем, что документ ооочень долго открывается. Например, если делаею макет ActiveDocument, а затем

Одинаково доооолго работает.

Если необходимо вывести сразу на принтер

MSWord.Application.Visible = Ложь; //не показываем документ
MSWord.Activate(); // активизируем
Если ПечататьНаПринтер Тогда
MSWord.Application.PrintOut(); // отправляем на принтер
КонецЕсли;

Есть договор на много страниц. Необоходимо его печатать из 1С, подставив необходимые параметры (реквизиты итд)

В 1С можно добавить макет типа active document и тогда происходит вставка документа со всем форматированием.

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

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

Как решить задачу с распечаткой ворда подскажите пожалуйста ?

Боюсь я неточно сформулировал тему.

Мне нужно сделать ОБЫЧНЫЙ макет в 1С. С областями, параметрами, шаблонами.. . Только не с ексель — а с ворд форматом.

Самое windows приложение Word мне вообще запускать не надо. Вся работа изнутри 1С должна идти.

Только в 1С нет макета типа word. А если копируешь в ексельный макет вордовский документ, то теряется все форматирование при этом.
Очень неудобно

(1) Да и вообще, поиск много интересного выдает.

Как сформировать новый договор на основании файла Microsoft Word?

// Получить объект из макета.
MSWord = Договор.Получить();
НаименованиеКонтрагента = «ООО Торгуем всем»;

Попытка
Документ = MSWord.Application.Documents(1);
Документ.Activate();

// Получить объект, который будем использовать для поиска и замены.
Замена = Документ.Content.Find;

// Заменить заранее определенные ключевые конструкции на требуемый текст.
Замена.Execute(» «, Ложь, Истина, Ложь, , , Истина, ,

// Далее аналогично для остальных ключевых конструкций.

// Делаем видимым приложение и активизируем его.
MSWord.Application.Visible = Истина;
MSWord.Activate();

// Если произойдет ошибка выводятся данные об ошибке и объект закрывается.
Сообщить(ОписаниеОшибки());
MSWord.Application.Quit();

1. Создаешь бланк договора в MS Word.
2. Отмечаешь те места, которые будут меняться, специальными словами, например, в коде выше — это текст » «. Т. е. там, где должно быть название компании вставляешь текст » «. (Или, как предложил в (2) noblekey, используешь для этого экспресс-блоки).
3. Подгружаешь этот макет в базу в режиме 1С:Предприятия в какой-либо реквизит типа ХранилищеЗначения. Или добавляешь в конфигураторе в виде макета с типом ДвоичныеДанные.
4. При печати вытаскиваешь макет из хранилища значения:

Или, в случае с полями, как предложил noblekey:

(5) Спасибо метод работает. Но )

Очень долго открывается почему-то — 54 секунды ) Юзеры не будут ждать.

В документе 8 страниц. не так уж и много вроде. Странно может что-то не так делаю ? Вот гляньте на строчке именно номер 2 он виснет на минуту.

1) АктивныйДокумент = ПолучитьМакет(«МакетДоговор»);
2) MSWord = АктивныйДокумент.Получить();

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

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

Использование шаблонов 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

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

Здравствуйте. Попросили обновить шаблоны договоров для печати. Обновила, но теперь при печати выводит ошибку, что не удалось сформировать элемент управления 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 по любому шаблону

Формирование и заполнение документов Microsoft Word ЛЮБОГО шаблона на основании документов и справочников системы. Любые документы и справочники 1С. Заполнение по реквизитам шапки и табличной части.

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

Принцип работы обработки следующий:

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

Подготовка шаблона Word

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

Из него будем формировать полноценную спецификацию. Начинаем с того, что вставляем закладки в тех местах, где необходимо подставлять информацию из базы:

В наименовании закладок нельзя использовать пробелы.

При печати также будем заполнять таблицу товаров. Чтобы она сформировалась красиво, оставим шапку и одну пустую строку:

Сохраняем Word, закрываем.

Настройка заполнения шаблона

Теперь в программе открываем журнал документов продажи, заходим в меню печати и жмем кнопку для настройки печати по шаблону Word:

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

В открывшемся окне настроек первым делом создадим новый файл в программе (имеется в виду элемент справочника Файлы) и привяжем к нему наш Word:

В открывшемся окне выбираем Добавить файл:

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

В качестве источника используются реквизиты самого документа продажи, а также производные от этих реквизитов:

При печати можно использовать также дополнительные реквизиты справочников и документов.

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

В результате выбора источника таблица примет следующий вид:

Для значения к строках таблицы доступно склонение по падежам, а также сокращение ФИО:

Для печати таблицы в Word выберем исходную таблицу документа:

После выбора таблицы появляется справка с именами тех реквизитов, которые можно использовать для вывода таблицы в Word. Нам остается перечислить нужные реквизиты через запятую (в порядке следования колонок файла). Допускается оставлять пустое значение в колонке или писать туда произвольный текст:

В конце обязательно нажимаем Сохранить шаблон.

Все ОК, теперь можем печатать нужный Word.

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

Можем печатать как один документ, так и список:

На форме настроек печати помимо создания новых шаблонов можно редактировать имеющиеся:

В том случае, если для объекта настроено несколько шаблонов Word, то при выборе команды печати откроется окно с выбором нужного:

Во избежание коллизий с правами доступа пользователей к справочнику Файлы вам необходимо установить помимо самой обработки печати в Word еще и расширение для 1С (находится в одном архиве с обработкой), которое предоставит пользователям доступ на чтение справочника.

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

Релиз 1.1.2.2 от 15.12.2018

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

Теперь можно удалять ненужные шаблоны:

Релиз 1.1.2.3 от 29.01.2019

Появилась возможность выводить части даты по отдельности — день, месяц (номер или название) и год:

Для физических лиц (и контрагентов с типом физлицо) теперь можно выводить паспортные данные:

Релиз 1.1.2.4 от 12.03.2019

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

Релиз 1.1.2.5 от 12.07.2019

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

По окончании процедуры печати откроется форма присоединенного файла.

Из этой формы можно при необходимости открыть на просмотр/редактирование заполненный шаблон Word.

Артикул 358
Цена, 3500
Последнее обновление 10.11.2019
Наличие демо-версии
Тип файла Внешняя обработка (*.epf)
Изменение конфигурации Не требуется
Совместимость
  • Управление торговлей 11.4 (11.3,11.2)
  • Бухгалтерия предприятия 3.0
  • Управление предприятием ERP 2.4
  • Зарплата и управление персоналом 3.1
  • Комплексная автоматизация 2.4
  • Управление торговлей 3 (KZ) *
  • Комплексная автоматизация 2.4 (KZ) *
  • Управление торговлей 3 (BY) **
  • Комплексная автоматизация 2.4 (BY) **

* — конфигурация для Казахстана

** — конфигурация для Беларуси

Вас может заинтересовать

Обработка позволяет делать произвольную выгрузку номенклатуры в файлы Excel и XML настраиваемого формата. Доступна автоматическая выгрузка по расписанию и сохранение на локальном компьютере, FTP-сервере или отправка файла по электронной почте.

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

В данном видеоуроке рассмотрен процесс создания нового профиля группы доступа в 1С:Предприятие 8 (на примере Бухгалтерии предприятия 3.0).

Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download

Шаблон (внешняя печатная форма) для печати в Word под БСП

Работает на ЗУП, БП, УТ 11, УНФ 1.6

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

В приложениях собственно шаблон и результат печати этого шаблона из Демо базы ЗУП.

Надеюсь, он избавит кого-то от потери времени.

Скачать файлы

Специальные предложения

Новый вопрос

и вот для перехода на новый док:

(17)//Выбираем первую таблицу в макете

(24) только через ActiveDocument.
Когда документ со всеми таблицами уже полностью заполнен, получаю его как ActiveDocument и вставляю картинки. Как сделать по-другому нигде не нашла(((

Обновление 13.10.16 16:26

Код открыт Не указано

См. также

Добавление контекстных дополнительных обработок в командную панель (немного практики по доработке БСП расширениями)

При добавлении контекстных дополнительных отчетов они не попадают в командную панель (КП), а открываются специальной командой из КП «Отчеты — Дополнительные отчеты. » Не всегда это удобно, и если контекстный отчет нужен для частого использования, то гораздо лучше, если бы он попадал сразу в подменю «Отчеты» на КП, а не требовал открытия дополнительной формы.

18.03.2020 1046 work.sable 5

Новый раздел на Инфостарте — Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Шаблоны внешних обработок (БСП, управляемые формы)

Набор из шаблонов для создания внешних обработок вида: Внешняя печатная форма, Отчет на СКД, Схема СКД для сегмента, Внешняя обработка (Самостоятельная, Заполнение объектов, Создание связанных объектов). Предварительно наполнены базовым функционалом и некоторыми механизмами для отладки.

01.03.2020 861 10 riposte 0

Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки

Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в «Дополнительные отчеты и обработки».

27.12.2019 4369 9 1sig 12

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Присоединенные файлы в расширении для БСП 3

Для разработчиков и для себя). Предлагается решение с наименьшими затратами. Сделано виде инструкции с необходимыми изменения в основной конфигурации. И расширение(файл), где есть признак наличия присоединенных файлов в списках. Пример реализован для конфигурации 1С:Бухгалтерия предприятия, редакция 3.0(3.0.73.54) с БСП 3.0.3. Всё проще сделал для БСП 3.1.2.

24.12.2019 1578 1 IgorXml 10

Заполнение шаблона Word docx на сервере, без ComОбъект и внешних компонент, только механизмами самой Платформы 1С, методом XML-инъекции

Внешние печатные формы для документа Счет на оплату позволяют сформировать на сервере без использования технологии OLE (Com объекта) и сохранить на печать заполненные docx шаблоны договора поставки и спецификации к договору (УНФ 1.6) (идея универсальна, подойдет для любой конфигурации). Используются только средства самой Платформы 1С:Предприятие 8.3 (8.3.13.1644). Проверено на релизе УНФ 1.6.16.176.

23.12.2019 4440 16 1sig 3

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно — для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

Влияние БСП на производительность базы 1С с добавленными метаданными

Повод для статьи — заметное снижение быстродействия при переводе учета с УТ 11.1 на 11.4 по «нашим» не стандартным метаданным (регламенты работы с массовым заполнением/проведением документов/регистров). Предварительно причину увидел во влиянии БСП. Была создана тестовая подсистема, быстродействие которой оцениваем в демобазе «Управление торговлей». С включенными и выключенными подписками БСП.

04.11.2019 4506 2 VsHome 1

Вывод QR-кода типовыми средствами.

Вывод QR-кода типовыми средствами. На данный момент очень часто нужно вывести в печатную форму QR-код. Показываю как на примере типового кода из УТ11 это сделать. Можно использовать в любых конфигурациях с обычными формами.

21.10.2019 7201 12 Емельянов Алексей 37

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Конфигурация для администраторов «Центр управления базами» для 8.3 УФ

Конфигурация предназначена для централизованного управления информационными базами предприятия. Разработана на БСП версии 2.4.4.76. В работе использует COM-соединение.

09.10.2019 4363 15 WhiteOwl 9

Шаблон разработки печатных форм и подключения к конфигурациям на БСП 2.х и БСП 3.0

«Вместо поставки внешних печатных форм в виде внешних обработок рекомендуется вести их разработку с помощью расширений конфигурации.» [ИТС, БСП гл. 3.38 Печать] У меня задачи типа «Требуется разработать печатную форму …» появляются регулярно, но с временными интервалами. Что бы вести разработку единообразно, для конфигураций на БСП, я заготовил шаблон для таких задачек, который позволяет мне сразу приступить к разработке макета и алгоритма формирования печатной формы, а «обертка» из БСП уже готова.

04.10.2019 18769 37 tolX5 16

DevOps для 1С. Онлайн-курс проходит с 16 апреля по 11 июня 2020 года. Промо

Данный онлайн-курс предусматривает изучение процессов DevOps, их применение при разработке на платформе 1С. В результате прохождения онлайн-курса вы сможете: настроить ПО необходимое для проведения проверок и тестирования, создавать сценарии тестирования и объединять их в комплексные процессы, создавать скрипты для автоматизации процессов DevOps.

Работа с релизами 1С и договорами ИТС

Работа с релизами 1С и партнерским кабинетом.

15.08.2019 8123 28 RocKeR_13 10

Редактор-конструктор визиток

Интерактивный редактор-конструктор визиток / персональных карточек на основании макетов.

16.06.2019 2815 5 eugenevk 6

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных — правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Универсальные уведомления для БСП

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

10.06.2019 4638 12 wizard.ilmir02 8

Подсистема справок (ЗУП 3.х)

Подсистема справок внешней печатной формой для 1C: Зарплата и Управление Персоналом, редакция 3.х.

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) — автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Универсальная печатная форма «Анализ объекта» + шаблон подключаемой обработки для 1С на управляемых формах

Универсальная печатная форма для всех программ на управляемых формах. Результат печати содержит все реквизиты и табличные части любого документа или справочника (имя + синоним + значение реквизита или поля табличной части), показывает уникальный идентификатор (УИД/GUID) объекта и дату создания (даже справочника!) на основании УИД. Отказоустойчивость кода обработки позволяет ей открываться как в типовых, так и в самописных программах (большинство обычных внешних печатных форм этого не могут). Кроме интерактивного открытия есть возможность подключения к конфигурации. После добавления появится команда печати почти во всех документах и справочниках. Автоматически определяет среду подключения и выбирает доступный вариант вывода: общая форма печати или же отображение табличного документа в новой форме. Все реквизиты объекта получает запросом, а не перебором строк, это делает быстрым выполнение команды.

05.04.2019 8936 25 Aleksandr55555 4

голоса

Рейтинг статьи

Оценка статьи:

2 звезды3 звезды4 звезды5 звезд5 звезд

Загрузка…

Похожие публикации

Adblock
detector

Наименование Файл Версия Размер

Объектная модель MS Word, объект Application

9.1. Объектная модель MS Word

Microsoft Word 2007, как, впрочем, и другие приложения Office, имеет большую объектную модель , в которую входят множество объектов и коллекций. Однако на практике чаще всего используются лишь некоторые из них.

В частности, это следующие:

  • Word (Microsoft Word) — чтобы вызывать объекты Microsoft Office Word из других приложений используется объект Word.
  • Application (Приложение) — объект, который включает в себя все остальные объекты и коллекции. Сам объект Application включается в объект Word .
  • Documents (Документы) — коллекция, которая включает в себя объекты Document (Документ). Объект Document представляет собой документ, с которым вы работаете в редакторе.
  • Bookmarks (Закладки) — c помощью объектов этой коллекции можно задавать места в документе, в которые, при автоматическом создании, можно вставлять изменяемые части.
  • Paragraphs (Абзацы), Sentences (Предложения), Words (Слова), Characters (Символы), Tables (Таблицы), OMath (Математические формулы), Эти коллекции, содержащие объекты, соответствующие их названиям, могут использоваться для обработки слов документа ( Words ), предложений ( Sentences ), отдельных символов ( Characters ) и т.д.
  • Selection (Выделенная область) — представляет собой выделенную область документа или позицию, в которую будет осуществляться вставка очередного символа . Этот объект часто используют при создании простых документов. Однако у него есть существенные недостатки, что делает предпочтительнее использование объекта Range в большинстве случаев.
  • Range (Диапазон) — входит в Document и другие объекты, представляет собой диапазон документа, ограниченный начальным и конечным символом.

Работая с объектной моделью MS Word следует понимать, что, например, объекты Document и Selection могут содержать одинаковые коллекции объектов, например, и там и там есть коллекция Characters , в которую входят объекты Character — то есть — символы. Однако в случае с объектом Document мы можем работать с любым символом документа, а в случае с Selection — лишь с символами в пределах выделенной области. Однако, несмотря на различия, и там и там коллекция Characters имеет одинаковые свойства и методы. То же самое касается и других коллекций и объектов.

Давайте начнем с объекта Application и здесь же поговорим об использовании объектных переменных .

9.2. Работа с объектными переменными

Объектные переменные — это переменные, которые хранят ссылки на объекты . Чтобы инициализировать объектную переменную , нужно использовать ключевое слово Set . Например, так (листинг 9.1.):

Здесь вы можете видеть присваивание переменной ссылки на объект Word.Application . Код, подобный этому, нужен в других приложениях Microsoft Office для запуска нового экземпляра MS Word .

Для того чтобы вы могли работать с Microsoft Word из других приложений — подключите библиотеку Microsoft Word 12.0 Object Library . Сделать это можно, открыв в редакторе окно References командой Tools o References .

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

Как видите, в листинге 9.1 мы не объявляли переменную — мы сразу присвоили ей ссылку на объект . При последующей работе с такой необъявленной объектной переменной , мы не сможем пользоваться подсказкой по свойствам и методам. Вспомните — когда вы набираете в редакторе имя элемента управления и ставите после него точку — вы видите подсказку. Это очень удобно, так как позволяет избежать ошибок и излишних «походов» в справочную систему VBA .

Для того чтобы справка по свойствам и методам работала, объектную переменную надо сначала объявить, а потом присвоить ей ссылку на объект . Например, так (листинг 9.2.):

Ссылку на объект можно присвоить в процессе объявления переменной. Для этого нужно воспользоваться ключевым словом New (листинг 9.3.):

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

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

9.3. Объект Application — приложение

Объект Application можно представить в виде приложения Microsoft Word .

Такой код позволит вывести в окно сообщения информацию об имени приложения:

Как видите, здесь мы обратились к свойству Name (Имя) объекта Application . Вот, что будет выведено при его исполнении (рис. 9.1.).

Здесь мы обходимся без объектных переменных , работая с уже существующим объектом. Ведь если этот код исполняется в Microsoft Word , это значит, что сам Microsoft Word уже запущен.

Чтобы упростить обращение к нескольким свойствам объекта, можно воспользоваться оператором With-End With . Этот оператор позволяет обращаться к нескольким свойствам или методам объекта в упрощенной форме. Например, чтобы вывести имя приложения и узнать номер сборки программы нужно воспользоваться таким построением (листинг 9.4.):

Здесь мы использовали объект Application — вместо него может быть любой другой объект или объектная переменная .

Еще один оператор, которым удобно пользоваться при работе с объектами и коллекциями — это For Each…Next .

Например, для вывода в окнах сообщений имен всех открытых документов, можно написать такой код (листинг 9.5.):

Var_Doc — это переменная типа Variant . Коллекция Application.Documents содержит все открытые документы. При каждом проходе цикла в переменную var_Doc записывается ссылка на очередной объект в коллекции.

Чтобы выйти из цикла , можно воспользоваться оператором Exit For .

Сейчас мы кратко опишем важнейшие методы , свойства и события объекта Application .

9.4. Методы объекта Application

9.4.1. BuildKeyCode, KeyString — горячие клавиши

BuildKeyCode возвращает уникальный цифровой код для заданной комбинации клавиш. Используется при назначении «горячих клавиш» для выполнения различных операций.

KeyString возвращает комбинацию клавиш для переданного кода.

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

9.4.2. ChangeFileOpenDirectorу — путь для работы с файлами

ChangeFileOpenDirectory позволяет установить директорию, в которой Microsoft Word ищет файлы для открытия. В установленной папке программа будет искать файлы при программном открытии файлов и при вызове окна открытия файлов.

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

Например, чтобы установить папку » C:Новые документы » в качестве папки по умолчанию, можно использовать такой код (листинг 9.6.):

Следует отметить, что если мы вызываем метод или свойство объекта Application из макроса Microsoft Word, мы можем опускать вызов Application — то есть, в вышеприведенном примере можно написать так:

9.4.3. CleanString — очистка строк

CleanString очищает переданную строку от непечатаемых и специальных символов, превратив ее в обычный текст. Такой же текст можно получить, если скопировать текст из Microsoft Word в Блокнот, а потом — обратно. Например, с помощью такого кода можно получить очищенную строку из выделенной области документа (листинг 9.7.).

9.4.4. Keyboard — программное переключение раскладки

Keyboard позволяет программно переключать раскладку клавиатуры. При переключении используется идентификатор языковых и клавиатурных установок. Чтобы включить русскую раскладку, можно воспользоваться таким кодом (листинг 9.8.):

Очевидно, что 1049 — это код русского языка. Для включения английской раскладки используйте этот метод с идентификатором 1033.

9.4.5. ListCommands — справка по горячим клавишам

ListCommands это необычный метод — если вызвать его с параметром True (листинг 9.9.) — он создаст новый документ, содержащий таблицу со списком клавиатурных сочетаний, назначенных командам MS Word. Таблица содержит несколько десятков страниц.

9.4.6. NewWindow — копия окна активного документа

NewWindow создает копию окна активного документа. Это может быть полезным например, для того, чтобы вывести один и тот же документ на два монитора при работе с расширенным рабочим столом и т.д. Например, метод можно вызвать так:

При необходимости можно задать, для какого именно документа вы хотите создать копию окна. Однако, это потребует использования других объектов. Например — коллекции Windows , содержащей окна документов. Такой код (листинг 9.11.) создаст одну копию для каждого открытого окна:

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

В этом примере вам встретились неизвестные ранее свойства Count и Item . Первое обычно содержит количество элементов в коллекции, второе позволяет обращаться к элементам по индексам или именам.

При создании копии после имени документа появляется двоеточие с номером окна, например, «:1» для первого, «:2» для второго и т.д.

9.4.7. OnTime — запуск макросов по расписанию

OnTime позволяет устанавливать таймер, по которому можно запустить макрос в определенное время. Например, чтобы выполнить макрос MyMacros , который хранится в том же документе, что и исполняемый макрос, достаточно выполнить такой код (листинг 9.12.).

Параметр When указывает на время запуска, параметр Name — на имя макроса. Важно, чтобы макрос был доступен как в момент запуска таймера, так и в момент запуска самого макроса. Для того чтобы это условие соблюдалось, желательно хранить макросы, запускаемые по таймеру, в Normal.dotm , в другом глобальном шаблоне, или в том же документе, в котором произошел запуск таймера.

Как видите, мы привели пример лишь для запуска макроса в строго определенное время. А как же быть, если нужно запустить макрос, например, через пятнадцать секунд после выполнения какой-либо процедуры? Ответ прост (листинг 9.13.)

Здесь мы запускаем тот же самый макрос, но уже через 15 секунд после установки таймера. Функция Now имеет тип Date и возвращает текущую дату и время, а функция TimeValue преобразует переданное ей время в формат Date .

Если вы хотите, чтобы какой-то макрос запускался с некоторой периодичностью — установку таймера на запуск этого макроса можно установить в нем. Первый запуск макроса можно произвести вручную или каким-то другим способом (например — по событию приложения, с помощью автоматически выполняемого макроса), а последующие запуски этот макрос будет инициировать самостоятельно.

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

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

Использование шаблонов 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

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

Здравствуйте. Попросили обновить шаблоны договоров для печати. Обновила, но теперь при печати выводит ошибку, что не удалось сформировать элемент управления 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 разделена на несколько областей:

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

Использование COM-объекта Word.Application для программной отрисовки таблиц и сборки документа

Опубликовано:
17 октября 2012 в 10:10

История вопроса

Необходимо печатать конверты по заданному макету. Задача довольно простая, когда мы заранее знаем, что необходимо печатать. Был создан интегрированный RTF-отчет. Посмотрев на него, пришли к выводу, что такой вариант будет недостаточно гибким, ведь почтовые конверты бывают разные, при условии, что наши организации закупают их не централизовано, с печатью могут возникнуть проблемы.

Часть I. Индекс.

Был выбран путь формирование отчета из макета. Все текстовые поля замечательно проставляются с помощью макропеременных, но появляется загвоздка в формировании индекса. В RTF-отчете он формировался с помощью таблицы. Выбирая разные стили границ, мы можем рисовать цифры. Можно было бы найти какой-нибудь подходящий шрифт, но его надо было бы устанавливать на все компьютеры, с которых возможна печать конвертов.

Посмотрели на готовый результат RTF-отчета с пустым индексом, сохранили его как docx, занесли в систему и обозвали макетом. Лишнее убрали, нужное добавили и сделали генерацию документа. И вот отчет уже почти готов.

Осталось нарисовать такие цифры:

В справке по VBA можно найти значения перечисления типа границы (wdBorderType). В соответствии с этими значениями создаем список соответствий, именем которого является цифра, значением – массив границ, формирующих число.

Приступаем к заполнению.

Часть II. Сборка единого документа.

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

Рисование в таблице, как оказалось, не единственное действие, для которого нам понадобился данный COM-объект. В RTF-отчете, с помощью тегов, можно разбивать документ на страницы. При генерации документов из макета, их придется склеивать средствами, предоставляемыми COM.

GOTO_PAGE_ITEM – перечисление wdGoToItem. Определяет тип элемента для перехода. В нашем случае указываем, что перемещаемся по страницам.

GOTO_LAST_PAGE_DIRECTION – перечисление wdGoToDirection. Указывает направление перемещения. Для нас это последний элемент.

Эти перечисления указывают, что надо взять содержимое, находящееся на последней странице. Туда мы и вставляем новую информацию. Если бы эта страница имела бы какой-нибудь контент, он был бы заменен новой информацией. Если бы надо было добавить только подготовленную текстовую информацию, то можно было бы использовать метод InsertAfter для всего содержимого документа, но у нас во втором документе находится несколько более комплексная информация.

Для справки.

Более подробную информацию по данному объекту можно найти в MSDN и справке по VBA.

Объект 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, без которых просто невозможно двигаться дальше.

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

Работа с 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 с нестандартным размером листа, то используйте данный код:

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

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

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

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

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

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

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

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

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

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста 1с транзакция
  • Ошибка при вызове метода контекста converttoshape
  • Ошибка при вызове метода контекста 1с битрикс
  • Ошибка при вызове места контекста
  • Ошибка при вызове контекста поле код не уникально