gifts2017

Создание договоров средствами 1С

Опубликовал Максим Биенко (Bienko) в раздел Программирование - Практика программирования

Создание договоров средствами 1С

Доброго времени суток! Руководством была поставлена задача реализации создания договоров средствами 1с (в данном случае на предприятии использовалась конфигурация 1С УПП 1.3). Предпосылками к этому послужило то, что договора хранились в общей сетевой папке в формате odt. Недостатков такого способа ведения договоров было достаточно много. Первый недостаток был разграничения доступа. Средствами АД  это преодолеть не получалось. Для этого нужно было  под каждый отдел свои папки с доступом, но такой подход не устраивал руководство и юристов, которые хотели видеть весь список в одной папке. Вторым недостатком была надежность такого способа. Любой пользователь мог по невнимательности и/или свойственной части пользователей безалаберности  удалить договора, внести в них изменения, переименовать их (не будем забывать, что это могут сделать и специально из-за обиды на руководство, например). Архивирование, конечно, периодически делалось, но не так часто как хотелось бы (объем этой папки достигал несколько десятков гб). Третьим недостатком было то, что организация имела большой оборот и множество меняющихся контрагентов, что приводило к частым проверкам со стороны отдела по борьбе с экономическими преступлениям. С проверяющими была договоренность по предоставлению первоначальной информации в электронном виде из-за слишком большого количество документов (в некоторых случаях несколько тысяч страниц). Основная часть документов формировалась специальной обработкой из 1с (платежки, накладные, счета-фактуры и реестры этих документов). Но договора и реестр по ним для каждой организации приходилось делать вручную, что требовало отвлечения на это времени сотрудников, да и формат договоров odt не устраивал проверяющих, и их приходилось пересохранять в pdf.

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

  1. Сами тексты шаблонов договоров должны меняться/создаваться определенными пользователями (в моем случае юристами);
  2. Программа должна поддерживать три типа договоров;
  3. Пользователь должен иметь возможность менять только свои договора;
  4. Пользователь должен видеть только разрешенные ему договора.

По типам договоров. У организации были несколько часто используемых договоров (дилерский договор, договор купли-продажи, договор складского хранения, договор ОМТС). Все эти договора в итоге можно было разделить на три вида.

 

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

Сами типы договоров были реализованы справочником ТипДоговора

 

Где ПодписьНаПоследнейСтранице это булево отвечающее за вывод колонтитула на последнюю страницу. Табличные части:

  • пунктыДоговора это сам текст договора;
  • подписиНаСтраницах это нижний колонтитул;
  • подписи это подписи/реквизиты в конце договора;
  • параметры это изменяемые параметры договора;
  • нумерация это таблица для нумерации договоров;

Из реквизитов текстовые это пункт(10), текст(не ограничено), символформатирования(20), реквизит(100). Положение это перечисление содержащее значение лево, центр, право, поШирине. Заголовок это булево.

Сама форма выглядит так

 

Юристы в этот справочник добавляют нужные договора. В самом справочнике никакого кода нет. При создании договора пункты нужно забивать как текст. Т.е. если пункт 001 будет стоять выше пункта 1. У меня юристы сразу начинают нумерацию с нулей. Символ форматирования это та строка, которая будет выводиться вместо этого номера. Если она не заполнена, то выводиться сам номер. Если пункт без номера, то там ставиться пробел. Реквизиты в тексте договора начинаются с символа &.

На все реквизиты есть права только у юристов. У остальных пользователей есть право на просмотр и изменение таблицы нумерация.

Сам документ договор.

 

Пользователь выбирает тип договора и заполняет реквизиты (Та часть, которая есть в данных контрагента, вытягивается автоматически при заполнении).  После этого он получает готовую форму договора при нажатии на кнопку печать. Далее договор можно распечатывать или сохранять, но при сохранении нужно выбирать формат pdf. В ворде и экселе форматирование теряется. Вполне возможно, что на платформе 8.3 это уже исправили. Если вдруг контрагента не устраивает что-то в тексте договора, то в табличной части нужно добавить строку и заполнить нужный пункт договора. После этого текст и настройки данного пункта, появятся в соответствующих колонках, и их можно будет отредактировать. Для того, чтобы определить правильный номер пункта служит кнопка шаблон.

 

Реквизиты можно посмотреть при нажатии на кнопку реквизиты