gifts2017

УТ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
438
.zip 66,88Kb 438 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

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

значит, точно ошибка в БСП 1.х. видимо, придётся вбивать какой-то костыль
18. andrewks 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 14.09.12 08:19
(20) fgremlin, по пункту №1 - специально конструировал код так, чтобы можно было легко добавлять любые шаблоны в любом количестве - достаточно немного подкорректировать код и разместить нужные шаблоны
по пункту №2 - довольно специфично. обычно, если идут обезличенные коммерческие предложения (типа оферты), то либо идёт бланк договора с пустыми реквизитами контрагента, либо ссылка на таковой на сайте.
если идёт адресное предложение конкретному контрагенту - обычно, если договора с ним ещё нет, то полных его реквизитов в базе тоже нет (как правило, только название, адрес, тел и конт.лицо).
но, если таковая потребность имеется - реализовать тоже недолго.
22. Алексей (fgremlin) 14.09.12 09:35
(21)Специфики, конечно, разные, я обычно обсуждаю моменты и делаю предварительное обследование заранее, затем стребываю реквизиты у клиента, завожу его в базу, создаю сделку и ком. предложение, потом если сделка не состоялась можно поставить причину отказа и потом проанализировать. Подозреваю, что такой логики и придерживались 1С-ники.
Только не могу еще разобраться (11 релиз странноват...) как добавлять виды договоров. Мне нужны еще несколько, на разные виды услуг - типа есть разовые услуги, есть на обслуживание и есть на продажу и договора для каждого разные.
Пока попробую несколько отчетов с разными шаблонами прикрутить и выбирать нужный.
Но, вообще универсальность и гибкость рулит. :)
23. Ольга (son_v) 28.09.12 15:56
Настраивали внешнюю печатную форму для Договоров в Word (Управление торговлей 11.0.9.5). У нас случилось так, что договора по разным видам деятельности подписывают разные люди (по доверенностям), поэтому пришлось подписантов цеплять в карточке договора, и туда же выводить и ответственных подписантов из контактных лиц контрагента. Подписантов от организации храним в регистре сведений, с указанием документа-основания (доверенность, Устав). По срезу последних находим актуальных подписантов по организации, подразделению.
24. Владислав (vladm2008) 02.10.12 15:37
26. andrewks 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 02.10.12 16:33
(29) vladm2008, ясно, в описании обработки написано:

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

у вас старый релиз. либо обновляйтесь, либо допиливайте, исходный код открыт
31. andrewks 02.10.12 16:34
если конфа типовая, то лучше обновиться.
если с наработками - тут уже решайте сами, что вам выгоднее - обновлять конфу, или адаптировать внешние обработки под свою конфу
32. Сергей Сергей (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 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) 14.07.13 22:47
Все получилось замечательно, спасибо. Но единственная проблема-у нас много разных шаблонов договоров: договор поставки, договор сопровождения, абонентский договор и т.д. Мне пришлось добавить реквизит формы "ШаблонНазвание" (строка,20 символов), в котором можно указать какой шаблон надо использовать. Но тогда пользователь, при создании шаблона в справочнике физических лиц должен формировать название несколько по иному: {ТипДоговора}{ШаблонНазвание}{ТипШаблона} , где

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

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

{ТипШаблона} - DOC (для Word) или ODT (для Writer)
41. Раногуль (Alran) 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) 26.12.13 10:59
Подскажите, может кто решил проблему - если в ворде сделать несколько параметров - то выводится только в первый параметр. А в остальные - просто в виде текста (имя параметра). Как с этим бороться?
44. andrewks 26.12.13 11:13
(43) как раз в данной разработке данная проблема решается, смотрите код
45. Евгений Мельников (allusion) 30.01.14 13:30
{(9, 23)}: Поле не найдено "Договоры.Организация.ТекущаяДолжностьРуководителя"
,Договоры.Организация.
Как решить?????
Прикрепленные файлы:
megapraysmarafetnomenklatury_ut111_1707-2013.epf
46. andrewks 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) 25.04.14 06:17
Добрый день, у меня тоже нет кнопки Печать, может напишете, где она должна быть????
50. Юленька (s_uu) 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) 18.06.14 11:03
(46) andrewks,
чтобы работало в ут11.1.6.20
надо
1) строка 662 поменять на
ОбновитьПолеИзЗначения("ОрганизацияПодписант",ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(Выборка.ОрганизацияРуководитель));


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

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

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


54. Роман Озеряный (rozer) 18.06.14 12:14
55. vicmos victor (vicmos) 08.10.14 16:16
56. Иван Орлов (Jaivan) 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) 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 ?
Прикрепленные файлы:
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа