Как уже говорилось
ранее в статье Шаблон и номер договора в 1С Университет мы можем создавать шаблоны договоров (в
системе 1С:Университет). Для того, чтобы данные корректно загрузились в
договор, к каждому параметров необходимо задать функцию (формулу), которая
выгрузит из базы нужные для договора данные (это могут быть как поля самого
договора, так и сопутствующие данные - например паспорт физического лица).
В следующем списке
приведены примеры функций, которые можно использовать в параметрах макета
договора.
Примеры формул для параметров макета договора:
1. Сведения о договоре
Получение номера договора.
&НомерДоговора
Если это
дополнительное соглашение и нужно получить номер основного договора, то
формула:
&ДоговорОснование.НомерДоговора
Получение канцелярской даты договора.
Формат(&ДатаДоговора,"ДЛФ=DD")
Если это
дополнительное соглашение и нужно получить дату основного договора, то формула:
Формат( &ДоговорОснование.ДатаДоговора,"ДЛФ=DD")
Если нужны дата
начала или окончания, то соответственно:
Формат( &ДатаНачала,"ДЛФ=DD")
Формат( &ДатаОкончания,"ДЛФ=DD")
Проект договора (если нужно вывести информацию
о том, что происходит печать проекта (не утвержденного) договора):
?(СостоянияДокументовСервер.ПолучитьТекущееСостояниеОбъекта(Справочники.Объекты.НайтиПоКоду(&Код))=Неопределено, "ВНИМАНИЕ! НАПЕЧАТАН ПРОЕКТ СОГЛАШЕНИЯ" + Символы.ПС, ?(СостоянияДокументовСервер.ПолучитьТекущееСостояниеОбъекта(Справочники.Объекты.НайтиПоКоду(&Код)).Наименование="Утвержден","","ВНИМАНИЕ! НАПЕЧАТАН ПРОЕКТ СОГЛАШЕНИЯ" + Символы.ПС))
2. Сведения об обучаемом
ФИО студента/абитуриента.
&Обучающийся
Если нужно получить
в формате "Фамилия И.О.", тогда
формула примерно такая:
&Обучающийся.Фамилия + " " + Лев(&Обучающийся.Имя,1) + "." + ?(СтрДлина(&Обучающийся.Отчество)>0, Лев(&Обучающийся.Отчество,1) + ".","")
Дата рождения обучаемого.
Формат(&Обучающийся.ДатаРождения,"ДФ=dd.MM.yyyy")
Паспортные данные:
Серия паспорта
ФизическиеЛицаСервер.ПолучитьДанныеОПаспортеФизическогоЛица( &Обучающийся, &ДатаДоговора).Серия
Номер паспорта
ФизическиеЛицаСервер.ПолучитьДанныеОПаспортеФизическогоЛица( &Обучающийся, &ДатаДоговора).Номер
Дата выдачи паспорта
Формат(ФизическиеЛицаСервер.ПолучитьДанныеОПаспортеФизическогоЛица( &Обучающийся, &ДатаДоговора).ДатаВыдачи, "ДФ=dd.MM.yyyy")
Орган, выдавший паспорт
ФизическиеЛицаСервер.ПолучитьДанныеОПаспортеФизическогоЛица( &Обучающийся, &ДатаДоговора).ОВД
Код подразделения
ФизическиеЛицаСервер.ПолучитьДанныеОПаспортеФизическогоЛица( &Обучающийся, &ДатаДоговора).КодПодразделения
Адрес регистрации обучаемого (хоть в формуле и
написано, что "проживание", будет возвращен адрес регистрации)
ФизическиеЛицаСервер.ПолучитьАдресПроживанияФизическогоЛица( &Обучающийся, &ДатаДоговора)
Телефон обучаемого (в формуле берется первый из
телефонов, если их несколько)
?(&Обучающийся.Телефоны.Количество()=0,"_______________",&Обучающийся.Телефоны[0].Телефон)
3. Сведения об обучении
Стоимость обучения за семестр
&СтоимостьОбучения/2
Если нужно прописью (с рублями/копейками), то
формула:
СокрЛП(Цел(&СтоимостьОбучения/2)) + " (" + СтрЗаменить(СокрЛП(ЧислоПрописью(&СтоимостьОбучения/2, "Л=ru_RU;НД=Истина", ") рубль,) рубля,)
рублей,м,копейка,копейки,копеек,ж,2"))," )",")")
Если нужно выводить без копеек, когда целое число:
СокрЛП(Цел(&СтоимостьОбучения/2)) + " (" + СтрЗаменить(СокрЛП(?(Цел(&СтоимостьОбучения/2) = &СтоимостьОбучения/2, ЧислоПрописью(Цел(&СтоимостьОбучения/2), "Л=ru_RU", ") рубль,) рубля,) рублей,м,,,,,0"),ЧислоПрописью(&СтоимостьОбучения/2, "Л=ru_RU;НД=Истина", ") рубль,) рубля,)
рублей,м,копейка,копейки,копеек,ж,2")))," )",")")
Если нужно ее печатать только когда договор утвержден:
?(СостоянияДокументовСервер.ПолучитьТекущееСостояниеОбъекта(Справочники.Объекты.НайтиПоКоду(&Код))=Неопределено, "",
?(СостоянияДокументовСервер.ПолучитьТекущееСостояниеОбъекта(Справочники.Объекты.НайтиПоКоду(&Код)).Наименование="Утвержден",СокрЛП(Цел(&СтоимостьОбучения/2)) + " (" + СтрЗаменить(СокрЛП(ЧислоПрописью(&СтоимостьОбучения/2, "Л=ru_RU;НД=Истина", ") рубль,) рубля,)
рублей,м,копейка,копейки,копеек,ж,2"))," )",")"),""))
Если нужно просто прописью без рублей и копеек
СокрЛП(ЧислоПрописью(&СтоимостьОбучения/2, "Л=ru_RU", " , , , , , , , , 0"))
Код специальности
&УчебныйПлан.Специальность.КодСпециальности
Направление/специальность
&УчебныйПлан.Специальность
Профиль/специализация
&УчебныйПлан.Профили[0].Специализация
При необходимости можно добавить условие на проверку наличия профиля в УП:
?(&УчебныйПлан.Профили.Количество()=0,"",&УчебныйПлан.Профили[0].Специализация)
?(&УчебныйПлан.Профили.Количество()=0,"",&УчебныйПлан.Профили[0].Специализация)
Уровень образования (если нужно задать значение
отличное от заданного в справочнике уровней)
?(&УчебныйПлан.УровеньПодготовки.Наименование="Магистр","магистратура",?(&УчебныйПлан.УровеньПодготовки.Наименование="Специалист","специалист","бакалавриат"))
Квалификация
&УчебныйПлан.Квалификация
Форма обучения
НРег(&УчебныйПлан.ФормаОбучения)
Срок обучения
?(НачалоДня(&ДатаНачала) > Дата (Год(&УчебныйПлан.УчебныйГод.НачальныйГод),9,1), "_____________", Строка(&УчебныйПлан.ОсновнойСрокОбучения) + ?(&УчебныйПлан.ОсновнойСрокОбучения < 5," года"," лет") + ?(&УчебныйПлан.ДополнительныйСрокОбучения > 0," "
+ Строка(&УчебныйПлан.ДополнительныйСрокОбучения) + " мес.",""))
Стартовый семестр (если в договоре надо указать
с какого семестра начинается обучение, например, в случае перевода сразу на
более старший курс)
НРег(СтрЗаменить(Справочники.ПериодыКонтроля.НайтиПоРеквизиту("ПорядковыйНомер",((Год(&ДатаНачала) - Год(&УчебныйПлан.УчебныйГод.НачальныйГод))*2 + ?(Месяц(&ДатаНачала)>8 ИЛИ Месяц(&ДатаНачала)=1, 1,
0)),Справочники.ПериодыКонтроля.НайтиПоНаименованию("Семестры")).Наименование,"
семестр",""))
Сокращенное наименование факультета
&УчебныйПлан.Факультет.СокращенноеНаименование
4. Сведения о других
сторонах договора
Если договор 3х
сторонний и третье лицо - физлицо, то формула
вывода ФИО третьей стороны:
&ИсточникФинансирования
Если в качестве третьей стороны -
юридическое лицо (ЮЛ)
Наименование ЮЛ
&ИсточникФинансирования.ПолноеНаименование
Адреса ЮЛ
ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&ИсточникФинансирования, Справочники.ТипыАдресов.ЮридическийАдрес, &ДатаДоговора)
ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&ИсточникФинансирования, Справочники.ТипыАдресов.ПочтовыйАдрес, &ДатаДоговора)
ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&ИсточникФинансирования, Справочники.ТипыАдресов.Телефон,
&ДатаДоговора)
Сведения о представителе ЮЛ
РодительныйПадеж(&ЮЛПредставительФИО)
РодительныйПадеж(&ЮЛПредставительДолжность)
&ЮЛПредставительДокументОснование
Сведения о ЮЛ
&ИсточникФинансирования.ИНН
&ИсточникФинансирования.КПП
&ИсточникФинансирования.ОГРН
&ИсточникФинансирования.КоррСчет
&ИсточникФинансирования.БИК
&ИсточникФинансирования.ГородБанка
Счета ЮЛ
&ИсточникФинансирования.РасчетныйСчет + ?(СтрДлина(&ИсточникФинансирования.ЛицевойСчет)>0,"
л/с " + &ИсточникФинансирования.ЛицевойСчет + "
","
") + &ИсточникФинансирования.Банк
В этом случае для
корректного заполнения шаблона договора необходимо создать для юр.лица
(заказчика) элемент в справочнике Контрагенты и заполнить следующие поля:
- Полное наименование
- ИНН, КПП, ОГРН
- Банковские реквизиты
- Добавить контактную информацию: юридический адрес, почтовый адрес, телефон
В форме договора
также нужно заполнить поля (добавить соответствующие характеристики):
- Заказчик - вышеуказанный контрагент
- ФИО представителя ЮЛ (представитель юридического лица, например, "Иванов Иван Иванович")
- Должность представителя ЮЛ (например, "директор")
- Представитель действует на основании (в склонении, например, "устава", "доверенности №15 от 02.05.2017г.")
Пример: добавлены строковые характеристики ЮЛПредставительФИО, ЮЛПредставительДолжность, ЮЛПредставительДокументОснование
См. также
(с) Ella S.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Этот комментарий был удален автором.
ОтветитьУдалитьИмеется в виду, что нужно добавить дополнительные строковые характеристики к договору и просто заполнять их текстом в самом договоре. Как это сделать через Контрагента, не нашла, а то было бы удобно, просто "подтягивать" из справочника. Либо заводить под каждого контрагента отдельное физлицо и заполнять поле должности.
УдалитьА устав как добавить?
ОтветитьУдалитьДелала простым текстовым полем ЮЛПредставительДокументОснование, которое вручную заполняется в самой форме договора при его создании. Добавила скриншоты в конце статьи.
УдалитьКстати, как вариант, можно добавить эти данные в контакты контрагента (создав соответствующий тип адреса для этого).
УдалитьВсе, понял, спасибо!
УдалитьЗдравствуйте! Как вывести стоимость обучения за весь период обучения?
ОтветитьУдалитьВ типовой конфигурации - только вводя ее вручную в форме договора (заведя соответствующую характеристику для договора). Мы делали расширение конфигурации по блоку договоров (там же в том числе делали авторасчет полной суммы). На конференции (educonf.1c.ru, 31 января 2018) будет опубликована моя статья по этому вопросу.
УдалитьЗдравствуйте! Как добавить свой тип данных (Тип значения)? Хочу в форме договора создать выпадающий список!
ОтветитьУдалитьНаверно только через конфигуратор.
Удалить1. не показывает адрес источника финансирования в качестве физ лица. сделал "ФизическиеЛицаСервер.ПолучитьАдресПроживанияФизическогоЛица(&ИсточникФинансирования,&ДатаДоговора)"
ОтветитьУдалить2. не показывает юр.адрес и почтовый адрес источника финансирования в качестве контрагента сделал как на примере.
А дата адреса раньше даты договора?
Удалитьда
УдалитьТогда сложно сказать, должно показывать (обычно не показывает только если дата адреса в регистре более поздняя, чем дата договора). Ищите, где-то ошиблись...
Удалитьпри создании дополнительного соглашения, ошибка "Поле объекта не обнаружено (ТекстоваяСтрока)", где и как можно исправить?
ОтветитьУдалитьсоздаю поле с таким именем, результат тот же
Это ошибка релиза 2.1.1. Обратитесь к разработчикам, они пришлют патч. Или самостоятельно в конфигураторе в справочнике "Объекты" в форме элемента в процедуре ПриСозданииНаСервере добавьте строку кода "ЗаписиОбъекта.Колонки.Добавить("ТекстоваяСтрока");" после строки "ЗаписиОбъекта.Колонки.Добавить("Характеристика");".
УдалитьЗдравствуйте! Подскажите пожалуйста, каким образом можно просклонять данные? Например, в договоре требуется ФИО поступающего в родительном падеже.
ОтветитьУдалитьЗдравствуйте. Можно, например, так - РодительныйПадеж(&Обучающийся). Пример есть выше в блоке юридических лиц.
УдалитьНе подскажете, каким образом решилась проблема подсчета полной стоимости обучения?
УдалитьСпасибо! Потихоньку уже сам разбираюсь
Удалить... проблема подсчета полной стоимости обучения...
УдалитьУже писала выше - пока только два решения:
1) вводить ее вручную в форме договора (заведя соответствующую характеристику для договора).
2) доработать конфигурацию, сделав автоматический расчет.
Про данный вопрос можно почитать тут.
Здравствуйте. Подскажите, пожалуйста, как можно получить в шаблоне договора Адрес проживания и Адрес электронной почты. Адрес регистрации выводится уже.
ОтветитьУдалитьЗдравствуйте.
УдалитьАдрес электронной почты:
ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&Обучающийся, Справочники.ТипыАдресов.АдресЭлектроннойПочты, &ДатаДоговора)
Адрес проживания:
ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&Обучающийся, Справочники.ТипыАдресов.АдресПроживания, &ДатаДоговора)
Добрый день
ОтветитьУдалитьПри попытке вывести свой шаблон ворда, файл ворд выходит пустым. Ms office 2013 1С:Университет ПРОФ, редакция 2.1 (2.1.4.3).
Что может быть не так?
Вопрос снят разобрался :)
ОтветитьУдалитьЭто хорошо :)
УдалитьДобрый день
ОтветитьУдалитьПри попытке вывести свой шаблон ворда, файл ворд выходит пустым. Ms office 2013 1С:Университет ПРОФ, редакция 2.2 (2.2.1.8) .
Что может быть не так?
Может шаблон недонастроен? Блок {v8 Область.Макет} есть? Можете на форуме спросить и шаблон зарузить, возможно участники форума найдут ошибку: https://forum.vedu.ru/posts/t1368-Dogovora-v-1S-Universitet
УдалитьЗдравствуйте, а как получить СтоимостьОбучения ДоговрОснования ?
ОтветитьУдалитьМожно свою функцию написать, которая достает характеристики договора (например, стоимость) и вызывать ее в формуле, либо добавить поле стоимости в допсоглашение и вызывать его уже напрямую.
УдалитьДобавить поле стоимости, вы имеете на форму доп соглашения ?
УдалитьДа, у нас так сделано.
Удалитьа не подскажите как добавить это поле ?
ОтветитьУдалить