gifts2017

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

Опубликовал Дмитрий (adamx) в раздел Печать - Универсальные печатные формы

Встала недавно задача для одной организации, которая все еще на 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(СокрЛП(ВыбДоговор.Владелец.ПолнНаименование));

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

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

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

Наименование Файл Версия Размер
Работа с MS Word.rar 42
.rar 19,37Kb
13.07.13
42
.rar 19,37Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Дониэла Иванова (Доня) 14.07.13 13:27
<<Это делается на закладке "Разработчик". Там в группе "Инструменты управления" есть кнопка "Инструменты предыдущих версий". >>
Где это все ???
Открываю файл .ert
а там ничего это нет.
Или поподробнее распишите.
И где файл: Word"
<<Первым делом надо в файле Word создать текстовые поля, которые будут заполняться из 1С>>

Прикрепляю что открывается
Прикрепленные файлы:
2. Павел Толкачев (ltfriend) 14.07.13 17:24
Зачем что-то вставлять? Можно просто наделать в нужных местах закладок, дать им имена и работать с ними через bookmarks. Идея не нова и уже давно используется.
DmitrySinichnikov; redsun; +2 Ответить 1
3. Павел Толкачев (ltfriend) 14.07.13 17:25
P.s. Я еще и табличные части в ворд выводил
4. Дмитрий (adamx) 14.07.13 23:03
(1) Доня, Я прикрепил архив. В нем два файла. Один из них формата Word. В нем примеры полей-закладок. Второй - вы уже открыли - это обработка. Она открывает указанный файл и заполняет поля закладки нужными значениями из справочника договоров. Извиняюсь, если недостаточно подробно расписал :).
5. Роман Романов (drogs) 14.07.13 23:50
6. Lika Ivanova (Lik2707) 17.07.13 05:43
У меня сделано также, как в (2). В нужных местах закладки, именованные, с ними и работаем в 1С - присваиваем нужные значения и выводим на печать. Пока никто не жалуется!!! :)
7. Дмитрий (adamx) 17.07.13 08:11
А чем ваш вариант отличается от предложенного?
8. Алексей Соловьев (Silenser) 17.07.13 09:38
Содержательной части, как бы маловато ;)
ИМХО, лучше вместо полей использовать переменные Word, т.к. в юридических документах одно и то же значение часто повторяется. В вашем примере придется для каждого такого значения использовать отдельное поле, а в случае с переменными - только одну, т.к. ее можно вставлять в документ произвольное число раз. Так же можно использовать более простой для самостоятельного редактирования пользователями способ - внесение в текст документа меток (редко используемых символов), которые потом заменяются на нужные вам значения.
9. Михаил М (Михаська) 17.07.13 10:44
Хороший пример, возьму на заметку, может пригодится
10. Данила Елистратов (CagoBHuK) 18.07.13 11:02