Для присвоения документу word новое имя нужно выполнить следующие команды
Севрюкова Любовь Анатольевна. Учебное пособие для студентов профессии «Мастер по обработке цифровой информации».
Программа Microsoft Word .
Тема № 2: Работа с документами в текстовом процессоре Microsoft Word
Данное учебное пособие содержит теоретический материал по теме: «Работа с документами в текстовом процессоре Microsoft Word », а также комплект дидактического материала, включающий в себя упражнения и задания, предназначенные для закрепления и проверки теоретических знаний и практических умений.
Рекомендуется для использования при изучении МДК 01.01 Технология создания и обработки цифровой мультимедийной информации.
Создать новый документ Microsoft Word можно несколькими способами.
1 способ. С помощью контекстного меню на рабочем столе. Вызвать контекстное меню на любом свободном месте рабочего стола. Выполнить команду Создать/Документ Microsoft Office Word . Ввести имя документа с клавиатуры.
2 способ. С помощью контекстного меню или строки меню в окне папки. Создание текстового документа в окне папки с помощью контекстного меню аналогично созданию документа на рабочем столе. Для создания документа с помощью строки меню необходимо выполнить команды Файл/Создать/Документ Microsoft Office Word . Ввести имя документа с клавиатуры.
3 способ. При запуске программы Microsoft Word (любым способом).
4 способ. С помощью кнопки Office . Щелкнуть один раз левой кнопкой мыши на кнопке Office и в открывшемся списке выбрать пункт Создать .
5 способ. С помощью панели быстрого доступа. Щелкнуть кнопку Создать на панели быстрого доступа .
Первоначальное сохранение документа рекомендуется осуществлять сразу после создания документа. Для этого следует выполнить команду Сохранить как из списка команд, открывающегося кнопкой Office . В появившемся диалоговом окне Сохранение документа следует указать папку, в которую сохраняется документ, и задать имя и тип документа (рис. 1). После этого щелкнуть на кнопке Сохранить .
Рис. 1. Диалоговое окно Сохранение документа
При последующем сохранении документа используется команда Сохранить из списка команд, открывающегося кнопкой Office или кнопка Сохранить на панели быстрого доступа.
Существует несколько способов открытия документа, созданного в программе Microsoft Word :
1 способ. С помощью программы Проводник (если программа Word не запущена). В программе Проводник открыть папку, в которой содержится нужный файл, и открыть его, выполнив двойной щелчок мыши на значке файла.
2 способ. С помощью значка Мой компьютер (если программа Word не запущена). Открыть папку Мой компьютер , затем папку, в которой содержится нужный файл, и открыть его, выполнив двойной щелчок мыши на значке файла.
3 способ. С помощью кнопки Office (если программа Word уже открыта). Выполнить команду Открыть из списка команд, открывающегося кнопкой Office . В диалоговом окне Открытие документа (рис. 2) указать нужный диск, папку, файл и щелкнуть на кнопке Открыть .
Рис. 2. Диалоговое окно Открытие документа
3 способ. С помощью панели быстрого доступа. Щелкнуть на кнопке Открыть . В диалоговом окне Открытие документа (рис. 2) указать нужный диск, папку, файл и щелкнуть на кнопке Открыть .
Существует четыре режима представления документов на экране: Разметка страницы ; Режим чтения ; Режим структуры ; Web-документ; Черновик .
Разметка страницы. Показывает документ в том виде, в котором он будет напечатан, включая верхние и нижние (рис. 3). Это основной рабочий режим, в котором работает пользователь.
Рис. 3. Внешний вид документа в режиме Разметка страницы
Режим чтения. При этом режиме (рис. 4) все дополнительные меню, ленты и инструменты исчезают с экрана, а на освободившемся месте располагается текст. Поэтому этот режим удобен для просмотра и чтения документа.
Рис. 4. Внешний вид документа в режиме Чтения
Web -документ. Режим Web -документ (рис. 5) показывает текст таким, каким его увидят пользователи Интернета при публикации документа в Сети.
Рис. 5. Внешний вид документа в режиме Web -документ
Структура. В режиме структуры (рис. 6) важен не сам текст, а его структура, т.е. список разделов. Этот режим позволяет редактировать структуру документа независимо от текста. Например, можно выделить все заголовки и изменить их уровень в иерархии.
Рис. 6. Внешний вид документа в режиме Структура
Черновик. Режим Черновик (рис. 7) используется для быстрого редактирования документа.
Рис. 7. Внешний вид документа в режиме Черновик
Чтобы изменить режим отображения документа необходимо открыть вкладку Вид и выбрать нужный режим в группе инструментов Режимы просмотра документа . Существует и более быстрый способ переключения между режимами просмотра документа: на панели режимов, расположенной в нижней части окна программы щелкнуть один раз левой кнопкой мыши на кнопке, соответствующей нужному режиму.
Если нужно увидеть на экране весь документ целиком или, наоборот, его часть, то для этого изменяют масштаб экранного изображения.
Для изменения масштаба необходимо открыть вкладку Вид и в группе инструментов Масштаб (рис. 8) установить нужный масштаб .
Рис. 8. Группа инструментов Масштаб вкладки Вид
Группа инструментов Масштаб включает в себя следующие кнопки:
Кнопка Масштаб. Открывает диалоговое окно Масштаб (рис. 9), в котором можно установить другие виды масштаба.
Рис. 9. Диалоговое окно Масштаб
Кнопка 100%. Отображает документ в натуральную величину, т.е. в масштабе 1:1.
Кнопка Одна страница. Позволяет изменить масштаб документа так, чтобы страница полностью поместилась в окне.
Кнопка Две страницы. Позволяет изменить масштаб документа так, чтобы две страницы полностью поместились в окне.
Кнопка По ширине страницы. Позволяет изменить масштаб документа так, чтобы ширина страницы совпадала с шириной окна.
Для изменения масштаба можно также воспользоваться панелью Масштаб , расположенной в нижней части окна программы и установить нужный масштаб с помощью кнопок Уменьшить , Увеличить или с помощью бегунка. Увидеть масштаб отображения документа позволяет кнопка Выбор масштаба , расположенная левее панели масштаба. Эта кнопка позволяет также открыть диалоговое окно Масштаб (рис. 9).
Упражнение 1
1. Создайте новый текстовый документ при загрузке программы с помощью главного меню.
Технология выполнения:
Выполните команду Пуск/Все программы/ Microsoft Office / Microsoft Office Word .
2. Сохраните созданный документ в папку D :\Общая\Группа М-11 с именем Создание документа с помощью кнопки Office .
Технология выполнения:
Щелкните один раз левой кнопкой мыши на кнопке Office и в открывшемся списке выберите команду Сохранить как .
В диалоговом окне Сохранение документа в раскрывающемся списке Папка выберите папку D :\Общая\Группа М-11 .
В поле со списком Имя файла введите Создание документа .
Проверьте, чтобы в поле со списком Тип файла был выбран тип – Документ Word .
Щелкните кнопку Сохранить .
1. Создайте новый текстовый документ при загрузке программы с помощью ярлыка на Рабочем столе .
Технология выполнения:
Выполните двойной щелчок мыши на значке ярлыка программы.
2. Сохраните созданный документ в папку D :\Общая\Группа М-11 с именем Создание документа с помощью кнопки Сохранить на панели быстрого доступа.
Технология выполнения:
На панели быстрого доступа щелкните кнопку Сохранить .
В диалоговом окне Сохранение документа из раскрывающегося списка Папка выберите папку D :\Общая\Группа М-11 .
В поле со списком Имя файла введите Создание документа .
Проверьте, чтобы в поле со списком Тип файла был выбран тип – Документ Word .
Щелкните кнопку Сохранить .
1. Создайте новый текстовый документ Документ 1 с помощью контекстного меню в папке D :\Общая\Группа М-11 .
Технология выполнения:
Откройте папку D :\Общая\Группа М-11.
Вызовите контекстное меню в любом свободном месте окна папки.
Выполните команду Создать/Документ Microsoft Office Word .
Введите имя документа – Документ 1 .
2. Сохраните созданный документ в папку D :\Общая\Группа М-11 группа с именем Создание документа с помощью кнопки Office .
Технология выполнения:
Щелкните один раз левой кнопкой мыши на кнопке Office и в открывшемся списке выберите команду Сохранить как .
В диалоговом окне Сохранение документа в раскрывающемся списке Папка выберите папку D :\Общая\Группа М-11 .
В поле со списком Имя файла введите Создание документа .
Проверьте, чтобы в поле со списком Тип файла был выбран тип – Документ Word .
Щелкните кнопку Сохранить .
Создайте новый текстовый документ при загрузке программы с помощью загрузочного файла.
Технология выполнения:
Откройте папки С :\Program Files\Microsoft Office\Office12.
В папке Office 12 найдите файл WinWord и выполните двойной щелчок мыши на пиктограмме файла.
Сохраните созданный документ в своей рабочей папке с именем Создание документа с помощью панели быстрого доступа.
Технология выполнения:
На панели быстрого доступа щелкните кнопку Сохранить .
В диалоговом окне Сохранение документа из раскрывающегося списка Папка выберите папку D :\Общая\Группа М-11 .
В поле со списком Имя файла введите Создание документа .
Проверьте, чтобы в поле со списком Тип файла был выбран тип – Документ Word .
Щелкните кнопку Сохранить .
Упражнение 2
1. Откройте текстовый документ Текст 1 , расположенный в папке D :\Общая\Группа М-11 с помощью значка Мой компьютер .
Технология выполнения:
Выполните двойной щелчок мыши на значке Мой компьютер .
Откройте поочередно папки D :\, Общая, Группа М-11 .
Выделите файл Текст 1 .
Выполните команду Файл/Открыть .
2. Представьте открытый документ в Режиме чтения.
Технология выполнения:
Выполните команду Вид/Режим чтения.
3. Создайте новый документ с помощью панели быстрого доступа.
Технология выполнения:
Щелкните кнопку Создать на панели быстрого доступа.
1. Откройте текстовый документ Текст 1 , расположенный в папке D :\Общая\Группа М-11 с помощью программы Проводник .
Технология выполнения:
Вызовите контекстное меню кнопки Пуск .
Выберите пункт Проводник .
В левой панели проводника откройте папку D :\Общая\Группа М-11 .
В правой панели проводника откройте файл Текст 1 , выполнив двойной щелчок мыши на значке файла.
2. Представьте открытый документ в режиме Web -документа .
Технология выполнения:
Выполните щелчок мыши на кнопке Web -документ , расположенной на панели выбора режимов представления документа.
3. Создайте новый документ с помощью кнопки Office .
Технология выполнения:
Щелкните один раз левой кнопкой мыши на кнопке Office и выберите команду Создать в открывшемся списке.
1. Загрузите программу Microsoft Word . Откройте текстовый документ Текст 1 , расположенный в папке D :\Общая\Группа М-11 с помощью кнопки Office .
Технология выполнения:
Щелкните один раз левой кнопкой мыши на кнопке Office и выберите команду Открыть .
В диалоговом окне Открытие документа в раскрывающемся списке Папка откройте поочередно папки D :\, Общая, Группа М-11 .
Выделите файл Текст 1 .
Щелкните кнопку Открыть .
2. Представьте открытый документ в режиме Структуры.
Технология выполнения:
Щелкните кнопку Структура , расположенную на вкладке Вид ленты команд.
3. Создайте новый документ с помощью панели быстрого доступа.
Технология выполнения:
Щелкните кнопку Создать на панели быстрого доступа.
1. Загрузите программу Microsoft Word . Откройте текстовый документ Текст 1 , расположенный в папке D :\Общая\Группа М-11 с помощью панели быстрого доступа.
Технология выполнения:
Щелкните кнопку Открыть , расположенную на панели быстрого доступа.
В диалоговом окне Открытие документа в раскрывающемся списке Папка откройте поочередно папки D :\, Общая, Группа М-11 .
Выделите файл Текст 1 .
Щелкните кнопку Открыть .
2. Представьте открытый документ в режиме Черновик.
Технология выполнения:
Щелкните кнопку Черновик , расположенную на панели выбора режимов представления документа.
3. Создайте новый документ с помощью кнопки Office .
Технология выполнения:
Щелкните один раз левой кнопкой мыши на кнопке Office и выберите команду Создать в открывшемся списке.
Сохранение и открытие документов
В этом уроке вы узнаете, как присвоить имя своему документу, сохранить его на диске и ввести общую информацию о нем. Еще вы узнаете, как открыть документ, сохраненный ранее
Сохранение нового документа
Когда вы создаете документ в Word, по умолчанию он временно сохраняется в памяти компьютера под именем Документ n, где п — порядковый номер, начиная с 1. Этот документ "сохраняется" в памяти до тех пор, пока вы не выйдете из программы или не выключите компьютер. Для того чтобы сохранить документ навсегда, так, чтобы можно было найти его потом, следует присвоить ему имя и сохранить на диске.
1 Выберите команду Файл -> Сохранить или щелкните на кнопке Сохранить стандартной панели инструментов, или нажмите <Ctrl+ S>. Появится диалоговое окно Сохранение документа.
2. В текстовом поле Имя файла введите имя, которое вы хотите присвоить своему документу. Имя может иметь до 256 символов и описывать содержание документа.
3. Если вы хотите сохранить документ в другой папке или на другом диске, выберите их из раскрывающегося списка Папка.
4. Щелкните на кнопке Сохранить. Документ будет сохранен на диске, и имя, которое вы ему присвоили, появится в строке заголовка окна Word.
Рис. 4. 1. Диалоговое окно Сохранить
Сохранение документа в процессе работы
После того как вы дали имя документу и сохранили его, все равно нужно периодически его сохранять, чтобы минимизировать потерю данных в случае отключения электроэнергии или возникновения других проблем с системой. После того как вы назвали документ, его легко можно сохранить под тем же именем и в той же папке одним из следующих способов.
• Выберите команду Файл -> Сохранить.
• Щелкните на кнопке Сохранить стандартной панели инструментов.
• Нажмите <Ctrl+ S>.
Word автоматически использует текущее имя документа, поэтому диалоговое окно не появляется.
Изменение имени документа
После присвоения имени документу вам может понадобится переименовать его. Например, вы хотите оставить старую версию документа под его собственным именем и сохранить измененную версию под новым именем. Для изменения имени документа сделайте следующее.
1. Выберите команду Файл -> Сохранить как. Появится диалоговое окно, в котором в поле Имя файла будет представлено текущее имя документа.
2. В поле Имя файла замените имя файла на новое.
3. При необходимости выберите другую папку в списке Папка, чтобы сохранить свой документ в другом каталоге.
4. Щелкните на кнопке Сохранить — Word сохранит ваш документ под новым именем.
Рис. 4. 2. Ввод общей информации о документе
Использование свойств документа
Каждый документ Word имеет ряд свойств, которые его описывают. Некоторые из них содержат информацию, введенную вами, в то время как другие — информацию, автоматически созданную Word. Для того чтобы ввести или просмотреть свойства документа, выполните следующее.
1. Выберите команду Файл -> Свойства для открытия диалогового окна Свойства.
2. Щелкните на корешке вкладки Документ, как показано на рис. 4. 2.
3. Введите или отредактируйте информацию о документе, которая описана ниже.
4. Щелкните на кнопке ОК. Свойства документа сохранятся вместе с документом.
Здесь приведены свойства документа, которые вы будете использовать наиболее часто.
• Название. Введите название документа. Это не то же самое, что имя документа.
• Тема. Введите предложение, которое описывает тему документа.
• Автор. Word автоматически заполнит это поле именем пользователя, которое вы введете при установке программы. Вы можете изменить его при необходимости.
• Учреждение. Название вашего учреждения. Вводится автоматически, на основе информации, полученной от вас при инсталляции Windows.
• Группа. Введите слово или предложение, которое опишет тип документа.
• Ключевые слова. Введите одно или несколько слов, относящихся к содержанию документа.
• Заметки. Введите любую дополнительную информацию, которую вы хотите сохранить с документом.
Word автоматически создает статистику по каждому документу: количество слов, содержащихся в нем, дату и время его создания. Чтобы просмотреть статистику по документу, выберите команду Файл -> Свойства, а затем щелкните на корешке Статистика.
Открытие документа
Вы можете открыть любой документ, созданный в Word, для работы с ним. Кроме того, можно открывать документы, созданные с помощью других программ, таких как WordPerfect.
Чтобы сделать это, выберите команду Файл -> Открыть или щелкните на кнопке Открыть стандартной панели инструментов. Появится диалоговое окно Открытие документа (рис. 4. 3).
Рис. 4. 3. Диалоговое окно Открытие документа
Список файлов показывает все документы Word и подкаталоги в текущей папке. Рядом с именами документов находятся маленькие пиктограммы с изображением страницы, а рядом с подкаталогами — с изображением папок. В поле Папка высвечивается имя текущей папки. В диалоговом окне вы можете сделать следующее.
• Открыть файл, щелкнув на его имени в списке файлов или набрав его имя в поле Имя файла, а затем нажав клавишу <Enter> или щелкнув на кнопке Открыть. Можно просто дважды щелкнуть на имени файла.
• Просмотреть содержимое файла, щелкнув на его имени, а затем — на кнопке Просмотр. Щелкнув на кнопке Просмотр еще раз, вы отмените просмотр.
• Найти файлы, не являющиеся документами Word. Для этого из раскрывающегося списка Тип файлов выберите нужный тип файла.
• Перейти к папке на один уровень выше, щелкнув на кнопке Переход на один уровень вверх.
• Перейти в любую папку, дважды щелкнув на ее имени в списке папок.
• Из раскрывающегося списка поля Папка выбрать нужную папку.
Если нужно быстро открыть документ, с которым вы недавно работали, обратитесь к списку недавно использовавшихся файлов Word вместо диалогового окна Открыть. Для просмотра этого списка откройте меню Файл, — список находится в конце меню, прямо над командой Выход. Чтобы открыть файл из списка, выберите соответствующий ему номер или имя файла. В списке находятся файлы, которые вы сохранили совсем недавно. Если вы только что установили Word, конечно, список будет пустым. Если вы сохраняли файлы, но список не высвечивается, — читайте следующий абзац.
Вы можете задавать количество файлов в этом списке и появление списка вообще. Выберите команду Сервис -> Параметры — появится диалоговое окно Параметры. Щелкните на корешке Общие, а затем установите флажок опции Помнить список из. файлов, чтобы включить/выключить вывод списка на экран. Для изменения количества файлов, включаемых в список, введите их число в поле Помнить список из. файлов или щелкните на кнопке со стрелкой, указывающей вверх/вниз, чтобы изменить заданное количество. Щелкните на кнопке ОК, когда закончите.
В этом уроке вы научились присваивать имя своему документу, сохранять его на диске и вводить общую информацию о нем. Еще вы узнали, как открыть документ, сохраненный ранее. В следующем уроке вы узнаете, как пользоваться диалоговой справочной системой Word.
Публикация - своего р ода памятка, содержащая примеры кода для:
1. заполнение шаблона Word данными из 1С;
2. заполнение колонтитулов Word данными из 1С;
3. заполнение таблицы в Word данными из 1С;
Начало работы
В большинстве случаев перед нами ставится следующая задача:
Нужно открыть документ Word, заполненный данными из 1С.
Для этого нам нужно подготовить шаблон документа Word. Не путайте это с Word Template, специальные файлы Word, которые содержат настройки документов для многократного использования. Нам нужен обычный вордовский документ с расширениеми *.docx или *.doc. А далее поместить этот документ в макет с двоичными данными.
Читатель может справедливо заметить, что используется модальный вызов, и погрозить автору пальцем. И будет прав.
Далее я обычно создаю структуру полей, которые будут заполняться в шаблоне. Такой подход позволяет унифицировать процедуру заполнения шаблона, а также упростить последующее его изменение.
Углубимся немножко в принципы работы Word.
Каждый документ Word разделен на разделы, которые состоят из страниц.
Для каждого раздела есть возможность создавать свою нумерацию элементов, уникальные колонтитулы и настройки параметров страницы. Так, например, чтобы повернуть одну из страниц (вывести на печать как альбомную), нужно создать под неё отдельный раздел.
Каждая страница Word разделена на несколько областей:
- Верхний колонтитул
- Основной текст
- Нижний колонтитул
Нужно заметить, что в каждом разделе может быть уникальный колонтитул для первой страницы.
Заполнение пользовательских параметров
При обращении к этим коллекциям мы можем выполнять в них поиск и получать встроенные объекты, например, таблицы.
Теперь мы более-менее поняли, как обращаться к областям Word, можем в них пошуровать и выполнить замену наших параметров:
Рассмотри подробнее метод Execute. Его параметры идентичны диалоговуму окну при замене/поиске непоседресвенно из MS Word:
А вот и основные параметры (вольный перевод справки MSDN):
- Искомый текст - Строка - Текст для замены. Текст может содержать специальные параметры. Например, ^p - абзац, ^t - табуляция
- Чувствительность к регистру - Булево - Если истина, то поиск будет осуществляться с учетом регистра
- Слова целиком - Булево - Если истина, то ищутся слова целиком. Вхождение слов не учитываются. Например, при поиске слова дом будет пропущено слово домашний
- Использовать подстановочные знаки - Булево - Если истина, то используются встроенные регулярные выражения.
- Искать похожие - Булево - Если истина, то результат поиска будет содержать похожие слова
- Искать все формы - Булево - Если истина, то результат поиска будет содержать различные формы слов.
- Поиск сначала - Булево - Если истина, то будет осуществляться с начала до конца документа
- Охват - WdFindWrap - Опредяляет направление поиска
- Формат - Format - Формат искомого текста
- Строка замены - Строка - Строка, на которую будет заменен исходный текст
- Количество замен - WdReplace - Определяет сколько раз выполнять замену
- и т.д.
WdReplace - Constant Value:
wdReplaceAll 2
wdReplaceNone 0
wdReplaceOne 1
Данный метод не позволяет получить "Строка замены" как выделенную область, но он работает где-то в 10 раз медленнее. Для получения выделенной области можно воспользоваться немножко откорректированной типовой функцией:
Уже получив выделенную область можно отредактировать стиль текста, шрифт и т.д.
Также есть второй подход, использующий такой объект Word, как поля. Мне он не очень нравится, т.к. в больших документах, порядка 100 страниц, эти поля начинают глючить (исчезать, не подставлять нужные значения) и прочая ерунда. Ну по крайней мере в Word 2007. Но я его все равно приведу:
При подготовке шаблона в тело документа необходимо навставлять полей с типом DOCVARIABLE (можно вставлять горячими клавишими Ctrl+F9).
Доступ к таким полям можно получить следующим нехитрым образом:
Заполнение таблиц по шаблону
Итак, мы заполнили параметры в основном тексте документа, заменили параметры в колонтитулах, но у нас еще есть одна неприятность - нужно заполнить таблицу.
Подход, описанный ниже, годится только для таблиц с заранее известным форматом. Т.е. мы можем как угодно отформатировать таблицу и её строки изначально. Но потом изменять довольно-таки проблематично.
К таблицам можно получить доступ через области документа.
Далее, получив таблицу, мы работаем с ней по привычной схеме - строки, столбцы.
Для задания форматирования легче в шаблоне создать таблицу с пустой первой строкой, которую мы в последующем удалим.
Вот, в принципе, и все. Основные вопросы, возникающие при работе с Word, я постарался осветить. Надеюсь, данный обзор поможет вам в работе =)
Спасибо за советы и комментарии:
v3rter, monkbest
Критика только приветствуется. Чем больше замечаний, тем лучше будет гайд =)
Немного философии. В действительности, зачем нужно формировать из информационной базы текстовые файлы, и почему обязательно в формате Ворд?
Потому, что пользователь для работы с текстом использует текстовый процессор. Строго говоря, кроме Ворда всегда существовали альтернативные программы, не уступающие по функционалу. Сейчас 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 это делается так:
Читайте также: