Примеры формул для параметров макета договора (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].Специализация
При необходимости можно добавить условие на проверку наличия профиля в УП:
?(&УчебныйПлан.Профили.Количество()=0,"",&УчебныйПлан.Профили[0].Специализация)

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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




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

23 комментария :

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

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

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

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

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

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

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

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

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

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

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

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

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

      Удалить
  7. Здравствуйте! Подскажите пожалуйста, каким образом можно просклонять данные? Например, в договоре требуется ФИО поступающего в родительном падеже.

    ОтветитьУдалить
    Ответы
    1. Здравствуйте. Можно, например, так - РодительныйПадеж(&Обучающийся). Пример есть выше в блоке юридических лиц.

      Удалить
    2. Не подскажете, каким образом решилась проблема подсчета полной стоимости обучения?

      Удалить
    3. Спасибо! Потихоньку уже сам разбираюсь

      Удалить
    4. ... проблема подсчета полной стоимости обучения...
      Уже писала выше - пока только два решения:
      1) вводить ее вручную в форме договора (заведя соответствующую характеристику для договора).
      2) доработать конфигурацию, сделав автоматический расчет.
      Про данный вопрос можно почитать тут.

      Удалить
  8. Здравствуйте. Подскажите, пожалуйста, как можно получить в шаблоне договора Адрес проживания и Адрес электронной почты. Адрес регистрации выводится уже.

    ОтветитьУдалить
    Ответы
    1. Здравствуйте.

      Адрес электронной почты:
      ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&Обучающийся, Справочники.ТипыАдресов.АдресЭлектроннойПочты, &ДатаДоговора)

      Адрес проживания:
      ДоговорыСервер.ПолучитьАдресПоТипуАдреса(&Обучающийся, Справочники.ТипыАдресов.АдресПроживания, &ДатаДоговора)

      Удалить