УТ11: Печатная форма договора в Word/Writer (с использованием БСП)

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

Печатная форма договора в Word/Writer для Управление Торговлей 11 (с использованием БСП)

Позволяет выводить договор с контрагентом в Word (MS Office) или Writer (OpenOffice/LibreOffice) с заполненными реквизитами обеих сторон, с возможностью правки и сохранения данных о договоре (№, дата, срок действия), о подписантах с обоих сторон (должность, ФИО) и использованием штатных возможностей встроенной в Управление Торговлей 11 Библиотеки Стандартных Подсистем (БСП). Обработка использует исключительно штатные возможности УТ11, поэтому не требует внесения каких-либо изменений в конфигурацию. Тестирование обработки производилось на последних релизах УТ 11.0.8 и 11.0.9, гарантировать работоспособность на старых релизах не могу, обязательно проверяйте работоспособность обработки на тестовых базах перед использованием в рабочих.

Краткое описание возможностей:

1. Установка

Установка производится при помощи штатного функционала панели "Администрирование"\"Печатные формы, отчеты и обработки"\"Дополнительные отчеты и обработки" - нажимаем "Создать", указываем файл "ПечатьДоговораВOffice.epf", записываем, в итоге получаем две команды для договоров с контрагентами: "Печать договора" и "Печать договора (настройка)". Первая производит непосредственную печать указанного договора с использованием сохранённых настроек, вторая - позволяет просмотреть сохранённые настройки и изменить их, а также вывести на печать.

2. Настройки

Настройки подписанта со стороны организации сохраняются для каждой организации в отдельности кнопкой "Сохранить настройки организации".

Кнопкой "Сохранить" сохраняются глобальные настройки обработки (тип используемого шаблона (Word/Writer), место хранения шаблонов (макеты обработки/справочник приосединённых к физ.лицам файлов)), а также указанные настройки для договора (№, дата, срок действия, данные о подписантах) (последние сохраняются в справочнике присоединённых к договору файлов).

3.Шаблоны

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

{ТипДоговора}{ТипШаблона}  , где

{ТипДоговора} - Покупатель или Поставщик

{ТипШаблона} - DOC (для Word) или ODT (для Writer)

например, шаблон договора с покупателем для Word должен называться "ПокупательDOC"

Перечень доступных парметров печатной формы можно просмотреть в прилагающихся примерах шаблонов, они имеют вид {v8 ИмяПараметра}

4. Примечания

4.1. Шаблоны для Word

В БСП присутствует ошибка, из-за которой для некоторых типов файлов шаблонов (содержат более одной секции с разными настройками и/или имеют очень большой размер) из них не переносятся параметры страницы в конечный документ. Происходит это из-за использования для доступа к параметрам документа объекта ActiveDocument.PageSetup, который в указанных выше случаях возвращает часть настроек как "Неопределено".

В частности, проблема рассмотрена здесь: http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/85a286b5-91b5-457a-93b5-ef56ff31a116/

Если данная проблема сильно мешает, то устранить её можно следующим образом:

в общем модуле УправлениеПечатьюMSWordКлиент в методе ПолучитьМакетMSWord() ищем строку

Handler.НастройкиСтраницыМакета.Вставить(ИмяНастройки, COMОбъект.ActiveDocument.PageSetup[ИмяНастройки]);

и заменяем её на

Handler.НастройкиСтраницыМакета.Вставить(ИмяНастройки, COMОбъект.ActiveDocument.Sections.Item(1).PageSetup[ИмяНастройки]);

4.2. Шаблоны для Writer

У меня при формировании форм в пакете OpenOffice 3.3 для некоторых участков текста "слетало" форматирование (выравнивание, шрифт и/или его размер, выделение курсивом или жирным), однако из этого же шаблона в LibreOffice 3.5/3.6 всё формировалось корректно, поэтому рекомендую использовать именно этот пакет.

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

Наименование Файл Версия Размер
ПечатьДоговораВOffice.zip
.zip 66,88Kb
11.09.12
443
.zip 66,88Kb 443 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Maxim2012 (ZhokhovM) 04.09.12 12:37 Сейчас в теме
Всем привет. У меня возникли некоторые сложности:
1.Если в банковском счету проставить галочку "Изменить реквизиты банка", то данные с полями "КонтрагентБик", "КонтрагентБанк" и "КонтрагентКоррСчет" не отображаются.
2.Шаблон "ДокументDOC" не найден. Что нужно сделать, чтобы выводилась на печать??
Заранее благодарен!
2. andrewks 1176 04.09.12 13:12 Сейчас в теме
(1) Maxim2012,
1. посмотрю
2. данное сообщение выводится при каком значении поля "Место хранения" - "Макеты обработки" или "Спр. физ лиц"? если "Спр. физ лиц" - проверьте в присоединённых файлах указанного физ.лица наличие файла с таким наименованием. выглядеть это должно примерно так:
3. andrewks 1176 04.09.12 13:13 Сейчас в теме
что-то картинка некорректно прикрепилась. ещё раз
Прикрепленные файлы:
4. andrewks 1176 04.09.12 13:16 Сейчас в теме
(1) Maxim2012, он точно говорит именно "Шаблон "ДокументDOC" не найден" ? просто у меня не используются шаблоны с таким наименованием только ПокупательDOC, ПокупательODT, ПоставщикDOC, ПоставщикODT

если можно, прикрепите скрин сообщения об ошибке
5. Maxim2012 (ZhokhovM) 04.09.12 14:14 Сейчас в теме
(2) andrewks:
1.аналог организации
2.всё заработало, забыл прикрепить файл в шаблоне.
6. andrewks 1176 04.09.12 18:08 Сейчас в теме
(5) Maxim2012, по вопросу №1: проблему определил, чтобы не ждать заливки обновления, можно исправить по-быстрому код обработки:
в модуле формы в функции ПолучитьДанныеОбъекта() замените кусок с текстом запроса на текст из приложенного файла
Прикрепленные файлы:
Запрос.txt
7. andrewks 1176 04.09.12 18:10 Сейчас в теме
+(6) и не забудьте потом залить исправленную обработку в УТ 11 :-)
8. andrewks 1176 05.09.12 14:51 Сейчас в теме
(5) Maxim2012, рецепт из (6) помог?
9. Maxim2012 (ZhokhovM) 05.09.12 19:41 Сейчас в теме
(8) andrewks, да, но я сделал по-другому и добавил ещё 2 шаблона (с комитентом и комиссионером).
10. andrewks 1176 06.09.12 22:03 Сейчас в теме
выложил обновление с учётом исправления (6)
11. sashajat (sashajat) 09.09.12 13:31 Сейчас в теме
У меня при печати выходит сообщение "Слишком много фактических параметров". Релиз 11.0.8.13
12. andrewks 1176 11.09.12 00:12 Сейчас в теме
(11) sashajat, ага, нашёл, в чём причина. в УТ 11.0.8.х используется БСП 1.х, а в 11.0.9.х - БСП 2.0.х
поправил, ограничение: в УТ 11.0.8.х настройки страницы для шаблона ODT (OpenOffice Writer) не сохраняются (из-за отсуствия такового функционала в БСП 1.х), для УТ 11.0.9.х - всё без изменений, согласно описания публикации
13. sashajat (sashajat) 11.09.12 08:09 Сейчас в теме
(12) andrewks, Отчет стал выводиться в word, но не заполняються поля {v8 ОрганизацияНаименование} и {v8 КонтрагентНаименование}
14. andrewks 1176 11.09.12 08:25 Сейчас в теме
(13) sashajat, странно, у меня всё нормально. только эти два поля не заполняются? а остальные нормально? если можно, покажите скрин, в каком виде выводится документ (можно с тестовой организацией/контрагентом, чтобы не светить конфиденциальные данные)
15. sashajat (sashajat) 11.09.12 09:17 Сейчас в теме
(14) andrewks, Остальные нормально отправляю оригинал.
Прикрепленные файлы:
ДОГОВОР.doc
16. andrewks 1176 11.09.12 09:48 Сейчас в теме
(15) sashajat, хмм... интересно то, что в шапке договора эти же поля {v8 ОрганизацияНаименование} и {v8 КонтрагентНаименование} заполняются (т.е. сами данные из БД берутся корректно), а вот в разделе реквизитов - нет.
по ходу, ещё один глюк БСП (как, например, с параметрами макета DOC), но у меня пока не получилось его воспроизвести. вечерком попробую покопаться детальнее, постараюсь обойти
17. andrewks 1176 11.09.12 12:36 Сейчас в теме
(15) sashajat, локализовал проблему. это проявляется только на БСП 1.х (т.е. УТ 11.0.8.х) и только на шаблоне DOC. в той же УТ 11.0.8.х, но с шаблоном ODT - всё нормально.

значит, точно ошибка в БСП 1.х. видимо, придётся вбивать какой-то костыль
18. andrewks 1176 12.09.12 08:15 Сейчас в теме
(15) sashajat, сделал залипуху для БСП 1.х, теперь должно работать
19. sashajat (sashajat) 12.09.12 08:54 Сейчас в теме
(18) andrewks, Все отлично заработало. Ставлю +
20. Алексей (fgremlin) 14.09.12 00:41 Сейчас в теме
Однозначно +!
В связи с тем, что лень двигатель прогресса, [;)] мысль пошла дальше.
Предложения по модернизации:
1. Возможность затолкать (потом выбирать при печати) несколько форм договоров к одному типу договора. Я просто предполагаю использовать разные договора, например на разовые работы и на комплексное обслуживание.
2. (бредовая, наверное мысль) Прикрутить каким-то образом к коммерческому предложению, мол типа предлагаем Вам, и бланк договора с реквизитами сразу на подписание.
Но вообще и так отлично.
21. andrewks 1176 14.09.12 08:19 Сейчас в теме
(20) fgremlin, по пункту №1 - специально конструировал код так, чтобы можно было легко добавлять любые шаблоны в любом количестве - достаточно немного подкорректировать код и разместить нужные шаблоны
по пункту №2 - довольно специфично. обычно, если идут обезличенные коммерческие предложения (типа оферты), то либо идёт бланк договора с пустыми реквизитами контрагента, либо ссылка на таковой на сайте.
если идёт адресное предложение конкретному контрагенту - обычно, если договора с ним ещё нет, то полных его реквизитов в базе тоже нет (как правило, только название, адрес, тел и конт.лицо).
но, если таковая потребность имеется - реализовать тоже недолго.
22. Алексей (fgremlin) 14.09.12 09:35 Сейчас в теме
(21)Специфики, конечно, разные, я обычно обсуждаю моменты и делаю предварительное обследование заранее, затем стребываю реквизиты у клиента, завожу его в базу, создаю сделку и ком. предложение, потом если сделка не состоялась можно поставить причину отказа и потом проанализировать. Подозреваю, что такой логики и придерживались 1С-ники.
Только не могу еще разобраться (11 релиз странноват...) как добавлять виды договоров. Мне нужны еще несколько, на разные виды услуг - типа есть разовые услуги, есть на обслуживание и есть на продажу и договора для каждого разные.
Пока попробую несколько отчетов с разными шаблонами прикрутить и выбирать нужный.
Но, вообще универсальность и гибкость рулит. :)
23. Ольга (son_v) 2 28.09.12 15:56 Сейчас в теме
Настраивали внешнюю печатную форму для Договоров в Word (Управление торговлей 11.0.9.5). У нас случилось так, что договора по разным видам деятельности подписывают разные люди (по доверенностям), поэтому пришлось подписантов цеплять в карточке договора, и туда же выводить и ответственных подписантов из контактных лиц контрагента. Подписантов от организации храним в регистре сведений, с указанием документа-основания (доверенность, Устав). По срезу последних находим актуальных подписантов по организации, подразделению.
24. Владислав (vladm2008) 02.10.12 15:37 Сейчас в теме
26. andrewks 1176 02.10.12 15:52 Сейчас в теме
(25) vladm2008, сюда можно прикрепить нормальный скриншот ошибки, на этом ничего не разобрать
27. Владислав (vladm2008) 02.10.12 16:20 Сейчас в теме
Извиняюсь
Прикрепленные файлы:
28. Владислав (vladm2008) 02.10.12 16:21 Сейчас в теме
(26) andrewks, извиняюсь. Версия 1С:Предприятие 8.2 (8.2.15.289) Управление торговлей, редакция 11.0 (11.0.7.13)
Прикрепленные файлы:
29. Владислав (vladm2008) 02.10.12 16:26 Сейчас в теме
В Сравочник.ДоговорыКонтрагентов реквизит ТипДоговора отсутствует и Справочник.КлассификаторБанковРФ
30. andrewks 1176 02.10.12 16:33 Сейчас в теме
(29) vladm2008, ясно, в описании обработки написано:

"Тестирование обработки производилось на последних релизах УТ 11.0.8 и 11.0.9, гарантировать работоспособность на старых релизах не могу"

у вас старый релиз. либо обновляйтесь, либо допиливайте, исходный код открыт
31. andrewks 1176 02.10.12 16:34 Сейчас в теме
если конфа типовая, то лучше обновиться.
если с наработками - тут уже решайте сами, что вам выгоднее - обновлять конфу, или адаптировать внешние обработки под свою конфу
32. 26178@mail.ru (26178_mail.ru) 20.11.12 16:59 Сейчас в теме
как раз искал под УТ 11 шаблон печатной формы с выводом в Word., спасибо боьлшое пригодилась как шаблон для разработки печати этикеток шаблон которой задан в ворде, буду курочить.
33. Сергей Алексеевич (azs102) 06.03.13 15:51 Сейчас в теме
Всем доброго дня!
Давно ищу подобную обработку, т.е. с возможностью из УТ 11 распечатывать договора, выбирая из нескольких шаблонов. К сожалению, в скрине шаблона печатной формы договора данной обработки я не увидел указания стоимости услуг (товаров) по договору. Вопрос к разработчику (или специалистам): можете ли Вы доработать данную обработку и на каких условиях?
34. Гость 05.04.13 14:18 Сейчас в теме
Добрый день, что за реквизит ищет обработка? Его нет в типовой УТ 11.1.1.13
"Договоры.Организация.ТекущаяДолжностьРуководителя" ????
35. Гость 05.04.13 14:19 Сейчас в теме
36. andrewks 1176 05.04.13 14:32 Сейчас в теме
(35) Столяров Павел, я не могу гарантировать работоспособность на всех будущих релизах. тем более, что это не просто новый релиз, а новая редакция
37. Гость 05.04.13 15:20 Сейчас в теме
Обработка для УТ 11.1.1.13 (поправлен запрос, работает)
Прикрепленные файлы:
ПечатьДоговораВOffice_УТ 11.1.1.13.epf
38. Гость 05.04.13 15:41 Сейчас в теме
При сохранении шаблона в справочнике физлиц получаем:

Ошибка открытия файла:
"ПокупательDOC.doc".

Файл не найден в хранилище файлов.
Возможно файл удален антивирусной программой.
Обратитесь к администратору.

Хотя присоединенный файл вполне себе доступен...
Прикрепленные файлы:
39. Гость 05.04.13 15:48 Сейчас в теме
А при хранении в макете обработки - все нормально...
40. Раногуль (Alran) 37 14.07.13 22:47 Сейчас в теме
Все получилось замечательно, спасибо. Но единственная проблема-у нас много разных шаблонов договоров: договор поставки, договор сопровождения, абонентский договор и т.д. Мне пришлось добавить реквизит формы "ШаблонНазвание" (строка,20 символов), в котором можно указать какой шаблон надо использовать. Но тогда пользователь, при создании шаблона в справочнике физических лиц должен формировать название несколько по иному: {ТипДоговора}{ШаблонНазвание}{ТипШаблона} , где

{ТипДоговора} - Покупатель или Поставщик

{ШаблонНазвание} - идентифицирующая шаблон строка (Например "Абонентский")

{ТипШаблона} - DOC (для Word) или ODT (для Writer)
41. Раногуль (Alran) 37 14.07.13 22:59 Сейчас в теме
Все замечательно получилось спасибо. Единственное неудобство для нас- у нас несколько шаблонов договоров. Пришлось добавить реквизит формы "ШаблонНазвание"(Строка, 2щ символов) , для возможности идентификации шаблона. Тогда правила именования макетов изменились:

{ТипДоговора}{ШаблонНазвание}{ТипШаблона} , где

{ТипДоговора} - Покупатель или Поставщик

{ШаблонНазвание} - Название для идентификации макета ( например "Абонентский", или "Поставки")

{ТипШаблона} - DOC (для Word) или ODT (для Writer)
Прикрепленные файлы:
ПечатьДоговораВOffice.epf
42. Katano 06.09.13 14:18 Сейчас в теме
{Форма.Форма.Форма(632)}: Ошибка при вызове метода контекста (Выполнить)
РезЗапроса=Запрос.Выполнить();
по причине:
{(9, 23)}: Поле не найдено "Договоры.Организация.ТекущаяДолжностьРуководителя"
,Договоры.Организация.<<?>>ТекущаяДолжностьРуководителя as ОрганизацияДолжностьРуководителя

УТ 11.1.2.10
43. Илья Брежнев (bambula) 2 26.12.13 10:59 Сейчас в теме
Подскажите, может кто решил проблему - если в ворде сделать несколько параметров - то выводится только в первый параметр. А в остальные - просто в виде текста (имя параметра). Как с этим бороться?
44. andrewks 1176 26.12.13 11:13 Сейчас в теме
(43) как раз в данной разработке данная проблема решается, смотрите код
45. Евгений Мельников (allusion) 30.01.14 13:30 Сейчас в теме
{(9, 23)}: Поле не найдено "Договоры.Организация.ТекущаяДолжностьРуководителя"
,Договоры.Организация.
Как решить?????
Прикрепленные файлы:
megapraysmarafetnomenklatury_ut111_1707-2013.epf
46. andrewks 1176 30.01.14 19:46 Сейчас в теме
47. Николай (kcerokc) 27.02.14 10:04 Сейчас в теме
не могу распечатать договор после обновления на УТ 11.1.4.12, пропала кнопка печать. Где ее искать?
48. Вячеслав Иванов (belfast) 09.03.14 00:53 Сейчас в теме
Установил на 11.1.4.13. Если кто-то устанавливал с этим обновлением, скажите где вообще должна быть кнопка печати?
49. Юленька (s_uu) 16 25.04.14 06:17 Сейчас в теме
Добрый день, у меня тоже нет кнопки Печать, может напишете, где она должна быть????
50. Юленька (s_uu) 16 25.04.14 06:17 Сейчас в теме
Управление торговлей, редакция 11.1 (11.1.4.10)
51. Сергей Билоус (oakhead) 29.04.14 15:07 Сейчас в теме
(50) s_uu, я в этой версии в команды печати добавлял руками. В 11.1.4.14 она появилась штатно
52. Roman Peretruhin (logic251) 27.05.14 15:36 Сейчас в теме
(51) oakhead, расскажите как это можно сделать.
53. Роман Озеряный (rozer) 180 18.06.14 11:03 Сейчас в теме
(46) andrewks,
чтобы работало в ут11.1.6.20
надо
1) строка 662 поменять на
ОбновитьПолеИзЗначения("ОрганизацияПодписант",ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(Выборка.ОрганизацияРуководитель));


2)изменить запрос в строке 613 на
Запрос.Текст="ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
	             |	Договоры.Номер КАК НомерДоговора,
	             |	Договоры.Дата КАК ДатаДоговора,
	             |	Договоры.ДатаНачалаДействия КАК ДатаДействияДоговора,
	             |	Договоры.ДатаОкончанияДействия КАК СрокДействияДоговора,
	             |	Договоры.ТипДоговора КАК ТипДоговора,
	             |	Договоры.Организация КАК Организация,
	             |	Договоры.Контрагент КАК Контрагент,
	             |	ОтветственныеЛицаОрганизаций.Должность КАК ОрганизацияДолжностьРуководителя,
	             |	ОтветственныеЛицаОрганизаций.Наименование КАК ОрганизацияРуководитель
	             |ИЗ
	             |	Справочник.ДоговорыКонтрагентов КАК Договоры
	             |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
	             |		ПО (ОтветственныеЛицаОрганизаций.ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель))
	             |			И Договоры.Организация = ОтветственныеЛицаОрганизаций.Владелец
	             |ГДЕ
	             |	Договоры.Ссылка = &ТекДоговор";
...Показать Скрыть

т.к. наименование и должность руководителя теперь в спр. "ОтветственныеЛицаОрганизаций"

а так с виду все работает. Спасибо.


54. Роман Озеряный (rozer) 180 18.06.14 12:14 Сейчас в теме
55. vicmos victor (vicmos) 40 08.10.14 16:16 Сейчас в теме
56. Иван Орлов (Jaivan) 41 05.02.15 17:22 Сейчас в теме
кто-нибудь может быть заморачивался добавлением в шаблон и последующим выводом так называемого особого верхнего колонтитула первой страницы?

для этого я в модулях ввел слещующие функции (аналогично функциям работы с верхним клонтитулом)

Функция ПолучитьОбластьВерхнегоКолонтитулаПервойСтраницы(Знач Handler) Экспорт
	
	Возврат Новый Структура("Header", Handler.COMСоединение.ActiveDocument.Sections(1).Headers.Item(2));
	
КонецФункции
...Показать Скрыть


Процедура ДобавитьВерхнийКолонтитулПервойСтраницы(Знач ПечатнаяФорма, Знач ОбластьHandler) Экспорт
	
	ОбластьHandler.Header.Range.Copy();
	ВерхнийКолонтитулПервойСтраницы(ПечатнаяФорма).Paste();
	
КонецПроцедуры
...Показать Скрыть


Процедура ЗаполнитьПараметрыВерхнегоКолонтитулаПервойСтраницы(Знач ПечатнаяФорма, Знач ДанныеОбъекта = Неопределено) Экспорт
	
	Если ДанныеОбъекта = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Для Каждого ПараметрЗначение Из ДанныеОбъекта Цикл
		Если ТипЗнч(ПараметрЗначение.Значение) <> Тип("Массив") Тогда
			Заменить(ВерхнийКолонтитулПервойСтраницы(ПечатнаяФорма), ПараметрЗначение.Ключ, ПараметрЗначение.Значение);
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры
...Показать Скрыть


Функция ВерхнийКолонтитулПервойСтраницы(ПечатнаяФорма)
	Возврат ПечатнаяФорма.COMСоединение.ActiveDocument.Sections(1).Headers.Item(2).Range;
КонецФункции
...Показать Скрыть


НО! никак не могу найти этот верхний колонтитул первой страницы в com соединении (COMСоединение)
...далее, непонятен принцип работы этого особенного колонтитула, очевидно, что он должен замещать обычный колонтитул на первой странице
57. Chuchi Chuchi (chuchi) 22.02.15 22:02 Сейчас в теме
При открытии вылетает ошибка
{Форма.Форма.Форма(672)}: Поле объекта не обнаружено (ОбъектыНазначения)
ОбъектыНазначения=Параметры["ОбъектыНазначения"];
58. Василь Галимов (Baser) 3 15.03.16 05:18 Сейчас в теме
Кстати, по поводу примечания кривых полей и прочего. Проверьте универсальность моего предположения, или это только у меня работает?
http://forum.infostart.ru/forum24/topic143125/message1522475/#message1522475
59. Светлана Заиченко (svetik789) 23.03.16 15:39 Сейчас в теме
1С:Предприятие 8.3 (8.3.7.1917)
Управление торговлей, редакция 11.2 (11.2.3.66)

Ошибка при выборе печатной формы договора или настройки (

Случаем не будете обновлять для 11.2 ?
Прикрепленные файлы: