Редактирование документа word c

Обновлено: 02.07.2024

Метод ПолучитьМакет работает только на сервере. Методы работы или заполнения Word-а работают как на клиенте, так и на сервере. Показывать пользователю документ (Visible = Истина; Activate();) нужно на клиенте. Получается, нам нужно получить документ на сервере и передать его на клиент, чтобы показать. В данной статье будет рассмотрено 2 способа передачи с сервера на клиент. 1 способ для ActiveDocument, второй для ДвоичныеДанные.

Немного об ActiveDocument

Что пишет о ActiveDocument 1С:

Технология ActiveDocument предназначена для редактирования документов внешними по отношению к 1С:Предприятию 8 редакторами.
Эта технология позволяет редактировать документы визуально (например, Word или Excel) непосредственно в окне 1С:Предприятия 8, при этом элементы пользовательского интерфейса (меню, панели команд и т.д.) заменяются на предоставляемые редактором. Документы могут быть предварительно отредактированы и сохранены в макетах конфигурации, а затем макеты могут использоваться пользователями как основы для создания окончательных версий документов.
Следует заметить, что использование макетов ActiveDocument в режиме Предприятия осуществляется только программно - визуальное редактирование возможно только на этапе создания и редактирования конфигурации.
Эта технология применяется в случае, когда в конфигурации необходимо хранить данные, редактируемые другим приложением - такие, например, как шаблоны для факсов или деловых писем, созданные в Microsoft Word, или шаблоны прайс-листов в Microsoft Excel. Такая необходимость возникает, как правило, при регламентировании формата документов (как во внутреннем документообороте, так и при обмене документами со сторонними организациями и клиентами), однако при отсутствии ограничений на формат документа рекомендуется использовать существующие в 1С:Предприятии 8 возможности по оформлению электронных и печатных документов.

Другими словами: в ДвоичныеДанные вы можете только «Загрузить из файла» и «Выгрузить в файл»


А ActiveDocument можно прямо в конфигураторе редактировать в привычном интерфейсе Microsoft Word. Выглядит это так:


Я писал базу с нуля, где было много шаблонов Word, которые постоянно приходилось переписывать. Было очень удобно в конфигураторе открывать фактически Word, редактировать, перезапускать отладку и смотреть, что получилось. Если у вас шаблон не так часто меняется, то можно в принципе использовать «Двоичные данные».

Передача ActiveDocument с сервера на клиент

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

При использовании этого кода на сервере должен быть установлен офисный пакет. Представленный код является шаблоном (примером) для дальнейшего программирования. Краткий анализ кода:

1. НаКлиенте мы просто получаем файл в виде двоичных данных с сервера, записываем во временную папку и открываем оттуда файл.
2. НаСервере мы получаем макет, его заполняем (дан пример заполнения через метод Find. Execute), сохраняем во временную папку (это будет папка на сервере вида: C:\Users\<Имя пользователя, под которым запущена служба 1С>\AppData\Local\Temp\v8_F0FB_7f3.docx), переводим файл в двоичные данные и передаём на клиент. Для сохранения документа можно использовать методы Передача макет Word (Двоичные данные) с сервера на клиент

В случае передачи двоичных данных представлю практически весь код.

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

Замечание: если вам адрес во временном хранилище нужен не сразу и единожды (как у меня), то корректней помещать во временное хранилище с уникальным идентификатором, дабы значение не удалилось пока не закрыли форму:

2. Можно сохранить файл Word в общую папку и с клиента его просто получать. Главное, чтобы файл никто не удалил.

Пример кода

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

  • Вставка абзацев с текстом и форматированием.
  • Просмотр и изменение различных диапазонов в документе.
  • Вставка таблиц, форматирование таблиц и заполнение таблиц данными.
  • Добавление диаграммы.

Добавьте ссылку на библиотеку объектов Microsoft Word. Для этого выполните следующие действия:

  1. On the Project menu, click Add Reference.
  2. На вкладке COM найдите объект библиотека объектов Microsoft Word и нажмите кнопку Выбрать.

Note (Примечание ) В Visual Studio 2005 не нужно нажимайте кнопку выбрать.

Note (Примечание ) В состав Microsoft Office 2003 входят основные сборки взаимодействия (PIA). Microsoft Office XP не включает PIA, но их можно скачать.

В меню Вид выберите пункт Панель элементов, чтобы отобразить панель элементов, а затем добавьте кнопку в форму Form1.

Дважды щелкните элемент Button1. Откроется окно кода для формы.

В окне код замените следующий код:

Прокрутите окно до верхней части окна кода. Добавьте следующую строку в конец списка директив using:

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

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

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

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

  • Вы можете больше управлять форматированием и размещением объектов в документах.
  • Вы можете создавать документы с меньшим количеством кода.

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

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

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

Ссылки

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

При использовании Office и OneDrive или SharePoint можно работать над документами Word, таблицами Excel и презентациями PowerPoint вместе с другими людьми. Совместное редактирование означает, что над документом одновременно работают несколько авторов.

Флаги, указывающие на то, что в документе Word работают два автора

Совет: Check out these YouTube videos from Microsoft Creators to learn more about working in SharePoint. If you’re managing a library, you may also find these videos on documents and libraries helpful

Что нужно для совместного редактирования?

Совместное редактирование поддерживается для документов, сохраненных в OneDrive или SharePoint.

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

Общие хранилища, OneDrive, OneDrive для работы и учебы, SharePoint и SharePoint Server, являются общими областями хранения, которые позволяют совместное авторство.

Приложения, поддерживаюющие совместное Word и PowerPoint на всех устройствах и в более последних версиях, чем Office 2010, поддерживают совместное. Совместное Excel мобильных приложений и последней версии Excel для Microsoft 365 поддерживается.

Подходящий документ. Совместное форматирование поддерживается только в современных форматах файлов, включая .docx (Word ), .pptx (PowerPoint ) и .xlsx (Excel ).

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

Создание и открытие документов для совместного редактирования

Эти статьи помогут вам научиться совместно работать сOffice документами.

Предоставление общего доступа к документам для совместной работы

Прежде чем начинать совместную работу над документами, необходимо предоставить к ним общий доступ. В приложениях SharePoint, OneDrive и Office можно делиться файлами с другими пользователями.

Дополнительные сведения об общем доступе к документам в OneDrive и SharePoint см. в следующих статьях:

Если вы открываете общий документ в классическом или мобильном приложении, вы можете работать над ним, даже если нет подключения к сети. Другие авторы не будут видеть изменения, которые вы вносите в автономном режиме. Когда вы подключитесь к Интернету, вы получите уведомления о любых новых правках, а ваши изменения станут доступны другим.

Предложение с конфликтом в Word

Если вы работаете над файлом, который находится в папке синхронизации (такой как OneDrive или OneDrive для работы и учебы), он синхронизируется при восстановлении подключения к Интернету независимо от того, запущено ли приложение (Word, PowerPoint). При повторном подключении файл автоматически синхронизируется. При наличии конфликтов вы получите оповещение. Дополнительные сведения см. в статье Синхронизация файлов с помощью OneDrive в Windows.

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

Разрешения SharePoint наследуются, но вы можете задать другие разрешения для определенных пользователей. Если к библиотеке SharePoint открыт общий доступ только на чтение, вы можете предоставить разрешение на изменение некоторым пользователям. Однако если в библиотеке разрешено редактирование для всех пользователей, вы не сможете ограничить разрешения некоторых из них только просмотром. Унаследованные разрешения можно переопределить с помощью разрешения более высокого, но не более низкого уровня. Дополнительные сведения о разрешениях см. вSharePoint.

Файлы, хранимыеOneDrive должны быть явно делиться. По умолчанию их может изменять и просматривать только владелец библиотеки. Вы можете решить, кто сможет редактировать отдельные файлы, предоставив общий доступ на изменение пользователям или группам. Дополнительные о совместном использовании см. в разделе Общий доступ к файлам и папок в Microsoft 365.

Можно ли редактировать документы совместно с пользователями Office 2007 и более ранних версий? Можно ли использовать другое хранилище вместо SharePoint или OneDrive?

Да, корпорация Майкрософт совместно работает с десятками партнеров по всему миру (включая Box, Citrix ShareFile, Dropbox и Egnyte), чтобы вы могли совместно работать с Office в Интернете. Обратитесь к поставщику хранилища, чтобы узнать, поддерживается ли совместное Office в Интернете. Однако эти сторонние поставщики хранилищ не поддерживают совместное Office классическими приложениями и другими платформами. Совместное авторство поддерживается в Office в Интернете.

Корпорация Майкрософт не поддерживает совместное авторство документов, хранимых в Google Диск.

Мобильных: Совместное Office файлов также поддерживается в Office для iOS с другими поставщиками хранилищ, включая Box и Dropbox. Совместное Office для Android также поддерживается в Dropbox.

Устранение неполадок совместного редактирования в SharePoint, OneDrive и Office

Если совместное редактирование работает неправильно, это может быть вызвано различными причинами. Сведения о том, как решить проблемы, возникающие при использовании и настройке совместного редактирования, см. в статье Устранение неполадок совместного редактирования в Office.

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

Другие разделы

Для администраторов SharePoint:

Примечание: Совместное редактирование не поддерживается для документов, защищенных с помощью управления правами на доступ данным (IRM) или службы управления правами (RMS).

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

Потому, что пользователь для работы с текстом использует текстовый процессор. Строго говоря, кроме Ворда всегда существовали альтернативные программы, не уступающие по функционалу. Сейчас 2021 год и пользователи давно привыкли к таким вещам как жесткий пробел, запрет висящих строк, абзац, начинающийся с новой страницы, межстрочный интервал, колонтитулы и абзацные отступы. Довольно часто можно столкнуться с заявлением "наша разработка может формировать документы в формате Ворд". При дальнейшем рассмотрении оказывается, что "шаблон" хранится непосредственно в информационной базе либо в виде текста, либо в виде форматированного текста, либо в виде набора абзацев и так далее. Как бы ни старались разработчики платформы и приложения, полученный файл это не тот "Ворд", которого ожидает пользователь. Этот эрзац всегда является компромиссом между полноценным файлом Ворда и возможностями системы автоматизации. Для того, чтобы формировать полноценный файл Ворда, со всеми возможностями форматирования, которыми пользователи привыкли пользоваться, требуется пересоздать Ворд внутри информационной системы, что практически недостижимо.

Потому, что никакие другие файлы кроме файлов Ворда не будут приняты партнерами пользователя. В этом смысле Ворд безальтернативен т.к. все пользуются именно Вордом. Можно сколько угодно рассуждать о преимуществах Лайбре Офиса, но, когда ежедневно нужно обмениваться документами с десятком новых людей, без Ворда не обойтись.

Что значит сформировать файл Ворд?

В связи с неоднозначностью сложившейся терминологии, считаю нужным пояснить. Под формированием файла Ворд по пользовательскому шаблону я подразумеваю следующий процесс. Пользователь передает разработчику файл с образцом документа, который хочет получать из информационной системы в автоматизированном режиме. Разработчик дорабатывает информационную систему таким образом, чтобы она позволяла формировать файлы, точно соответствующие первоначальному образцу. Точно, значит без явных указаний пользователя разработчик не меняет по своему усмотрению ни одного элемента форматирования, ни шрифт, ни размер, ни поля, ни колонтитулы. НИЧЕГО не меняет. Совершенно ничего. На выходе пользователь должен получить документ неотличимый от документа, созданного собственноручно.

Способы формирования файла Ворд

Работа программы по формированию файла сводится к модификации образца, предоставленного пользователем. К счастью, пользователи приложений, построенных на базе 1С-Предприятия, люди скучные. И их запросы к формированию файлов невелики. Им не требуются информационные буклеты или рекламные плакаты. Им нужны документы. Договоры, акты, письма, исковые заявления, и т.д. Потому обработка файла программой сводится к замене (вставке) текста на полученный из базы данных, удаление каких-то блоков текста и, быть может, вставке небольших картинок, например, логотипа или штрих-кода.

Существует два популярных способа работы с файлами Ворд:

1. Через СОМ-Объект Ворд.

2. Через непосредственную модификацию файлов docx

Главное отличие между ними заключается в том, что первый способ предоставляет разработчику инструмент - полнофункциональный API, позволяющий делать с документом все то же самое, что может делает пользователь, непосредственно работая в редакторе. Второй же способ предполагает собственную разработку инструмента, на основании документации по формату хранения файла. Если функциональность разработанного инструмента перестанет удовлетворять возникающим потребностям - придется разрабатывать (или искать) новый инструмент. В то время как модернизация кода основанного на API СОМ-объектов не представляет сложностей.

Первый способ предполагает, что на том компьютере, где будет исполняться код приложения и формироваться файл, установлен Майкрософт Офис. При установке, Офис регистрирует в Виндоус СОМ-объекты для каждого из приложений входящих в пакет. Таким образом, другие приложения, запущенные на компьютере, могут через интерфейс СОМ-объектов выполнять любые действия с документами офисных приложений, возможности предоставленного программного интерфейса, как минимум, не уступают возможностям пользователя, редактирующего документ непосредственно в приложении.

Главная проблема примеров из интернета по рассматриваемой теме - игнорируется тот факт, что за компьютером сидит живой пользователь. Видимо, предполагается, что после нажатия кнопки "сформировать файл", пользователь должен замереть, не дышать, не дотрагиваться до мыши и клавиатуры в течение всего времени создания файла. А ведь формирование каждого файла может занимать заметное время, в некоторых случаях - больше минуты. И ладно бы вопрос стоял "или так или никак". Но ведь на самом деле, нет. Можно работать с СОМ-Объектом параллельно с работой пользователя, код чувствительный действиям пользователя не имеет никаких преимуществ перед кодом, не мешающим пользователю. Единственная причина, по которой он используется - нежелание разработчика вникнуть в проблему и рассмотреть альтернативные варианты решения.

Код языка 1С для работы с СОМ-Объектами на сервере и на клиенте ничем не отличается. Единственное, за сервером не работает реальный пользователь, поэтому проблема неудачного кода не выплывает с такой остротой. Повторюсь, преимуществ у такого кода все равно нет. Тем более, что код нужно отлаживать, часто это удобнее делать на клиенте, вот и появился пользователь. А еще, может потребоваться перенос работающего кода с сервера на клиент, например, в рамках рефакторинга и изменения архитектуры приложения. А еще, код может работать в файловой базе, где "сервер" очень условен - программный слой, запускаемый на машине каждого пользователя. Таким образом, лучше всего исходить из того, что пользователь за компьютером есть всегда.

Объектная модель Ворд

Ворд, запущенный в качестве СОМ-Объекта, предоставляет доступ к множеству объектов приложения. Понятие "объект" такое же как везде - программная абстракция, имеющая методы и свойства. Методы могут быть как процедурами, так и функциями, при этом функции можно вызывать как процедуры, игнорируя возвращаемое значение. Свойства могут быть либо объектами, либо обычными (скалярными, примитивными) данными, такими как число, строка, логический тип.

Среди объектов особо выделяются специальные объекты-контейнеры, называемые коллекциями. Каждая коллекция предназначена для хранения ссылок на группу однотипных объектов. Например, коллекция Documents хранит ссылки на объекты Document, коллекция Tables хранит ссылки на объекты Table и т.д. Все коллекции именованы во множественном числе, а обычные объекты в единственном. Нумерация объектов в коллекции начинается с единицы. Коллекции Ворд можно перебирать циклом "Для каждого" языка программирования 1С.

Полный список объектов можно, и нужно, смотреть в справочной системе Ворд (раздел справки по Вижуал Бейсику (VBA)). Для старых версий справка откроется локально на компьютере пользователя. Новые версии отправят на сайт Майкрософт: en-us /office/vba/api/overview/word/object-model

Многие методы объектов Ворда в качестве параметров принимают числовые значения. Для того, чтобы не путаться в числовых значениях, в Вижуал Бейсике предусмотрены именованные константы. Например, константа wdFormatRTF соответствует числу 6. В Вижуал Бейсике можно писать код так:

Вне VBA именованные константы недоступны, поэтому код 1С будет таким:

Или, без “магических” чисел, таким:

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

Запуск Ворд, открытие файла

Традиционно, первые три строчки работы СОМ-Объектом Ворд выглядят так:

… и это уже неправильно! Третья строчка сразу говорит о том, что перед вами бездумная копипаста. Справедливости ради, бывают и толковые примеры, начинающиеся именно так, но, это лишь подтверждает, что даже в толковых примерах присутствует копипаста, не осмысленная автором. Что неправильно с третьей командой будет объяснено ниже, сначала разберем первые две строки.

Запускает приложение Ворд и возвращает на него ссылку. Теперь по ссылке Word мы можем обращаться к СОМ-объекту. Возникает закономерный вопрос, влияет ли как-то окружение, в момент выполнения команды, на результат её работы? Из окружения нас интересует в первую очередь интерактивная работа пользователя с Вордом. Возможны два варианта:

- в момент выполнения Ворд запущен (имеются открытые пользователем файлы)

- в момент вызова Ворд не запущен

Так вот, нет, не влияет. Ворд запускается как новый экземпляр приложения, коллекция Documents запущенного приложения не содержит ни одной ссылки, т.е. доступа к ранее открытым документам через ссылку Word не получить.
Но, после запуска СОМ-Объекта, новые, открываемые пользователем, файлы могут открыться именно в этом экземпляре Ворда. Для пользователя разницы нет, но нам это следует, на всякий случай, учитывать.

Скрывает Ворд. Т.е. пользователь не будет видеть обрабатываемый файл в отдельном окне. Никакой особой пользы скрытие окна Ворд не несет. Если программа написана корректно, то пользователь не будет мешать программе, а программа не будет мешать пользователю, вне зависимости от того, видимо ли окно обрабатываемого файла. Естественно, при условии, что пользователь не начнет редактировать открытый документ.

Свойству Visible желательно присвоить одно из значений. В противном случае, СОМ-Объект Ворд откроется в скрытом режиме. Но если пользователь откроет какой-нибудь файл, то наш редактируемый файл может неожиданно стать видимым. С другой стороны, если пользователь успеет открыть свой файл после запуска СОМ-Объекта, но перед тем, как будет выполнено присвоение свойству значения Ложь , то открытый файл станет невидимым и недоступным для редактирования пользователем.

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

Перейдем к неправильной части примера

Открывает файл, в терминологии Ворд открытый файл называется "документ". Далее нужно получить ссылку на открытый документ, чтобы потом по этой ссылке можно было с ним работать. Вы можете найти такие примеры:

Ну что ж, разумно. Предполагаем, что открыт только наш документ, соответственно в коллекции Documents есть единственный элемент, значит этот элемент имеет индекс равный единице. Это работает, вероятность того, что пользователь успеет открыть файл в промежуток времени, между запуском СОМ-Объекта и этим присваиванием, ничтожно мала.

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

Примеры чуточку безумные:

WTF? Хотя, безусловно, работает. С теми же оговорками, что и выше.

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

Для открытия документа можно использовать два метода коллекции Documents . Первый - Open() приведен выше, второй - Add() .

Метод Open() открывает файл для редактирования в Ворде, документ остается связанным с этим файлом - в заголовке окна Ворд указывается имя файла. Открыть можно любой файл, поддерживаемый Вордом, формат файла при редактировании не меняется. Например, открыли файл .rtf, отредактировали, сохранили, файл остался .rtf. Открывать непосредственно шаблон из папки, в которой хранятся шаблоны таким способом не стоит. Если что-то произойдет не так, например, сработает автосохранение в Ворде, шаблон будет испорчен. Сначала файл шаблона следует скопировать (при работе в клиент-серверном варианте это само собой разумеющиеся действие), а потом можно открывать.

Метод Add() создает новый документ на основании указанного шаблона. Шаблоном может быть любой файл, не обязательно родные для Ворда .doc или .docx или .dot. Открытый документ с файлом-шаблоном не связывается, в заголовке окна Ворд будет надпись "Документ1 - Word". При этом информация о формате исходного файла не сохраняется. Открывается просто документ Ворд, содержащий в себе всю информацию из указанного файла. При сохранении без явного указания типа файла он будет сохранен как .docx. Единственное исключение - документ, открытый на основе файла .doc, такие документы по умолчанию сохраняются в файлы .doc. Метод Add() можно использовать для создания документов на основании оригинала шаблона, шаблон повредить невозможно даже случайно.

Методы Open() и Add() являются функциями, т.е. возвращают значение. Причем возвращают они ссылку на новый документ. И ловить потом этот документ в коллекции Documents нам не нужно, ссылку можно сразу сохранить в переменной для дальнейшего использования. Таким образом, для открытия используются следующие команды:

Когда шаблон заполнен требуемым образом его необходимо сохранить. Самый простой вариант, если файл открыли методом Open() , для сохранения достаточно вызвать метод Save() :

Если же документ еще не связан с файлом, нужно вызвать метод SaveAs() :

Если формат по умолчанию нас не устраивает, вторым параметром метода можно явно задать тип файла:

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

Имеется в виду, что не будет ошибки времени выполнения. Однако, приведенный выше пример идеологически неверен. Допустим, через некоторое время шаблон был заменен и файл шаблона получил расширение .docx. Для внесения изменений в программу нам потребуется две правки, первая в методе Add() , вторая в методе SaveAs() . В этом и проблема, код дублируется, одно изменение должно вносится в одном месте программы, а не в разных. Если расширение файла не будет указано, при сохранении будет добавлено расширение, соответствующее типу сохраняемого файла. Если же расширение будет указано неверно, т.е. не будет соответствовать типу файла, то. либо получаем ошибку времени исполнения, либо файл сохранится в формате, не соответствующем расширению (в зависимости от комбинации тип/расширение возможно и то и другое). Обе ситуации ненормальны. Ошибка времени выполнения, конечно, будет отловлена на этапе тестирования. А ошибка несоответствия расширения фактическому типу данных выйдет потом боком пользователю.

Завершение работы с СОМ-Объектом рекомендуют (неправильно) делать так:

На первый взгляд, можно и не заметить нолик в параметре метода Quit() . А он важен. Это просто константа wdDoNotSaveChanges :-). Закрыться-то Ворд закроется, вместе со всеми файлами, которые пользователь, возможно, открыл и редактирует.

Если мы исходим из предположения, а мы из него исходим, что пользователь может работать интерактивно со своими собственными файлами, которые могут быть открыты в том же экземпляре Ворда, что и наш СОМ-Объект, то торопиться принудительно выгонять пользователей и закрывать экземпляр приложения не стоит. Можно проверить, есть ли еще открытые документы, кроме нашего. Если есть, не закрывать экземпляр Ворда, пусть пользователь спокойно работает, если других документов нет - закрыть:

Не очень популярный, но иногда встречающийся способ.

Сначала в документ добавляются пользовательские свойства. Для Ворда 2016 это делается так:

Читайте также: