Использование шаблонов Word для заполнения типовых договоров.

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

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

Вообще у нас организовано так: программист заведует параметрами, а шаблоны это дело пользователей - так что я вообще не касаюсь составления шаблона.
Принцип работы основан на использовании совместной работы 1С Предприятие и Microsoft Word.
Тестировалась и работает с Microsoft Word 2003.

  Для начала работы с системой, необходимо определить, какие параметры необходимы для замены в шаблонах и создать функции получения этих параметров в справочнике «Параметры».

При необходимости создания таблиц в шаблоне используется метод Word преобразования текста в таблицу при этом признак новой ячейки "ТАБ", количество колонок задается при создании параметра (НО почему-то 2 колонки, по крайней мере мой Word, выводит в одну строку.) пример в конфигурации Параметр: "<ТаблицаНадбавок>"


    После создания необходимых параметров для замены необходимо создать непосредственно шаблон в справочнике «Шаблоны договоров» возможные параметры для замены находятся на правой панели формы элемента.
    Для создания и заполнения шаблона необходимо открыть Справочник «Сотрудники организаций» и нажать кнопку «Создать договор из шаблона» при этом откроется форма Справочника «Внешние кадровые элементы», который подчинен сотруднику.


При нажатии на кнопку «+ файл» можно добавить произвольный файл (например фото, резюме, и т.д.).

При нажатии на кнопку «+ из шаблона» происходит раскрытие шаблона из справочника, вычисление и замена всех параметров в шаблоне.

При закрытии Word'a происходит запись файла договора в базу данных, при выборе строки из ТЧ происходит просто открытие файла, без заполнения параметров т.е. все внесенные вручную изменения в созданном из шаблона документе сохраняются.

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

30.08.2010
ДОРАБОТАНО:

  1. При попытке вставить строку с длинной более 255 символов вываливалось в исключение.  Создано разложение строки на подстроки в 255 символов и их последующий вывод в шаблон
  2. Встроен параметр: "ОтказПреобразования" для отказа вывода таблицы при установленном в Истина преобразование в таблицу не происходит, выводит только текст.

Добавлено:

  1. Использование контекстной подсказки при вводе текста процедуры вычисления параметра
  2. СОЗДАНИЕ ТАБЛИЦ

ВНИМАНИЕ: подробное описание работы находится во встроенной справке.

Огромное спасибо разработчику контекстной подсказки: //infostart.ru/public/14700/ прошу не забыть при плюсовании

И еще одно: Embarassed

В функционале существуют еще несколько возможностей - поищите в тексте модуля приложения и поймете, где и что еще есть Laughing правда придется немного поработать своей головушкой, но я думаю что вас это не смутитWink

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

Наименование Файл Версия Размер
файл выгрузки базы
.dt 1,91Mb
01.10.10
1384
.dt 1,91Mb 1384 Скачать

См. также

Комментарии
1. Иван Копытов (kivas) 162 08.07.09 00:27 Сейчас в теме
Прошу писать свои отзывы и предложения.
E_Johnny; Арчибальд; shavminator; +3 Ответить
2. Иван Копытов (kivas) 162 08.07.09 09:05 Сейчас в теме
народ, не вижу отзывов >:o
3. Александр Рытов (Арчибальд) 2652 08.07.09 09:12 Сейчас в теме
В качестве отзыва: внятное описание, информативные скриншоты, наличие хелпа - просто душа отдыхает после предыдущего потока мусора. +2
4. Иван Копытов (kivas) 162 08.07.09 09:16 Сейчас в теме
(3)описание существовало и раньше, только в содержание забыл включить

вопрос всем:
Так всеже комунибудь такая подсистема нужна?
5. dushelov (Душелов) 08.07.09 09:58 Сейчас в теме
6. Иван Копытов (kivas) 162 08.07.09 10:47 Сейчас в теме
К стати процедура кнопки справочника сотрудников у меня вынесена во внешнюю печатную форму так что можно обойтись без изменения типового справочника.
7. Иван Копытов (kivas) 162 08.07.09 10:51 Сейчас в теме
К стати ктонибудь тестировал на версиях офиса отличных от 2003?
напишите отзывы
8. Tax (Tax) 08.07.09 10:57 Сейчас в теме
9. Олег Каратаев (Kyrales) 117 08.07.09 11:08 Сейчас в теме
Есть вопрос. Допустим у меня будет задан параметр <ТекстПисьма> . Данные возьмуться из заполненного реквизита и сформируется в вордовском документе. А смогу ли я сохранить изменения сделанные в ворде опять в реквизите 1С?
10. Иван Копытов (kivas) 162 08.07.09 11:16 Сейчас в теме
в моем примере в скриншоте " результат работы" не задан параметр :
<Должность.Наименование должности> он так и выйдет в заполненом шаблоне.
11. Иван Копытов (kivas) 162 08.07.09 11:19 Сейчас в теме
>> А смогу ли я сохранить изменения сделанные в ворде опять в реквизите 1С?
пока нет, если честно, я даже не представляю как это реализовать в подобном решении.
тут испольшуется замена строк в тексте, а не использование параметров Word-а.
хотя все возможно, если кто имеет идеи по этому вопросу прошу сообщить
12. Олег Каратаев (Kyrales) 117 08.07.09 11:21 Сейчас в теме
(11) У меня типо твоей штуки тоже реализовано. Этот вопрос довольно интересный и покамест я тоже способов не вижу. Только юзать 8.2 :)
13. Иван Копытов (kivas) 162 08.07.09 14:44 Сейчас в теме
Еще один нюанс:
в конфигурацию заложена возможность использования листов excel-я как шаблона.
вот оттуда вполне можно вносить данные в 1С при изменении значений параметров.
14. Максим Богословский (ulen) 58 08.07.09 22:07 Сейчас в теме
(4)Мне нужна но для формирования договоров контрагентов которые арендуют места на рынке... юристы часто перебивают текст договоров
15. Иван Копытов (kivas) 162 08.07.09 22:37 Сейчас в теме
(14) ну так вперед
делаешь или справочники, или докумены, и включаешь в них мою табличную часть (с процедурами) и наслаждаешься работой своих юзеров в новой подсистеме и все довольны.
Более того у меня нет привязки к каким либо объектам поэтому подсистему можно использовать в любом виде.
если что пиши на аську.
16. Иван Копытов (kivas) 162 08.07.09 22:51 Сейчас в теме
в продолжение (15) у меня эта подсистема какраз используется договорным отделом именно по причине в (14)
17. Den Den (RandomDV) 5 08.07.09 23:51 Сейчас в теме
Не думал добавить функционал по хранению "готовых" файлов не в БД, а просто в файловой системе, типа "C:\ВсеВнешниеФайлы\[ГИД_Сотрудника]\файлы.*
А то база может вспухнуть+возможно, в случае файлов, доступ будет быстрее...
18. Андрей Иванов (Best_Raven) 09.07.09 05:41 Сейчас в теме
19. Alex (alexek) 18 09.07.09 07:40 Сейчас в теме
Классная штука, пригодится +1
20. Иван Копытов (kivas) 162 09.07.09 08:15 Сейчас в теме
(17)
во-первых - при сохранении в базу файлы архивируются, так что база конечно пухнуть будет но понемногу.
во-вторых - ИМХО поиск и разархивирование в файловой системе компа займет большее время чем распаковка 1С-кой хотя я не проверял
21. Оболтус (Оболтус) 183 09.07.09 09:05 Сейчас в теме
22. Иван Копытов (kivas) 162 09.07.09 09:24 Сейчас в теме
не проверял.
там используется "Execute" (замена) если 2007 это поддерживает, то должно сработать.
23. Максим Богословский (ulen) 58 09.07.09 20:51 Сейчас в теме
(15)
Спасибо )
Скачал, обязательно попробую, на следующей неделе, а то ща времени нетути... ((
24. Олег Каратаев (Kyrales) 117 10.07.09 16:23 Сейчас в теме
25. Buxxter (Buxxter) 42 11.07.09 10:40 Сейчас в теме
Как обстоят дела с таблицами?
26. Иван Копытов (kivas) 162 12.07.09 00:39 Сейчас в теме
(25)
Если Вы про wordовые таблицы то без проблемм.
для excel есть отдельные процедуры в глобальном модуле.
27. Vladimir_A_K (Vladimir_Konyrev) 13.07.09 03:24 Сейчас в теме
Вопрос-предложение: а нельзя ли сделать данную подсистему внешней обработкой? Например будет открывать что-то вроде "Рабочее место менеджера" в УТ? Спасибо!
28. Иван Копытов (kivas) 162 13.07.09 10:24 Сейчас в теме
(27) В принципе, у меня процедура указанная в справочнике Сотрудники организаций помещена в внешнюю печатную форму (чтоб не портить стандартный код), так что прикрепить можно куда угодно.
НО при помещении процедур заполнения шаблонов в другие модули (тоесть не в модуль приложения) у меня почемуто не срабатывали некоторые функции. С чем это связано, я не знаю, разбираться времени да и желания не было, так что что есть то есть.
но ничего невозможного нет, если голова из положенного места растет, то можно и внешней обработкой сделать.
Правда есть еще одно НО: вся концепция заключалась в возможности сохранения заполненых шаблонов и пр. файлов в базе данных. поэтому всеравно должен быть какойто объект метаданных, где эта информация должна сохраняться. (у меня эта информация хранится в справочнике Внешние кадровые документы.)
если необходимо к чему либо другому привязать то ничего сложного я не вижу.

в справке Конфигурации подробно описан способ прикрепления подсистемы к любому объекту метаданных.
29. Павел Стариков (xw7x) 100 14.07.09 08:43 Сейчас в теме
30. sun888 (malikov_pro) 16.07.09 09:06 Сейчас в теме
а такая-же замечательная штука только для OpenOffice есть?
31. Иван Копытов (kivas) 162 17.07.09 00:15 Сейчас в теме
(30) ну если ваш опенофис поддерживает программне обращение к своим функциям, то переделок максимум на день, вся проблема в том что опенофисов развелось немерено, и для каждого писать программу не вижу смысла.
Кроме того тут описан принцип как можно получать параметры (или любые другие данные) в процессе работы 1С предприятия, а заполнение шаблонов это побочный эфект для наглядности.

ДУМАТЬ НАДО ШИРШЕ А ПОНИМАТЬ ГЛУБЖЕ ;-)
32. Ivon (Ivon) 585 17.07.09 18:47 Сейчас в теме
А есть возможность вывести таблицу графика платежей, в которой количество платежей динамическое?
33. Иван Копытов (kivas) 162 22.07.09 13:24 Сейчас в теме
(32) в араметр возвращается только одно значение. и заменяется на подстроку в тексте.
Если настроить передачу параметров word -а то нет ничего невозможного, просто в word будет передаваться таблица значений а word будет строить по нему все что он может.
34. Ivon (Ivon) 585 24.07.09 17:21 Сейчас в теме
Понятно. Значит не может... У меня есть решение такой проблемы, но оно очень корявое. Но рабочее. Но такое корявое, что сам им пользоваться не хочу, поэтому жду, может кто чего придумает...
35. Павел Колосов (Pavshuk) 27.07.09 06:46 Сейчас в теме
Помогите разобраться в следующей проблеме:
установленная конфигурация создает шаблон в word. При создании регистрируется на событие Документ.close.
При закрытии документа в 1с события не возникает.) На события Application.* регистрируется и работает все нормально. Но это не позволяет конфигурации работать нормально.
Проверял на следующих компьютерах:
Оболочка 1с 8.1.8.76 на всех компьютерах.
- win XP home + office 2000
- win XP home + office 2003
- vista home + office 2007

С чем это может быть связано? Стара версия версия 1С, или что-то другое?
Спасибо.
36. Иван Копытов (kivas) 162 27.07.09 08:55 Сейчас в теме
(35) этот вариант не рассматривался. действительно при закрытии документа в 1с не происходит ни каких действий.
в будущей редакции я поставлю просто отключение обработчика, так как закрытие word -а, я лично, считаю некорректным.
37. Павел Колосов (Pavshuk) 27.07.09 12:23 Сейчас в теме
(36) Наверное не правильно сформировал вопрос.
Опишу ситуацию:
1.Открываем форму "внешние кадровые документы".
2.Нажимаем клавишу "+шаблон". Открывается word со сформированным документов.
3. Редактируем документ и закрываем его (не закрывая word).

После этого, по моим соображения в табличной части спарвочника "внешние кадровые документы" должна появиться строка хранящая в себе этот документ.
Я так решил, прочитав строку
ДобавитьОбработчик WordДокумент.close, ЗакрытиеДокументаWord;
Так вот после закрытия документа в 1с события не генерируются.

Сначало я подумал, что такого события в мое версии worda(2000) нет. Заменил строку на ДобавитьОбработчик MSWord.OnDocumentChange(уже точно не помню), ЗакрытиеДокументаWord; И программа рабоает, события в 1с генерируються).
Затем я подумал, что такого close-события у документа нет. Тогда я его заменил на случайное, и такое событие регестрировать 1с отказался.


В результате программа у меня генерирует всего один шаблон. Второй шаблон программа не составляет, так как не происходит очищение переменных, описанное в процедуре ЗакрытиеДокументаWord.

38. Иван Копытов (kivas) 162 28.07.09 09:01 Сейчас в теме
(37) на сколько я знаю сначала формируется документ а затем распечатывается его печатная форма (или я не прав?) так почему же Вы создаете печатную форму, затем меняете документ, и закрываете его? (или я в чем то туплю сутра?)
как я должен отследить что Вы закончили редактирование word -а (ИМХО только при закрытии документа word ведь компьютер, и даже я не телепат) вот при закрытии и происходит:
1) временное сохранение двоичных данных word
2) копирование этих данных в базу,
3) удаление временного файла с винта
4) обнуление внутренних переменных

Если есть другой вариант с радостью рассмотрю его
39. Иван Копытов (kivas) 162 28.07.09 09:05 Сейчас в теме
если имеется ввиду закрытие документа word без закрытия самой программы word то тогда возникают сложности при определении какой из документов именно закрылся, не создаем ли мы копию уже открытого документа, и т.д.
для уменьшения ошибок при работе подсистемы было принято решение привязаться именно к закрытию программы word? а не к закрытию отдельного листа
40. Павел Колосов (Pavshuk) 28.07.09 09:30 Сейчас в теме
(39) Вот как раз при закрытии приложения никаких действий и не происходит(
Насколько я понимаю, за отслеживание этого события отвечает строка:
ДобавитьОбработчик WordДокумент.close, ЗакрытиеДокументаWord;? Если это так то по каким-то причинам событие WordДокумент.close не отслеживается.
41. Олег Каратаев (Kyrales) 117 03.08.09 08:09 Сейчас в теме
Возможно ли в формируемый файл Word вставлять нужную мне картинку, как параметры текста?
42. Иван Копытов (kivas) 162 03.08.09 08:37 Сейчас в теме
(41) в текущей редакции нет.
43. Олег Каратаев (Kyrales) 117 03.08.09 12:01 Сейчас в теме
(42) да это понятно что у тебя нет. Возможно ли вообще такое?!
44. Антон Лыткин (AntonSirint) 12 08.09.09 18:28 Сейчас в теме
(43) Из файла точно возможно, посмотри макросы в ворде, там и узнаешь ответ...
45. Олег Каратаев (Kyrales) 117 09.09.09 05:23 Сейчас в теме
(44) ты наверно сильно умный? Лучше молчать иногда, чем хз строчить
46. Hayk Avanesyan (gagar9) 22 12.11.09 13:22 Сейчас в теме
а как внедрить 1cv8.efd и куда если можно подробнее скажите пожалуиста avda@yandex.ru
47. Эльвира (eli1984) 03.08.10 08:07 Сейчас в теме
Хорошая вещь. Вот тольо при создании шаблонов иногда говорит что конвертер mswrd632.wpc не удалось запустить, с чем это может быть связано? :o
48. Иван Копытов (kivas) 162 30.08.10 09:05 Сейчас в теме
(43) возможно добавить картинку, но при условии что она естьб на диске, тоесть надо сначала ее получить, сохранить в нужном месте, и вставить как картинку из файла.
49. Юрий Карнилаев (spryn1) 30.08.10 21:59 Сейчас в теме
Очень крутая обработка. Спасибо!
50. Степан Брачев (bsv2003) 31.08.10 17:01 Сейчас в теме
Простите пожалуйста. А как устанавливать эту обработку? напишите подробнее...
и можно ли ее использовать на 8.2?
- Попытался объединить конфигурации, похоже, что неправильно, т.к. эта конфигурация полностью заменила мою - Бухгалтерия 1.6.
- Возможно ли объединить конфигурации (эту и Бухгалтерия 1.6 Упрощенка? или эта конфигурация только отдельно работает?
51. Андрей Мухин (Muhin555) 12 07.09.10 22:17 Сейчас в теме
Интересная обработка!!!
При переносе ее в Зарплата и Управление Персоналом, редакция 2.5 (2.5.26.3) заметил следующую вещь:
В справочнике "Шаблоны договоров" добавляю шаблон "Прием на работу в организацию" со сылкой на объект "Прием на работу в организацию", в нем создаю строку с существующим файлом "Образец.doc", тем самым создается строка "Образец" и ставлю галочку "Используется как печатная форма", но в документе "Прием на работу в организацию" кроме стандартных "Форма Т-1" и "Форма Т-1а" форма с именем "Образец" не цепляется... в чем причина? Может что не так сделал или не так понял? И каково назначение галочки "Используется как печатная форма"
Офис стоит 2003....
либо я не совсем понял фразу:
"...а также в реквизит формы элемента «ДокументПроверки» Справочника «ОДР_Шаблоны_Параметры»"
из справки в разделе "Конфигурация"


52. Евгений Черкашин (evg61) 24.09.10 14:02 Сейчас в теме
Здравствуйте! Пытаюсь открыть файл шаблоны.cf - получаю сообщение:
Ошибка при выполнении файловой операции 'E:\Word\!\шаблоны.cf'
по причине:
Неверный формат хранилища данных 'file://E:/Word/!/шаблоны.cf'
Подскажите пожалуйста, в чем может быть причина и как разрешить данную ситуацию?
Спасибо!
53. Евгений Черкашин (evg61) 24.09.10 14:18 Сейчас в теме
Разобрался, извините за беспокойство!
54. Иван Копытов (kivas) 162 29.09.10 09:46 Сейчас в теме
(51) галочка "Используется как печатная форма" используется как указатель подсистеме о том что выведенный шаблон НЕ предназначен для сохранения в базе данных, а используется только для создания и печати шаблона.
Этот признак был создан еще до широкого использования внешних печатных форм а после их появления я как то на эту тему и не задумывался.

(51) >>либо я не совсем понял фразу:
"...а также в реквизит формы элемента «ДокументПроверки» Справочника «ОДР_Шаблоны_Параметры»"

в справке написано:
"Для добавления других объектов в работу с шаблонами необходимо добавить тип объекта в план видов характеристик «ОДР_ВидыДокументовДляШаблонов», а также в реквизит формы элемента «ДокументПроверки» Справочника «ОДР_Шаблоны_Параметры» после чего добавленный объект может работать с шаблонами "

тоесть для того чтобы, например, добавить возможность работать с подсистемой Объекту конфигурации "Справочники.КонтактныеЛицаКонтрагентов" нужно в 2 местах указать этот объект:
1. в возможных типах плана видов характеристик "ОДР_ВидыДокументовДляШаблонов"
2. в возможных типах реквизита формы элемента «ДокументПроверки» Справочника "ОДР_Шаблоны_Параметры" (на закладке "реквизиты" формы элемента справочника)

55. Иван Копытов (kivas) 162 29.09.10 09:51 Сейчас в теме
(50) объединять можно с любой имеющейся конфигурацией с приоритетом вашей конфигурации.
на 8.2 переводить пока не пробовал, может у когото есть подобный опыт, то напишите.
>> эта конфигурация только отдельно работает?
Нет она специально создавалась для работы с другими конфигурациями, и без них она вообще бессмыслена.
56. Екатерина Нестерова (nestern) 30.09.10 17:13 Сейчас в теме
57. Евгений Черкашин (evg61) 30.09.10 20:51 Сейчас в теме
Для Nestern
Файл был без расширения, поставил .cf, должно быть - .dt
Далее разворачивается информационная база.
Пользуясь случаем, спасибо автору!

58. Иван Копытов (kivas) 162 01.10.10 08:04 Сейчас в теме
(57) на сколько я помню выкладывалось с расширением .dt
на всякий случай еще поясню:
выкладывается архив информационной базы, для того чтобы можно было наглядно посмотреть работу подсистемы. иначе, только с конфигурацией, разобраться в работе будет практически не возможно.
после распаковки базы рекомендуется прочитать встроенную справку.
пользуйтесь на здоровье
59. Максим (V_Maksim) 14.10.10 18:19 Сейчас в теме
Автору большое спасибо, разбираюсь, вроде получается....

Файлик точно без расширения, но ручное переименование в .dt решает эту проблему.

на 8.2 переводить пока не пробовал, может у когото есть подобный опыт

На 8.2 запустилась без проблем, сконвертировалась самостоятельно и подцепилась к конфигурации версии 8.2.
60. Дима Гиб (DimDimych) 22.09.11 10:21 Сейчас в теме
Очень удобная вещь спасибо автору
61. d3 r3 (ctulhua) 29.09.11 13:03 Сейчас в теме
62. spryn (spryn) 08.10.11 19:55 Сейчас в теме
Очень классно реализована обработка. Пригодилась.
spr#n; spryn1; +2 Ответить
64. Андрей Гросу (trustgros) 8 27.11.11 23:24 Сейчас в теме
хорошая обработка. пригодилось, но пришлось "допиливать" т.к. клиент хотел еще вставку произвольных картинок в любом месте шаблона, а также вставку табличных частей в шаблон
65. Юрий Александрович (jirafff) 25.12.11 15:52 Сейчас в теме
простыми макетами такого не сделаешь
66. Андрей Гросу (trustgros) 8 25.12.11 19:26 Сейчас в теме
(65) jirafff, почему же не сделаешь.. работает ведь ))
67. Олег Чебурин (oleg2010) 31.07.12 21:35 Сейчас в теме
скачал файл, какой то очень странный размером 1 кб.
Создал новую пустую базу, загрузил и ничего.
Может что не так делаю ?
68. Michael Odins (new1c) 162 06.02.14 17:41 Сейчас в теме
Большое спасибо, очень нужно было создание таблиц, а ваш пример как раз то что нужно!