Создание договоров по шаблонам 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.2024

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

Версия 1.4 от 02.05.2024

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

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

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

Версия 1.1 от 23.11.2024

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

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 не будет опубликован. Обязательные поля помечены *