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

14.07.13

Разработка - Инструментарий разработчика

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Работа с MS Word.rar
.rar 19,37Kb
56
56 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

См. также

Инструментарий разработчика Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Консоль запросов к базе SQL, не требующая внешних компонент

10 стартмани

29.04.2015    22278    57    Gvozdod    8    

16

Инструментарий разработчика Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.

1 стартмани

23.04.2014    168351    1882    Alexoniq    1596    

499

Инструментарий разработчика Программист Платформа 1С v7.7 Платформа 1С v8.3 Россия Абонемент ($m)

Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

1 стартмани

04.09.2013    33406    61    O-Planet    78    

49

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

На днях встретил вопрос на форуме про возможность внесения изменений в конфигурацию без долгого сохранения в рабочей базе большого объема. Вот решил поделиться опытом, как это делал я. База у нас была объемом порядка 120 Гб. К базе обращался сайт в режиме 24/7, поэтому важно было быстро сохранять изменения и желательно без последующего монопольного запуска для восстановления индексов и процедур и без отключения пользователей от базы. Это первая часть статьи и посвящена она справочникам. С одной стороны - это самый простой объект, с другой стороны, именно про справочник спрашивалось на форуме. Если статья будет востребована, то я напишу аналогичные про документы, регистры и может еще что.

1 стартмани

13.08.2013    21798    Reptile    5    

35

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........

1 стартмани

21.02.2013    18343    36    MarSeN    14    

17

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    36348    51    venger    7    

23

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Весь код на 1С 7.7, собранный для повторного использования за 8 лет работы.

10 стартмани

25.11.2012    35451    249    adhocprog    51    

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

Прикрепляю что открывается
Прикрепленные файлы:
4. adamx 37 14.07.13 23:03 Сейчас в теме
(1) Доня, Я прикрепил архив. В нем два файла. Один из них формата Word. В нем примеры полей-закладок. Второй - вы уже открыли - это обработка. Она открывает указанный файл и заполняет поля закладки нужными значениями из справочника договоров. Извиняюсь, если недостаточно подробно расписал :).
2. ltfriend 14.07.13 17:24 Сейчас в теме
Зачем что-то вставлять? Можно просто наделать в нужных местах закладок, дать им имена и работать с ними через bookmarks. Идея не нова и уже давно используется.
DmitrySinichnikov; redsun; +2 Ответить
6. Lik2707 17.07.13 05:43 Сейчас в теме
У меня сделано также, как в (2). В нужных местах закладки, именованные, с ними и работаем в 1С - присваиваем нужные значения и выводим на печать. Пока никто не жалуется!!! :)
3. ltfriend 14.07.13 17:25 Сейчас в теме
P.s. Я еще и табличные части в ворд выводил
5. drogs 14.07.13 23:50 Сейчас в теме
хороший простой пример
7. adamx 37 17.07.13 08:11 Сейчас в теме
А чем ваш вариант отличается от предложенного?
8. Silenser 612 17.07.13 09:38 Сейчас в теме
Содержательной части, как бы маловато ;)
ИМХО, лучше вместо полей использовать переменные Word, т.к. в юридических документах одно и то же значение часто повторяется. В вашем примере придется для каждого такого значения использовать отдельное поле, а в случае с переменными - только одну, т.к. ее можно вставлять в документ произвольное число раз. Так же можно использовать более простой для самостоятельного редактирования пользователями способ - внесение в текст документа меток (редко используемых символов), которые потом заменяются на нужные вам значения.
9. Михаська 12 17.07.13 10:44 Сейчас в теме
Хороший пример, возьму на заметку, может пригодится
10. CagoBHuK 32 18.07.13 11:02 Сейчас в теме
11. kabantus 06.12.22 15:51 Сейчас в теме
Большое спасибо! Помогло для замены текста с сохранением новых абзацев в Word 2016!
// Теперь пишем значение в текстовое поле
Док.Bookmarks(СокрЛП("Покупатель")).Select();
Док.Application.Selection.TypeText(СокрЛП(ВыбДоговор.Владелец.ПолнНаименование));
Оставьте свое сообщение