Примеры формул для параметров макета договора (1С Университет)

Как уже говорилось ранее в статье Шаблон и номер договора в 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].Специализация
При необходимости можно добавить условие на проверку наличия профиля в УП.

Уровень образования (если нужно задать значение отличное от заданного в справочнике уровней)
?(&УчебныйПлан.УровеньПодготовки.Наименование="Магистр","магистратура",?(&УчебныйПлан.УровеньПодготовки.Наименование="Специалист","специалист","бакалавриат"))

Квалификация
&УчебныйПлан.Квалификация

Форма обучения
НРег(&УчебныйПлан.ФормаОбучения)

Срок обучения
?(НачалоДня(&ДатаНачала) > Дата (Год(&УчебныйПлан.УчебныйГод.НачальныйГод),9,1), "_____________", Строка(&УчебныйПлан.ОсновнойСрокОбучения) + ?(&УчебныйПлан.ОсновнойСрокОбучения < 5," года"," лет") + ?(&УчебныйПлан.ДополнительныйСрокОбучения > 0," " + Строка(&УчебныйПлан.ДополнительныйСрокОбучения) + " мес.",""))

Стартовый семестр (если в договоре надо указать с какого семестра начинается обучение, например, в случае перевода сразу на более старший курс)
НРег(СтрЗаменить(Справочники.ПериодыКонтроля.НайтиПоРеквизиту("ПорядковыйНомер",((Год(&ДатаНачала) - Год(&УчебныйПлан.УчебныйГод.НачальныйГод))*2 + ?(Месяц(&ДатаНачала)>8 ИЛИ Месяц(&ДатаНачала)=1, 1, 0)),Справочники.ПериодыКонтроля.НайтиПоНаименованию("Семестры")).Наименование," семестр",""))

Сокращенное наименование факультета
&УчебныйПлан.Факультет.СокращенноеНаименование


4. Сведения о других сторонах договора

Если договор 3х сторонний и третье лицо - физлицо, то формула вывода ФИО третьей стороны:
&ИсточникФинансирования

Если в качестве третьей стороны - юридическое лицо (ЮЛ)

Наименование ЮЛ
&ИсточникФинансирования.ПолноеНаименование

Адреса ЮЛ
ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&ИсточникФинансирования, Справочники.ТипыАдресов.ЮридическийАдрес, &ДатаДоговора)

ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&ИсточникФинансирования, Справочники.ТипыАдресов.ПочтовыйАдрес, &ДатаДоговора)

ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&ИсточникФинансирования, Справочники.ТипыАдресов.Телефон, &ДатаДоговора)

Сведения о представителе ЮЛ
РодительныйПадеж(&ЮЛПредставительФИО)
РодительныйПадеж(&ЮЛПредставительДолжность)
&ЮЛПредставительДокументОснование

Сведения о ЮЛ
&ИсточникФинансирования.ИНН
&ИсточникФинансирования.КПП
&ИсточникФинансирования.ОГРН  
&ИсточникФинансирования.КоррСчет
&ИсточникФинансирования.БИК
&ИсточникФинансирования.ГородБанка

Счета ЮЛ
&ИсточникФинансирования.РасчетныйСчет + ?(СтрДлина(&ИсточникФинансирования.ЛицевойСчет)>0," л/с " + &ИсточникФинансирования.ЛицевойСчет + " "," ") + &ИсточникФинансирования.Банк

В этом случае для корректного заполнения шаблона договора необходимо создать для юр.лица (заказчика) элемент в справочнике Контрагенты и заполнить следующие поля:
  • Полное наименование
  • ИНН, КПП, ОГРН
  • Банковские реквизиты
  • Добавить контактную информацию: юридический адрес, почтовый адрес, телефон
В форме договора также нужно заполнить поля (добавить соответствующие характеристики):

  • Заказчик - вышеуказанный контрагент
  • ФИО представителя ЮЛ (представитель юридического лица, например, "Иванов Иван Иванович")
  • Должность представителя ЮЛ (например, "директор")
  • Представитель действует на основании (в склонении, например, "устава", "доверенности №15 от 02.05.2017г.")

Пример: добавлены строковые характеристики ЮЛПредставительФИО, ЮЛПредставительДолжность, ЮЛПредставительДокументОснование




См. также
(с) Ella S.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

18 комментариев :

  1. Этот комментарий был удален автором.

    ОтветитьУдалить
    Ответы
    1. Имеется в виду, что нужно добавить дополнительные строковые характеристики к договору и просто заполнять их текстом в самом договоре. Как это сделать через Контрагента, не нашла, а то было бы удобно, просто "подтягивать" из справочника. Либо заводить под каждого контрагента отдельное физлицо и заполнять поле должности.

      Удалить
  2. Ответы
    1. Делала простым текстовым полем ЮЛПредставительДокументОснование, которое вручную заполняется в самой форме договора при его создании. Добавила скриншоты в конце статьи.

      Удалить
    2. Кстати, как вариант, можно добавить эти данные в контакты контрагента (создав соответствующий тип адреса для этого).

      Удалить
  3. Здравствуйте! Как вывести стоимость обучения за весь период обучения?

    ОтветитьУдалить
    Ответы
    1. В типовой конфигурации - только вводя ее вручную в форме договора (заведя соответствующую характеристику для договора). Мы делали расширение конфигурации по блоку договоров (там же в том числе делали авторасчет полной суммы). На конференции (educonf.1c.ru, 31 января 2018) будет опубликована моя статья по этому вопросу.

      Удалить
  4. Здравствуйте! Как добавить свой тип данных (Тип значения)? Хочу в форме договора создать выпадающий список!

    ОтветитьУдалить
    Ответы
    1. Наверно только через конфигуратор.

      Удалить
  5. 1. не показывает адрес источника финансирования в качестве физ лица. сделал "ФизическиеЛицаСервер.ПолучитьАдресПроживанияФизическогоЛица(&ИсточникФинансирования,&ДатаДоговора)"
    2. не показывает юр.адрес и почтовый адрес источника финансирования в качестве контрагента сделал как на примере.

    ОтветитьУдалить
    Ответы
    1. А дата адреса раньше даты договора?

      Удалить
    2. Тогда сложно сказать, должно показывать (обычно не показывает только если дата адреса в регистре более поздняя, чем дата договора). Ищите, где-то ошиблись...

      Удалить
  6. при создании дополнительного соглашения, ошибка "Поле объекта не обнаружено (ТекстоваяСтрока)", где и как можно исправить?
    создаю поле с таким именем, результат тот же

    ОтветитьУдалить
    Ответы
    1. Это ошибка релиза 2.1.1. Обратитесь к разработчикам, они пришлют патч. Или самостоятельно в конфигураторе в справочнике "Объекты" в форме элемента в процедуре ПриСозданииНаСервере добавьте строку кода "ЗаписиОбъекта.Колонки.Добавить("ТекстоваяСтрока");" после строки "ЗаписиОбъекта.Колонки.Добавить("Характеристика");".

      Удалить