Создание договоров по шаблонам Word в УТ 11.2, БП 3.0 с возможностью хранения в справочнике "Файлы"




Публикация предназначена тем, кто ведет договоры в УТ 11 не только в справочнике «Договоры с контрагентами», но также формирует и согласовывает с контрагентами договоры в формате Word (*.doc). А так как программисты люди ленивые и я не являюсь исключением в этом (хорошем) смысле :), была создана эта печатная форма. Но это не простая печатная форма, а инструмент, который позволяет на основании шаблона, хранящегося в информационной базе в справочнике «Файлы», быстро заполнять и сохранять тут же в справочник «Файлы», но в другую папку, уже заполненный на основании шаблона договор в формате Word.

Хранение файлов с договорами в конфигурации (или томах) позволяет всегда иметь все под рукой ну и бонусом быстрое заполнение договоров.

Принцип работы

1) Все шаблоны хранятся в справочнике "Файлы" в определенной папке (у нас это папка "Шаблоны договоров", у вас может быть другая). Под шаблоном надо понимать заполненный договор, в котором не проставлены реквизиты организации, контрагента и некоторые доп. условия. Все переменные, которые зависят от конкретного договора (номер, дата, реквизиты организации и контрагента и т.п.) в шаблоне указываются как <Переменная>, при формировании из шаблона конкретного договора эти переменные заменяются конкретными значениями.

2) Готовые заполненные договора в формате Word хранятся аналогично в справочнике "Файлы", но они уже заполненные и именно они согласовываются с контрагентами. При хранении версий удобно потом смотреть, что было изменено в договорах.

3) В "Счет на оплату клиенту", "Заказ клиента", или справочники "Контрагенты", "Договоры с контрагентами" добавлена печатная форма, которая называется "Создание договора по шаблону Word". При ее открытии некоторые значения запоминаются, некоторые подставляются автоматически.

4) После заполнения всех реквизитов в печатной форме, есть возможность до формирования договора проверить, что подставится в формируемый договор.

5) Есть два режима формирования: просто отображение заполненного doc-файла договора с открытием в Word, или сохранения заполненного doc-файла в справочник "Файлы" и затем открытие карточки файла в справочнике для дальнейшего открытия.

Можно долго все объяснять, но проще показать, как это работает:

Демонстрация

PS: Прообраз обработки был найден в сети Интернет (я так и не вспомнил, где же ее я взял), но обработка очень сильно переделана и завязана на работу с файлами, которые будут храниться в самой конфигурации, или отдельных томах.

Последние обновления:

[+] — новый функционал, [*] — изменение, [!] — исправление ошибки

Версия 1.7 от 22.10.19

[!] Исправлена ошибка "Поле объекта не обнаружено (ОГРН)". Спасибо за помощь Дмитрию Кузину.

Версия 1.6 от 15.04.19

[+] Добавлена возможность автоматического добавления дополнительных реквизитов договора как параметров автоматически.

[*] Когда в 1С поля не заполнены сделана замена текста на пустое значение.

[!] Исправлена найденные ошибки

Спасибо за помощь Сорокину Сергею.

Версия 1.6 от 19.12.17

[!] Исправлена ошибка, которая возникала в УТ 11.4

Версия 1.5 от 03.10.2026

[!] В связи с обновлением методов в БП 3.0 для работы с файлами, обработка изменена.

Версия 1.4 от 02.05.2026

[+] Добавлена поддержка конфигурации Бухгалтерия предприятия 3.0

[*] В коде добавлены области для платформы 8.3

[*] Исправлена ошибка для УТ 11.2

Версия 1.1 от 23.11.2026

[!] В некоторых случаях не загружался шаблон из базы на сервере при выборе шаблона (хотя если он выбирался ранее эта ошибка не проявлялась). Ошибка устранена.

54 Comments

  1. kent2007

    как быть с табличной частью?

    Reply ↓
  2. Diversus

    (1) kent2007, табличные части не поддерживаются.

    Reply ↓
  3. kent2007

    очень жаль. ктоб сделал по типу как в БП

    Reply ↓
  4. Diversus

    (3) kent2007, в чем проблема? Вот ваш шанс! 😉

    Reply ↓
  5. Spektr

    В терминале (на сервере, где нет установленного Word) будет работать?

    Reply ↓
  6. Diversus

    (5) Spektr, будет работать только там, где установлен Word

    Reply ↓
  7. inforomanov2013

    работает с ERP 2.1??

    Reply ↓
  8. Diversus

    (7) inforomanov2013, не проверял, т.к. нет ERP

    Reply ↓
  9. kit-krasn

    У меня к вам вопрос, какие права нужно дать менеджеру чтобы он смог шаблоны добавлять. Перерыл все. Не могу понять. Не видит файлов и папок!! И еще один вопрос: может ли быть реализована сумма и сумма прописью из договора подтягивать. За ранее благодарен.

    Reply ↓
  10. Diversus

    (9) kit-krasn, нужны права для работы с файлами. Суммы добавить можно, может позже это сделаем

    Reply ↓
  11. kit-krasn

    (10) права то даны, но не работает! Проверял не раз! А есть возможность посмотреть ?

    Reply ↓
  12. kit-krasn

    (10) это было бы очень хорошо! Есть еще пара идей, если интересно можем обсудить в личке?)

    Reply ↓
  13. Diversus

    (12) kit-krasn, дорабатываем только по мере возможностей. Сейчас явно не то время когда можем доработать.

    Reply ↓
  14. embria

    Видимо взято от сюда http://infostart.ru/public/92963/

    Виталий подскажите где хранятся сами макеты печатных форм? подойдет ли Печатная форма для УНФ

    Reply ↓
  15. Diversus

    (14) сами макеты хранятся в справочнике «Файлы», файл макета это обычный doc-файл, там где нужно вставить переменную в тексте, ставится <Переменная>.

    Reply ↓
  16. gradi

    (3) что-то универсальное делать муторно, а заточить под определенный документ не сложно. На заполнении ворда и экселя уже собаку съели.

    Reply ↓
  17. Diversus

    (16)

    елать муторно, а заточить под определенный документ не сложно. На заполнении ворда и экселя у

    Да, но тем не менее — это хороший инструмент, которым мы пользуемся сами в своей работе. В последней версии работает в УТ 11.2 и БП 3.0

    Reply ↓
  18. G297

    Как добавить в параметры сумму документа и сумму прописью,что бы все сохранялось в таблице параметров

    Или добавлять на уровне кода?

    Reply ↓
  19. G297

    В общем париться особо не стал,подставил сумму договора и сумму прописью вместо e-mail организации и покупателя..

    Сумму договора сделал через дополнительный реквизит справочника договоры.

    ОГРН не прописан,но я вместо ОКПО задействовал

    А так все толково сделано.Можете платный вариант предлагать…

    Reply ↓
  20. G297

    Добавил формирование спецификации по табличной части счета на оплату в БП 3.0

    Reply ↓
  21. user871995

    Если фамилия неправильно склоняется, как это можно исправить ? Кроме ручного исправления.

    Reply ↓
  22. Diversus

    (21)

    илия неправильно склоняется, как это можно исправить ? Кроме ручного исправления.

    На данный момент никак. Мы убрали зависимости от других библиотек и тот способ, который сейчас он не всегда работает.

    Reply ↓
  23. ssn5810
  24. Diversus

    (23) Нет, это не тоже самое. У меня создание договоров по шаблонам в WORD.

    Не знаю как это может быть «тем же самым».

    Reply ↓
  25. anterehin

    Коллеги, доброго времени суток!

    Вопрос думаю ко всем. Виталий если можете сориентируйте, если я уже первоначально не прав.

    Пробую обработку версии 1.6 на конфигурации УТ 11.2.3.150 (Платформа 8.3.8).

    При выводе на печать договора открывается форма заполнения. При попытке сформировать договор выдаёт ошибку.

    {ОбщийМодуль.РаботаСФайламиСлужебныйВызовСервера.Модуль(1577)}: Преобразование значения к типу Число не может быть выполнено

    ПолноеИмяФайлаВРабочемКаталоге = РабочийКаталогВладельца + ИмяФайла;

    Происходит в момент сохранения шаблона.

    РабочийКаталогВладельца при этом является уникальным идентификатором.

    Заранее большое спасибо.

    Reply ↓
  26. anterehin

    (25) Немного подкорректировал и заработало. Всем спасибо. Суть корректировки выкладывать не буду, так как не уверен что она универсальна для всех релизов. На своём запустил.

    Reply ↓
  27. Diversus

    (26) Дело может быть в том, что в последней работает а у Вас нет.

    Reply ↓
  28. anterehin

    (27) В последней дам. Там расхождения в общих модулях получились и параметрах. Сменил вызов процедуры с одного общего модуля (где её не было), на другой. Скорректировал передаваемые параметры и всё заработало. Спасибо большое.

    Reply ↓
  29. Diversus

    (28) Ок. Надо будет поправить.

    Для БП 3.0 пока работает без проблем (сами пользуемся).

    Reply ↓
  30. anterehin

    (29) Попозже тогда в личку скину что подправил. Надо наверное будет разделение сделать на версии, но это уже Вам виднее.

    Reply ↓
  31. allenatore

    (30) И мне скиньте , если можно , пожалуйста

    Reply ↓
  32. Diversus

    (31)

    &НаСервере
    Функция ПолучитьДанныеФайла()
    
    //ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(Объект.Шаблон, , УникальныйИдентификатор);
    ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(Объект.Шаблон,УникальныйИдентификатор,,);
    
    //ДанныеФайла = РаботаСФайлами.ДанныеФайла(Объект.Шаблон, УникальныйИдентификатор, , Истина);
    ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(Объект.Шаблон);
    
    Возврат ДанныеФайла;
    
    КонецФункции

    Показать

    Reply ↓
  33. allenatore

    (32) Да заработало, огромнейшее спасибо 🙂

    Reply ↓
  34. user940174

    А что нужно делать с табличной частью?

    Reply ↓
  35. Diversus

    (34) Вывод табличных частей не поддерживается обработкой, только реквизиты.

    Reply ↓
  36. s00r

    При выборе шаблона ошибка:

    {ОбщийМодуль.РаботаСФайламиСлужебныйВызовСервера.Модуль(1353)}: Преобразование значения к типу Число не может быть выполнено

    ПолноеИмяФайлаВРабочемКаталоге = РабочийКаталогВладельца + ИмяФайла;

    1С:Предприятие 8.3 (8.3.11.3034)

    Управление торговлей, редакция 11.1 (11.1.10.138)

    Reply ↓
  37. Diversus

    (36) Все зависит от релиза конфигурации.

    Reply ↓
  38. s00r

    (37) я ведь написал релиз) вообще нашел решение выше в комментариях, пока вроде работает, спасибо)

    Reply ↓
  39. tiniji

    Спасибо. Хорошая обработка. Добавил еще туда ОГРН организации. Есть еще ошибка или это специально сделано: если пустые строки, то они не заменяются. Например Должность не указана, то в Word так и останется <Должность>.

    Reply ↓
  40. Diversus

    (39)

    Есть еще ошибка или это специально сделано: если пустые строки, то они не заменяются. Например Должность не указана, то в Word так и останется .

    Это сделано специально. Т.к. как правило в договорах то, что написано необходимо заполнить. Поэтому если останется <Должность> при вычитывании эту строку можно заменить вручную.

    Reply ↓
  41. Cybersant

    Планируется добавление реквизитов для обработки табличных частей?

    Reply ↓
  42. Diversus

    (41) Надо понимать, что эта обработка бесплатная и дорабатывается на голом энтузиазме автора, т.е. меня.

    Пока в моей работе не было такой необходимости вставить табличную часть, если мне понадобится, сделаю.

    Reply ↓
  43. Cybersant

    (42)как на это повлиять?))

    Reply ↓
  44. Diversus

    (43) Боюсь, что никак.

    Reply ↓
  45. BigCat

    Добрый день.

    Скачал — поставил — настроил.

    Из формы добавил новый реквизит.

    При сохранении шаблона наблюдаю ошибку:

    «Метод объекта не обнаружен (Сохранить)».

    Конфа — БП 3.0.70.39

    Платформа — 8.3.14

    БД — файловая

    Reply ↓
  46. Diversus

    (45) В БП последней версии на 14-ой платформе все работает. Сами пользуемся этим постоянно.

    Reply ↓
  47. BigCat

    Пишу, с чем столкнулся:



    С чем может быть трабл?

    ОС — серверная

    База — файловая

    Reply ↓
  48. demaxxx

    Нужно тоже самое, только в виде расширения

    Reply ↓
  49. Diversus

    (48) Так сделайте. В чем проблема 🙂

    Reply ↓
  50. Papilion

    Добрый день! На комплексной 2.4.8.92 будет работать?

    Reply ↓
  51. Diversus

    (50) Не проверял, не знаю. Точно работает на последней БП 3.0 и УТ 11.4.

    Reply ↓
  52. Papilion

    (51) На типовой комплексной заработала нормально, свою доработанную сейчас буду допиливать.

    Reply ↓
  53. Evil Beaver

    Виталий, привет. А неинтерактивно она умеет формироваться? На сервере без участия человека?

    Reply ↓
  54. Diversus

    (53) Привет, Андрей. Если дописать, я думаю да, сможет.

    Можно (если не нужна красота в Word-документах) использовать просто табличный документ и заполнять его как обычно, а уже сохранять в Word (метод Сохранить умеет не только в MXL, но и во много других форматов сохранять). Это будет гораздо быстрее и наверное на сервере лучше использовать такой подход.

    Моя обработка предназначена для формирования по заготовке и сохранения в справочник Файлы для дальнейших правок по необходимости.

    Reply ↓

Leave a Comment

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