1С: Работа с внешними файлами. Работа с Word (1 часть)

Aug 15, 2022 15:32

Вставка таблицы в документ Word

Пример вставки таблицы в Word из 1С

//создаем объект для работы с Word
Word = Новый COMОбъект("Word.Application");

//создаем новый документ
Doc = Word.Documents.Add();

//определяем место вставки
Range = Doc.Range(0);
//создаем таблицу 2х2
Table = Doc.Tables.Add(Range, 2, 2);
Table.Style = "Сетка таблицы";

//определяем ширину столбцов
Table.columns(1).Width = 20;
Table.columns(2).Width = 50;

//заполняем первую строку
Table.Cell(1, 1).Select();
Word.Selection.Font.Bold = Истина;
Word.Selection.TypeText("1");
Table.Cell(1, 2).Select();
Word.Selection.TypeText("Один");

//заполняем вторую строку
Table.Cell(2, 1).Select();
Word.Selection.Font.Bold = Истина;
Word.Selection.TypeText("2");
Table.Cell(2, 2).Select();
Word.Selection.TypeText("Два");

//показываем документ на экране
Word.Visible = Истина;

Вставка текста в документ Word

Пример вставки текста в документ Word из 1С

//создаем объект для работы с Word
Word = Новый COMОбъект("Word.Application");

//добавляем пустой документ
Doc = Word.Documents.Add();

//добавляем 10 параграфов
Для Н = 1 По 10 Цикл
Par = Doc.Paragraphs.Add();
Par.Range.InsertBefore("Параграф №" + Н);
КонецЦикла;

//вставляем текст в начало докуменета
Range = Doc.Range(0);
Range.InsertBefore("Начало!" + Символы.ПС);

//вставляем текст после 16-го символа
Range = Doc.Range(16, 16);
Range.InsertAfter("[Вставка]");

//показываем документ на экране
Word.Visible = Истина;

Выделение текста

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

//создаем объект для работы с Word
Word = Новый COMОбъект("Word.Application");

//создаем новый документ
Doc = Word.Documents.Add();

//добавляем параграф
Par = Doc.Paragraphs.Add();
Par.Range.InsertBefore("Выделяемый текст");

//выделяем первое слово
Doc.Range(0, 10).Select();

//копируем выделение в буфер обмена
Word.Selection.Copy();

//меняем размер шрифта и т.д.
Word.Selection.Font.Size = 16;

//показываем документ на экране
Word.Visible = Истина;

Выравнивание текста

Пример выравнивания текста в документе Word из 1С

//создаем объект для работы с Word
Word = Новый COMОбъект("Word.Application");

//создаем новый документ
Doc = Word.Documents.Add();

//добавляем параграф
Par = Doc.Paragraphs.Add();
Par.Range.InsertBefore("Заголовок");
Par = Doc.Paragraphs.Add();
Par.Range.InsertBefore("Выравниваем этот текст");

//0 - по левому краю
//1 - по центру
//2 - по правому краю
//3 - по ширине
//текущей параграф по центру
Par.Alignment = 1;
//заголовок по правому краю
Doc.Paragraphs(1).Alignment = 2;

//показываем документ на экране
Word.Visible = Истина;

Замена текста в документе Word

Пример замены текста в документе Word из 1С

//создаем объект для работы с Word
Word = Новый COMОбъект("Word.Application");

//создаем новый документ
Doc = Word.Documents.Add();

//добавляем параграф
Par = Doc.Paragraphs.Add();
Par.Range.InsertBefore("Сбербанк ИНН/КПП: [ИНН]/[КПП]");

//заменяем ИНН
Word.Selection.Find.Text = "[ИНН]";
Word.Selection.Find.Replacement.Text = "7707083893";
Word.Selection.Find.Execute(, , , , , , , , , , 2);

//заменяем КПП
Word.Selection.Find.Text = "[КПП]";
Word.Selection.Find.Replacement.Text = "773601001";
Word.Selection.Find.Execute(, , , , , , , , , , 2);

//показываем документ на экране
Word.Visible = Истина;

Открытие документа Word

Пример открытия документа Word из 1С

//создаем объект для работы с Word
Word = Новый COMОбъект("Word.Application");

//открываем документ C:\tmp\1.docx
Word.Documents.Add("C:\tmp\1.docx");

//показываем документ на экране
Word.Visible = Истина;

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

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

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

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

Документ = Word.Documents.Open ("C:\готовые документы\файл.docx");
Или

Документ = Word.Documents.Add ("C:\шаблоны\файл.docx");

Преобразование в таблицу

Пример преобразования документа Word в таблицу из 1С

//создаем объект для работы с Word
Word = Новый COMОбъект("Word.Application");

//создаем новый документ
Doc = Word.Documents.Add();

//добавляем параграф
Par = Doc.Paragraphs.Add();
Par.Range.InsertBefore("Таблица умножения:");

//формируем строку с разделителями
Сторока = "";
Для Н1 = 1 По 9 Цикл
Для Н2 = 1 По 9 Цикл
Сторока = Сторока + Н1 * Н2 + ?(
Н2 = 9, "", Символы.Таб);
КонецЦикла;
Сторока = Сторока + Символы.ПС;
КонецЦикла;
Par.Range.InsertAfter(Сторока);

//переходим на строчку вниз
Word.Selection.MoveDown(5, 1, 0);
//выделяем таблицу
Word.Selection.MoveDown(5, 9, 1);

//конвертируем текст в таблицу
Word.Selection.ConvertToTable(1, 9, 9, 0);
Word.Selection.Tables(1).Style = "Сетка таблицы";

//показываем документ на экране
Word.Visible = Истина;

1С: Работа с внешними файлами. Работа с Word (2 часть)

Смотрите также:
Электронный учебник по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, ни­дер­ландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up