Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

ПодстановкаОтправная точкаПримеры где можно использовать
ДокументdocДоговора, фактуры, платежные поручения
СубъектuserКарточка абонента
ОбъектobjАкт приема передачи оборудования

 

Подстановки

  1. Подстановки для документов
  2. Подстановки для субъектов
  3. Подстановки для объектов

     

Подстановки

Вид шаблонаСтартовая подстановкаПример использования
Шаблон документаdocДокумент{{doc.vc_doc_no}} в Договоре на оказание услуг
Шаблон субъекта учёта (абонента)userСубъект типа Абонент{{user.documents_list}} в Карточке абонента
Шаблон объекта учётаobjОбъект типа Оборудование{{obj.vc_serial}} в Акте приёма-передачи оборудования

Краткое описание

Note

В качестве шаблонного языка шаблонов используется Liquid, документация по синтаксису доступна по адресам:

Использование подстановок

Code Block
Hello {{name}}

Циклы

Code Block
{% for item in array %}
  {{ item }}
{% endfor %}

Условия

Code Block
{% if user.age > 18 %}
   Login here
{% else %}
   Sorry, you are too young
{% endif %}

Фильтры

Пример преобразования к верхнему регистру

Code Block
Hello {{ 'tobi' | upcase }} => Hello TOBI

(в версиях 5.0, 5.1.2, 6.0 при работе со строками в кодировке unicode можно

Пример взятия первых нескольких символов строки (первый параметром передаётся количество символов, вторым — подстрока, обозначающая факт обрезания входной строки):

Code Block
{%assign vc_code = 'АБ-27'%}
{{vc_code|truncate:2,''}} => АБ
{{vc_code|truncate:4,'...'}} => А...

 

Константы

Для использования констант есть специальный объект CONST

...

Дополнительные функции

Дополнительные параметры

Для получения значения дополнительного параметра той или иной сущности к ней необходимо применить фильтр additional_param или ap

...

. В качестве входного параметра фильтра можно указывать как код

...

, так и наименование дополнительного параметра:

Code Block
{{doc.recipient.parent | additional_param:'

...

Регистрационный код плательщика НДС'}}

...


Code Block
БИК банка, в котором находится расчетный счет получателя {{

...

doc.recipient.parent.account_settlement.bank | 

...

ap: 'SUBJ_VAL_BIK'

...

}}

Значения

...

доп. параметров не выводятся в предварительном просмотре.

...

Для множественных доп. параметров

...

фильтр возвращает массив значений.

Числовые

Применимы ко всем числам и числовым подстановкам

  • number_in_words

    Code Block
    {{123 | number_in_words }}
    

    Выведет: сто  сто двадцать три

  • number_in_words_rubles

    Code Block
    {{doc.total.n_sum_wo_tax_sum | number_in_words_rubles }}
    

    Выведет текущую сумму: Одна общую сумму без налогов в рублях и копейках: одна тысяча шестьсот девяносто четыре рубля 92 копейки

  • number_in_words_money с двумя опциональными параметрами:
    Первый — код валюты в формате ISO (например RUB, AZN). По умолчанию используется Российский рубль (RUB).
    Второй — двухбуквенный код языка в формате ISO (например ru, en, az, es). По умолчанию используется язык, задаваемый в Офисе оператора связи через меню Администрирование → Параметры.

    Code Block
    {{doc.total.n_sum_wo_tax_sum | number_in_words_money: 'RUB', 'en'}}
    

    Выведет общую сумму без налогов в рублях на английском языке: one thousand six hundred ninety-four rubles 92 kopecks


  • l:'f_solid' — выводит число двумя знаками после запятой

    Code Block
    {{-123.45 | l:'f_solid' }}
    

    Выведет: -123,0045Примечание:

    Note
    начиная с версии ООС 3.3 в дополнении к f_solid можно использовать более читаемое название формата fin_solid.


  • l:'f_simple' — выводит число, группы цифр разделяются пробелом

    Code Block
    {{-1234.56 | l:'f_simple' }}
    

    Выведет: -1 234,0056Примечание:

    Note

    начиная с версии ООС 3.3 в дополнении к f_simple можно использовать более читаемое название формата fin_simple.


  • to_i — преобразует к целому числу

    Code Block
    {{-123.45 | to_i}}
    

    Выведет:  -123

  • abs — абсолютное значение числа

    Code Block
    {{-123.45 | abs}}
    

    Выведет: 123.45

  • lt, lte, gt, gte — сравнение (соответственно "меньше", "меньше либо равно", "больше", "больше либо равно")

    Code Block
    {% assign res = 1 | lt: 2 %}
    {% if res == true %}
      1 lower than 2
    {% endif %}


  • round — округляет до переданного количества знаков математическим способом;
    ceil — округление до целых вверх;
    floor — округление до целых вниз:

    Code Block
    {{doc.total.n_sum_wo_tax_sum | round: 3 | number_in_words_rubles }}
    {{doc.total.n_sum_wo_tax_sum | floor | number_in_words_rubles }}
    {{doc.total.n_sum_wo_tax_sum | ceil | number_in_words_rubles }}


...

  • day - день
  • month - месяц
  • month_inflected - месяц со склонением
  • year - год
  • simple_date - дата вида "01.02.2009"
  • full_date - дата вида "01 Января 2008 г."
  • full_date_quoted - дата вида "«01» Января 2008 г."
  • strftime - первым параметорм параметром передается формат, вторым локаль. Например:

    Code Block
    {{now | strftime: '%d %B','ru' | downcase_utf8}}


  • plus - к объекту даты добавляет указанное количество в днях, для объекта даты с временем - в секундах. Например:

    Code Block
    {{doc.d_doc | plus : 10}}


...

Code Block
{{doc.d_time | simple_date}}
{{doc.d_doc | full_date_quoted | downcase_utf8}}

Время дня

Время дня используется в составе приказа по временным интервалам, в объекте временного интервала есть поля from и to, их значение — время дня. Для форматирования такого поля сделан специальный фильтр

  • format_time

Фильтр принимает опциональные параметры:

  • seconds: true | false
  • meridiem: true | false

По умолчанию параметры имеют значения false.

Примеры:

Code Block
{{ time_interval.from | format_time }} => "22:30"
{{ time_interval.from | format_time: seconds: true }} => "22:30:00"
{{ time_interval.from | format_time: seconds: true, meridiem: true }} => "10:30:00 PM"

Массивы

  • join_by_comma(column) - возможность производить склейку массива запятой. Если элемент массива объект, то можно указать по какому полю производить склейку

    Code Block
    Счета поставщика через запятую {{ doc.provider.accounts_personal | join_by_comma:'vc_code' }}
    


  • uniq - возможность извлечь уникальные элементы. Может работать со сложными структурами, для этого в аргументе нужно передать ключ, значения которого должны быть уникальными:

    Code Block
    Пример работы со строками состава фактуры:
    {{doc.content | uniq: "vc_good_name" | map: "vc_good_name" }} => "Меркурий"
    {{doc.content | map: "vc_good_name" | uniq }} => "Меркурий" 


  • sort – сортирует элементы в массиве по возрастанию. Может работать со сложными структурами, для этого в аргументе нужно передать ключ, по значениям которого будет произведена сортировка:

    Code Block
    {{ [6, 3, 7, 1, 9] | sort | join_by_comma }} => "1, 3, 6, 7, 9"
    
    Пример сортировки по строкам из фактуры:
    {% assign sorted_documents = doc.content | sort: "n_sum" %}
    {%for content  in sorted_documents %}
       {{content.n_sum}}
    {% endfor %} => "755.2 9204" 


...