Работа с файлами MS WORD из 1C

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

 Первым делом надо в файле Word создать текстовые поля, которые будут заполняться из 1С. Это делается на закладке «Разработчик». Там в группе «Инструменты управления» есть кнопка «Инструменты предыдущих версий». Нажав на неё надо выбрать вставку реквизита типа текстовое поле и на месте курсора появится серый прямоугольник. Далее придумываем ему имя, под которым мы будем обращаться к этому полю из 1С и задаем значение по умолчанию, если это нужно.

И таким образом нужно обозначить все места, которые мы будем менять в файле Word. В моем случае это были поля с наименованием клиента, доверенностью клиента, лицом подписывающим договор со стороны клиента, отсрочкой платежа, реквизитами клиента, может еще что забыл… 

Сохраняем исправленный файл в каталоге и далее будем работать с этим файлом.

Из 1С создаем объект типа Word.Application и далее через реквизит Bookmarks работаем с нашими полями

MsWord = СоздатьОбъект(«Word.Application»);
MsWord.Application.Visible = 1;
Word = MsWord.Application;
Word.Documents.Open(ВыбФайл,,1);
Док=Word.Documents(1);
Док.Activate();

// Теперь пишем значение в текстовое поле
Док.Bookmarks(СокрЛП(«Покупатель»)).Select();
Док.Application.Selection.TypeText(СокрЛП(ВыбДоговор.Владелец.ПолнНаименование));

// И так далее для каждого поля
// Полный текст обработки для печати договора я привел в файле.
:

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

10 Comments

  1. Доня

    <<Это делается на закладке «Разработчик». Там в группе «Инструменты управления» есть кнопка «Инструменты предыдущих версий». >>

    Где это все ???

    Открываю файл .ert

    а там ничего это нет.

    Или поподробнее распишите.

    И где файл: Word»

    <<Первым делом надо в файле Word создать текстовые поля, которые будут заполняться из 1С>>

    Прикрепляю что открывается

    Reply ↓
  2. ltfriend

    Зачем что-то вставлять? Можно просто наделать в нужных местах закладок, дать им имена и работать с ними через bookmarks. Идея не нова и уже давно используется.

    Reply ↓
  3. ltfriend

    P.s. Я еще и табличные части в ворд выводил

    Reply ↓
  4. adamx

    (1) Доня, Я прикрепил архив. В нем два файла. Один из них формата Word. В нем примеры полей-закладок. Второй — вы уже открыли — это обработка. Она открывает указанный файл и заполняет поля закладки нужными значениями из справочника договоров. Извиняюсь, если недостаточно подробно расписал :).

    Reply ↓
  5. drogs

    хороший простой пример

    Reply ↓
  6. Lik2707

    У меня сделано также, как в (2). В нужных местах закладки, именованные, с ними и работаем в 1С — присваиваем нужные значения и выводим на печать. Пока никто не жалуется!!! 🙂

    Reply ↓
  7. adamx

    А чем ваш вариант отличается от предложенного?

    Reply ↓
  8. Silenser

    Содержательной части, как бы маловато 😉

    ИМХО, лучше вместо полей использовать переменные Word, т.к. в юридических документах одно и то же значение часто повторяется. В вашем примере придется для каждого такого значения использовать отдельное поле, а в случае с переменными — только одну, т.к. ее можно вставлять в документ произвольное число раз. Так же можно использовать более простой для самостоятельного редактирования пользователями способ — внесение в текст документа меток (редко используемых символов), которые потом заменяются на нужные вам значения.

    Reply ↓
  9. Михаська

    Хороший пример, возьму на заметку, может пригодится

    Reply ↓
  10. CagoBHuK

    Еще один «Hello World!»?

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *