Шаблоны документов. Создание и работа с шаблонами.
Last updated
Last updated
Шаблоны документов необходимы для облегчения работы юридическому отделу при подготовке разных типов договоров. Они позволяют минимизировать человеческие ошибки при вводе персональных данных покупателя, данных по сделке или объекту недвижимости.
В качестве шаблона документа выступает подготовленный файл формата DOCX, в котором уже прописаны основные положения и пункты.
Добавление шаблона производится в разделе «Компания» - «Шаблоны документов» - «Добавить шаблон»
Существует множество разных типов документов, по которым создаются шаблоны.
Типы документов условно можно разделить на 2 группы:
Основные - это ДДУ, ДКП, Договор Уступки, Договор пая, Предварительный договор. По ним можно сгенерировать документ в 5 шаге сделки с недвижимостью.
Дополнительные - доп.соглашения к ДДУ, уведомления, справки. По ним можно сгенерировать документ в шаге 5.2.
Для удобства использования шаблонов рекомендуем использовать дополнительные опции:
Дом - привяжите шаблон к дому/домам, в котором этот шаблон необходимо использовать, темым исключив его из домов, где в нем нет необходимости;
Категория недвижимости - задайте для шаблона категорию недвижимости, и только в сделках на объекты с этой категорией шаблон будет доступен к выбору;
Программа покупки - укажите только те программы покупки, для которых подходит этот шаблон;
Ипотечный банк - укажите только те банки, к которым применим этот шаблон;
Число покупателей - если ваши шаблоны разделены по количеству покупателей, то сделайте привязку шаблона по этому признаку.
Основной принцип в подготовке шаблона - это замена участка текста документа, который должен будет выводиться автоматически из срм, на специальную переменную, отвечающую за этот параметр.
Переменные помечаются ${nazvanieBezProbelov} (знак доллара за которым идет название переменной без пробелов на латинице в фигурных скобках)
Список всех доступных к использованию переменных находится на странице конкретного шаблона и одинаков для всех вышеперечисленных типов:
В таблице указан параметр, который она будет выводить, само название переменной и пример значения, которое переменная будет выводить с сгенерированный документ.
Для упрощения поиска нужной переменной сверху таблице расположена строка поиска.
Шрифт, размер и регистр переменной указываем тот, который должен быть в конечном документе при генерации.
Все переменные можно разделить на 2 вида:
Свободные от таблиц - это те переменные, которые можно размещать в шаблоне неограниченное количество раз в неизменном виде, при этом их размещение не зависит от таблиц;
Зависимые от таблиц - это те переменные, которые работаю корректно только внутри ряда таблицы и требуют нумерацию при каждом повторном использовании в рамках одного шаблона.
Для упрощения работы, в таблице с переменными присутствуют подсказки, какие именно переменные обязательно нужно размещать в таблице. Например:
С обычными переменными работать просто: копируем название переменной из общего перечня и вставляем в текст шаблона в нужном участке.
Пример как выводить дату и номер договора в шапке документа:
Отдельное внимание стоит обратить, что город и дату договора желательно расположить в таблице, чтобы при генерации документа не было переноса даты на новую строку. Границы таблицы впоследствии сделать невидимыми.
В работе с табличными переменными контакта существует 2 основных правила:
Размещать только в таблице.
В шаблоне мы создаем таблицу. Если в окончательном документе таблица не должна быть видна, то ее границы делаем невидимыми.
Все переменные, которые будут выводить данные покупателя, размещаем внутри одного ряда таблицы. Формат, порядок используем тот, который требуется в вашей компании по конкретному образцу.
Создавать несколько строк таблицы по количеству покупателей не нужно. При генерации документа по шаблону, в случае когда покупателей несколько - таблица автоматически продублирует строки для каждого из них. Таким образом в конечном документе выведутся все покупатели с данными каждого персонально.
Нумеровать повторяющиеся переменные.
Когда мы используем переменные покупателя в первый раз в шаблоне - мы вставляем их в неизменном виде из таблицы переменных.
При использовании этих же переменных второй, третий и более раз - каждый раз им обязательно необходимо добавлять нумерацию. Нумерация добавляется внутри фигурных скобок в виде _2, _3, _4 и так далее.
При этом в нумерации действует 2 главных принципа:
В рамках одной таблицы с переменными, у всех переменных нумерация одинаковая;
В рамках одного шаблона нумерация между таблицами с переменными не должна повторяться.
Как видно из примера: в верхней таблице у всех переменных нумерация одинаковая _2, в нижней таблице _3, между таблицами нумерация разная.
Порядок нумерации значения не имеет. В рамках одной таблицы можно использовать неограниченное количество раз одинаковую переменную. Например, ФИО покупателя внутри одной строки таблицы можно указывать несколько раз, главное соблюдать принцип нумерации.
Особое внимание уделяется расположению переменных в пункте договора «Реквизиты и подписи сторон». Здесь переменные по данным клиента располагаются внутри таблицы, в отдельном столбце общей таблицы. Если в сделке будет несколько покупателей, то таблица автоматически продублирует строки для каждого из них, а реквизиты продавца останутся в единственном экземпляре.
Границы таблицы, как правило, делаются потом невидимыми, но зависит от вашей компании.
На данный момент, есть одна строго определенная форма, по которой можно выводить данные по несовершеннолетним детям из шаблона.
Образец, как это выглядит в договоре:
То есть в шапке договора через запятую выводятся родители, а потом, после матери, выводятся через запятую дети, от лица который она действует.
Таким же образом и в реквизитах сторон: дети право подписи не имеют, поэтому за ним подписывает мать.
Как это реализуется на уровне шаблона?
Есть специальные переменная ${contacts.allnames:children}. Она выводит все ФИО покупателей через запятую, с указанием несовершеннолетних детей. При этом она автоматически склоняет «действующая за себя и своих несовершеннолетних детей» и «действующая за себя и своего несовершеннолетнего ребенка», в зависимости от кол-ва таковых в сделке. Эта переменная не табличная, ее можно использовать в любом участке шаблона.
Есть табличная переменная ${contacts.get_name_io:children}, которая будет выводить в документ Фамилию И.О всех взрослых покупателей, а матери будет добавляться текст «действующая за себя и своих/своего несовершеннолетних/го детей/ребенка». Ее необходимо использовать в таблице с реквизитами.
Теперь посмотрим как это выглядит в шаблоне:
Подробнее остановимся на том, каким образом нужно оформить сделку, чтобы переменные правильно работали.
В сделке с детьми нужно корректно указать роли покупателям. Покупателю, который будет действовать от имени своих несовершеннолетних детей (ребенка) назначаем роль «Родитель» (обычно это мать):
Детям назначаем роль «Ребенок»:
Также обращаем внимание, что роль «родитель» в сделке может быть указана только у одного из взрослых покупателей, и означает не фактического родителя детей, а того покупателя, кто будет действовать от их имени.
График платежей в договорах может выглядеть по-разному. Комбинация столбцов выбирается в каждом конкретном случае своя. Рассмотрим стандартный вариант графика. Создаем таблицу с двумя строками и 4 столбцами:
В первый вставляется переменная номера платежа, во второй - суммы платежа, в третий - переменная срока оплаты и в четвертый - комментарий к платежу.
При формировании договора эта таблица склонирует количество строк, равное количеству платежей в сделке в 3 шаге.
Пример графика, сгенерированного по шаблону:
Встречаются варианты, когда первый платеж (первоначальный взнос) описывается в тексте договора подробно, а график платежей составляется на оставшуюся сумму.
Для того, чтобы первый платеж не задублировался до таблицы и внутри нее, перед таблицей графика ставим переменную ${finances.table_skip_first_row}. Она ничего не будет выводить, она только исключит первый платеж из таблицы при генерации документа.
Два возможных варианта оформления:
Обратите внимание, на втором примере в переменной ${finances.num.1} стоит уже 1, а не 0. Это сделано для того, чтобы у всех платежей, следующих после первого, нумерация началась с номера 2.
Различают 3 вида формы собственности:
Общая собственность. Это когда покупатель в сделке единственный.
Общая совместная собственность. Когда покупателей в сделке несколько и (важно) доли в сделке по ним не указаны.
Общая долевая собственность. Когда покупателей в сделке несколько и каждому указана конкретная доля собственности объекта.
Все формы собственности выводятся одной переменной, в зависимости от требуемого падежа. То есть, какие условия в сделке заданы, те и будут выводиться по переменной.
Особенность заключается в выводе долей покупателя.
Можно в шаблоне создать таблицу, примерно так:
Либо использовать более универсальный способ - через переменные ${contacts.contacts_buy_portion_list} или ${contacts.contacts_buy_portion_list:name}
Различаются они незначительно:
Данные по этим переменным выводятся только в том случае, когда покупателям заданы доли в сделке.
Если доли в сделке не заданы, то переменная возвращает пустоту и срабатывает другой сценарий - общая или общая совместная собственность.
Нередко встречаются ситуации, когда в рамках одного дома разные объекты недвижимости реализуются от разных продавцов, особенно актуально это для договоров Уступки.
Чтобы не создавать множество похожих шаблонов, отличающихся друг от друга только продавцами, используются переменные продавцов.
В отличии от переменных покупателей, их не нужно размещать внутри таблицы и нумеровать.
В нужном участке договора вставляем подходящую переменную.
Существует несколько особенностей использования переменных подписантов со стороны продавца.
Разберем 2 случая:
У продавца один подписант.
У продавца несколько подписантов.
Если подписант единственный, то данные по нему заполняют в карточке продавца в разделе «Реквизиты», без каких либо особенностей.
Если подписантов несколько, то в карточке продавца данные по ним необходимо внести через аффилированность контактов:
Переменные в обоих случаях используются одни и те же, а вывод подписанта определяется ответственным сотрудником в 5 шаге в соответствующем поле:
Важно: подписант, добавленный в разделе «Реквизиты» считается подписантом по-умолчанию и в это поле не выводится.
Реквизиты продавца можно выводить двумя способами:
1. Через специально отведенные для этого поля
В этом случае в шаблоне будет задан конкретный порядок, в котором они будут выводиться.
2. Через поле «Реквизиты для договора», которое находится в разделе «Дополнительные параметры»
В это поле можно вносить любую информацию по продавцу в свободной форме, если первый способ не подходит. При генерации документа данные из этого поля будут выводиться в исходном виде.
В шаблоне это будет выглядеть так:
Встречаются ситуации, когда договора между разными домами отличаются только характеристиками этих домов. То есть сам текст идентичный, а отличия касаются адреса, этажности, сроков ввода и прочего.
В таких случаях удобно использовать переменные, которые будут выводить характеристики дома.
Раздел, в котором они вносятся называется «Паспорт объекта»:
Все поля здесь для произвольно-написанного текста. И данные из этих полей выводятся переменными в исходном заданном виде.
Переменные, которые используются в этом случае, находятся в таблице в блоке «Характеристики строения где располагается объект недвижимости»
Кроме специализированных полей в паспорте объекта есть ряд кастомных, на разные случаи, например, когда необходимо вывести в шаблон целый кусок текста:
Тогда мы используем переменную ${estate.estate_constructionParamN}, где вместо N вставляем номер поля, из которого нужно брать информацию.
Самые распространенные переменные в шаблоне - это переменные, которые выводят характеристики конкретного объекта недвижимости: квартиры, кладовой, машиноместа, КН.
Переменные, которые используются в этом случае, находятся в таблице в блоке «Приобретаемый объект недвижимости»
Большая часть данных не требует объяснения, в таблице переменные подписаны, в MacroCRM поля, из которых берутся данные, называются идентично.
Особое внимание обратим на вывод в договора данных по площадям объекта.
Краткая справка:
У разных застройщиков в понятие «Общая площадь» вкладывается разное. Чаще всего это касается именно квартир.
Общая площадь - сумма всех площадей квартиры + сумма полных площадей летних помещений (лоджий, балконов, террас)
Общая площадь - сумма всех площадей квартиры + сумма площадей летних помещений, подсчитанная с применением понижающего коэффициента. Для лоджий коэффициент 0,5, для балконов и террас - 0,3. Эту площадь обычно называют «Приведенная» или «Расчетная».
Общая площадь - сумма всех площадей квартиры без площадей летних помещений.
Общая площадь для MacroCRM - эта та, которую мы видим в шахматке, чаще всего это либо полная, либо приведенная:
При подготовке шаблона в первую очередь необходимо четко понимать, что вкладывается в понятие общей площади конкретной в вашей компании. И именно эту площадь мы выводим переменной ${estate.estate_area}.
После этого становится понятно, какими переменными выводить все площади.
Если общая площадь у вас - это общая приведенная площадь (то есть площадь квартиры + площадь лоджии с понижающим коэффициентом), то расклад такой:
жилая ${estate.estate_area_living}
общая площадь квартиры без летних помещений ${estate.estate_area_minus_loggia_area_w_koef}
общая полная площадь квартиры квартиры ${estate.estate_area_w_loggia}
общая приведенная площадь ${estate.estate_area}
Если общая площадь у вас - это сумма всех площадей квартиры + сумма полных площадей летних помещений (лоджий, балконов, террас), то такой:
жилая ${estate.estate_area_living}
общая площадь квартиры без летних помещений ${estate.estate_area_minus_loggia_m2_propis}
общая полная площадь квартиры квартиры ${estate.estate_area}
общая приведенная площадь ${estate.estate_area_inside_only}
С точки зрения хранения данных в MacroCRM использовать необходимо именно эти переменные, так как они из базовых значений арифметически вычисляют все прочие площади.
Но в современной ситуации, когда каждый застройщик ведет подсчет по своему, а именно округляет вычисляемые площади по своему - лучше использовать более кастомный вариант.
Например площадь без летних помещений проще внести в эксель-шахматку, как статичное значение и выводить переменной ${estate.estate_area_inside}
Какие-либо любые другие площади, под которые в MacroCRM отсутствуют специализированные поля, либо округленные по неописуемой логике, можно вносить в эксель шахматку в кастомные колонки и выводить соответствующими переменными ${estate.estate_customAreaN}
Для указания площадей прописью достаточно добавить к переменной окончание _propis. Пример: ${estate.estate_area_propis}.
Все дополнительные площади квартиры можно вносить 2 способами, в зависимости от требований договора в вашей компании:
Точечно по тексту. Тогда можно использовать точечные переменные.
Здесь всё просто: ставите переменную в тот участок шаблона, где она должна вывести значение площади.
В виде таблицы.
Самый удобный и автоматизированный способ выводить площади объекта в документ при помощи таблиц.
При этом в таблицах можно использовать те же самые переменные, что и без таблиц, располагая каждую в строку, либо использовать табличные переменные площадей. О них поподробнее.
Есть табличные переменные, поделенные по типу: жилые комнаты, лоджии/балконы/террасы и вспомогательные помещения.
То есть отдельные переменные выведут наименования жилых комнат и их площади, в зависимости от того, сколько площадей заполнено (если одна комната - выводит одну строку с площадью одной комнаты, если 3 комнаты - выведет 3 строки с площадями каждой из них и т.д.).
Отдельные переменные выведут наименования лоджий/балконов/террас, в зависимости от того, площади чего загружены в эксель-шахматке (если лоджия загружена, а балкон нет - выведет строку с балконом и его площадью, если загружены обе площади - выведет две строки с площадями обоих помещений и т.д.).
Отдельные переменные выведут наименования помещений вспомогательного назначения (санузел/прихожая/гардероб), в зависимости от того, площади чего загружены в эксель-шахматке. Принцип вывода данных аналогичный.
Этот способ удобен тем, что выводятся только те помещения и их площади, которые действительно загружены в объекте и лишние помещения удалять не нужно.
В шаблоне такая таблица выглядит примерно так:
Переменная ${estate.plans_img} выводит в договор изображение планировк объекта. При этом размер конечной картинки можно регулировать на уровне шаблона, для этого внутри фигурных скобок после переменной ставим символ | и пишем число, которое укажет максимальный размер большей стороны изображения - чаще всего это 400. Переменная будет выглядеть вот так: ${estate.plans_img|400}.
Переменная ${etag_plan} выводит в договор изображение поэтажного плана. Размер конечной картинки также можно регулировать на уровне шаблона. Для поэтажного плана чаще всего максимальный размер большей стороны изображения 700, переменная будет выглядеть вот так: ${etag_plan|700}.
Подробно остановимся на том, откуда переменные берут значение.
В доме есть два раздела: планировки объектов и поэтажные планировки.
Планировки объектов, как правило, загружаются двух типов - цветные маркетинговые и черно-белые для документов.
Если планировки для документов загружены, то переменная ${estate.plans_img} выведет в договор именно их, если не загружены - то в договор выводится главное изображение.
С поэтажными планами принцип аналогичный.
Если поэтажные планы для документов загружены, то по переменной ${etag_plan} в договор выводятся они:
Если загружены только маркетинговые поэтажные планы, то в договор пойдут они:
Переменные ${estate.plans_furniture_img} и ${estate.plans_img_main} выводят изображение планировки объекта с мебелью и главное изображение соответственно.
Пример, как выглядит в шаблоне приложение с этими переменными:
При этом стоит обратить внимание, что реквизиты опускать сильно вниз листа не стоит. В шаблоне между переменной и таблицей с реквизитами указываем именно то расстояние, которое должно быть в выгружаемом варианте. В противном случае таблица с реквизитами перенесется на следующий лист, что нежелательно.
Фильтры позволяют к стандартным переменным добавлять особенные условия вывода информации, которые подходят той или иной компании.
Разберем самые распространенные из них:
${<метка>|clarification} - выводит цену прописью с пояснением. Фильтр можно применять к любым ценам.
Например, первый платеж можно вывести двумя способами:
${finances.first_summa} (${finances.first_summa_propis}) рублей 00 копеек или ${finances.first_summa|clarification}.
При этом второй вариант предпочтительнее, так как используется только одна переменная и правильно склоняется сумма копеек.
${<метка>|nformat,2} или ${<метка>|nformat,1} - выводит площадь объекта с фиксированным количеством знаком после запятой, 2 - 2 знака, 1 - 1 знак. Это используется, когда требуется все площади выводить в договор в едином формате.
${<метка>|round} - округляет значение площади в большую сторону. Например округляет 1.5 в 2.
${<метка>|roundDn} - округляет в меньшую сторону. Например округляет 1.5 в 1.
${<метка>|ucfirst} - преобразует первый символ строки в верхний регистр (текст -> Текст). То есть можно добавить для тех меток, значение которых у нас по умолчанию выводится с маленькой буквы, а компании-клиенту нужно с заглавной.
${<метка>|evr} - если переменная ${<метка>} возвращает пустое значение, то есть в срм не задано значение, которая она должна вывести, то будет удален абзац содержащий данную метку.
Как это можно использовать: например, добавить этот фильтр в таблице с реквизитами к переменным кода подразделения, адреса электронной почты, номера телефона… Так как эти параметры могут присутствовать не у всех участников сделки, особенно у детей.
Как это выглядит в шаблоне:
У детей отсутствует код подразделения (так как документ Свидетельство о рождении), чаще всего отсутствует номер телефона и адрес электронной почты. Фильтр |evr удалит полностью строку с этой меткой конкретно у детей. А у покупателей, у которых эти значения заполнены - выведутся значения.
${<метка>|evrt} - если переменная ${<метка>} возвращает пустое значение, то будет удалена строка таблицы содержащая данную метку. Работает аналогично |evr, только используется для таблиц.
Например можно использовать этот фильтр при формировании таблицы с площадями объекта. Мы задаем в шаблоне таблицу с максимальными возможными значениями площадей. А затем фильтр удалит те строки из таблицы, по которым площади в объекте отсутствуют.
Как это выглядит в шаблоне:
То есть, к примеру, если в квартире будет отсутствовать значение одного гардероба и совмещенного санузла, то эти строки из таблицы удалятся полностью.
${<метка>|evl,<значение>} - если переменная ${<метка>} возвращает пустое значение, вместо нее будет использовано <значение>. Этот фильтр позволяет выводить нужный текст вместо пустого значения по переменной.
Как это можно использовать: например выводить разные варианты в реквизитах для подписанта, когда подписант может действовать по доверенности или без нее.
Как это выглядит в шаблоне:
При таком раскладе возможно 2 варианта:
если у подписанта указана роль (директор, генеральный директор), то по переменной она выведется и получится Директор ООО «СЗ «Новый Застройщик»
если у подписанта роли нет (когда это аффилированный подписант), то по переменной значение пустое, и она выведет указанный нами текст (на скрине это «По доверенности»). И в выгружаемом договоре получится По доверенности ООО «СЗ «Новый Застройщик».
Или, например, если в сделке отсутствует дата договора, то вместо нее можно выводить замену под ручное заполнение даты. Например так:
3.10 Проверка шаблонов документов
Тестирование шаблонов всегда производится на сделке, значит первое, что нужно – завести сделку. Самый простой способ – создать договор из шахматки:
При этом сразу откроется шахматка выбранного дома. Далее нужно кликнуть по любой свободной (зеленого цвета) квартире.
После этих действий меню закроется, а выбранная квартира станет синего цвета. Нужно повторно кликнуть по ней и в появившемся меню выбрать «Перейти в сделку»
Сделку нужно довести до 5 шага (проверка договора), где уже можно приступать к скачиванию договоров и других документов. Чтобы попасть в 5 шаг, первое, что нужно сделать – добавить график платежей (3 шаг сделки). Нажимаем «Редактировать график платежей» Так как сделка тестовая – не придаем этому особого значения, делаем один платеж на всю сумму на любую дату
Если тестируем ипотечные шаблоны – то следует добавить два платежа: первый платеж с источником денег наличные/безналичные (это будет первоначальный взнос) и второй платеж с источником денег «ипотека» (это будет ипотечный платеж). После добавления платежей нажимаем «сохранить» в графике.
Далее необходимо отправить сделку на согласование, для этого в 4 шаге сделки нажимаем «Отправить на согласование»
После согласования переводим сделку в договорной отдел, тем самым переходим к 5 шагу
В 5 шаге нужно выбрать тип договора (ДДУ/ДКП/Уступка/Предварительный/Пая) – этот выбор ни на что не влияет, просто для корректности, чтобы в дальнейшем можно было понять, какой здесь договор. Далее выбираем сам шаблон из списка, проставляем номер и дату договора, сохраняем. После этого появится кнопка «Сформировать по шаблону» - нажимаем - скачается договор по выбранному шаблону. Далее выбираем другой шаблон и опять скачиваем. И так со всеми шаблонами по очереди. В шаге 5.2 подтягиваются все остальные загруженные шаблоны, кроме ДДУ, ДКП, Уступки, Пая и предварительного, их тоже нужно выбирать по порядку и скачивать (выбрали – скачали, выбрали второй – скачали, и т.д
Если что-то необходимо поправить, то скачайте шаблон на компьютер, внесите правки и загрузите обратно.
Но тогда этот шаблон будет именно для долевой собственности, в противном случае таблицу придется каждый раз удалять юристу после генерации документа по шаблону, что не совсем удобно.
Данные по этим переменным берутся из карточки продавца:
При этом тип связи обязательно должен быть указан «Подписант», а юридическое основание указывается в свободной форме. Но здесь важно учитывать контекст договора, чтобы юридическое основание идеально подошло по склонению, падежу.
Переменными также предусмотрен вывод индивидуальной планировки объекта и расположение объекта на этаже (далее «поэтажный план»)
Также фильтры можно сочетать друг с другом. Например, удалять строку таблицы, если значение по переменной отсутствует и форматировать значение площади до 1 знака после запятой:
С рабочего стола https://macrocrm.ru/account/dashboard/ проходим в любой дом, в котором есть квартиры на продаже
По клику на квартиру откроется меню, в котором следует выбрать вкладку «Перевести в договор», указать клиента (предварительно создать тестовый контакт) и подтвердить создание сделки (Кнопка снизу «Перевести в договор»)