Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 65 Next »

Подстановки

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

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

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

Использование подстановок
Hello {{name}}
Циклы
{% for item in array %}
  {{ item }}
{% endfor %}
Условия
{% if user.age > 18 %}
   Login here
{% else %}
   Sorry, you are too young
{% endif %}
Фильтры

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

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

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

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

 

Константы

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

{% if service.n_service_id == CONST.NETSERV_ARM_Private_Office %}
  Личный кабинет находится по адресу <a href="https://my.domen.ru/">https://my.domen.ru</a>.
{% endif %}

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

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

  • additional_param или ap, в качестве входного параметра можно указывать код или наименование дополнительного параметра

    {{doc.recipient | additional_param:'Дополнительный параметр'}}
    
    БИК банка, в котором находится расчетный счет получателя {{ doc.recipient.parent.account_settlement.bank | additional_param:'SUBJ_VAL_BIK' }}
    

    Значения подстановок для доп. параметров не выводятся в предварительном просмотре.
    Для множественных доп. параметров подстановка возвращает массив значений.

Числовые

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

  • number_in_words

    {{123 | number_in_words }}
    

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

  • number_in_words_rubles

    {{doc.total.n_sum_wo_tax_sum | number_in_words_rubles }}
    

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

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

    {{123 | l:'f_solid' }}
    

    Выведет: 123,00
    Примечание: начиная с версии ООС 3.3 в дополнении к f_solid можно использовать более читаемое название формата fin_solid.

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

    {{1234 | l:'f_simple' }}
    

    Выведет: 1 234,00
    Примечание: начиная с версии ООС 3.3 в дополнении к f_simple можно использовать более читаемое название формата fin_simple.

  • to_i — преобразует к целому числу
  • abs — абсолютное значение числа
  • lt, lte, gt, gte — сравнение (соответственно "меньше", "меньше либо равно", "больше", "больше либо равно")

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

Работа с датами

  • now — подстановка, вовращающая текущую дату и время

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

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

    {{now | strftime : '%d %B', 'ru'|downcase_utf8}}
  • plus - к объекту даты добавляет указанное количество в днях, для объекта даты с временем - в секундах. Например:

    {{doc.d_doc | plus : 10}}

Пример:

{{ doc.d_time | simple_date }}
{{ doc.d_doc | full_date }}

Массивы

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

Пример:

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

Штрихкоды

Из любой подстановки можно сделать штрихкод. Для этого после подстановки нужно добавить фильтр с параметрами:
1. Тип штрихкода. Поддерживаются:

  • BARCODE_128B
  • BARCODE_128
  • BARCODE_39
  • BARCODE_I25
  • BARCODE_CBR
  • BARCODE_MSI
  • BARCODE_PLS
  • BARCODE_93
  • BARCODE_ANY

2. Ширина, см (px)
3. Высота, см (px)
4. Флаг BARCODE_NO_CHECKSUM:

  • true;
  • false (по умолчанию).

Для конкатенации подстановок или строк можно использовать фильтр append.
Пример с использованием BARCODE_NO_CHECKSUM:

{{doc.n_doc_id | append: doc.n_doc_type_id | barcode: 'BARCODE_PLS', 8, 3, true}}

Шаблоны для массовой генерации печатных форм

Для создания шаблона, предназначенного для массовой генерации печатных форм необходимо в шаблон добавить специальные параметризуемые элементы:

...
##-- begin document item (group by N, per page M) --##
...
##-- end document item --##
...

Параметры

  • group by — ограничивает количество печатных форм, объединенных в один документ. Если их количество превышает значение параметра group by, будет создан архив с несколькими объединенными печатными формами.
  • per page — ограничивает количество печатных форм на одной странице. После указанного количества печатных форм вставляется разрыв страницы.
Пример шаблона для массовой генерации печатной формы карточки абонента
Текст в начале документа, выводится только 1 раз.
##-- begin document item (group by 5, per page 2) --##
Код абонента {{user.vc_code}} (выводится для всех сущностей, по которым выполняется массовая печать)
##-- end document item --##
Текст в конце документа, выводится только 1 раз.

Параметры group by и per page можно не указывать. В этом случае будут использоваться настройки из файла конфигурации приложения «Офис оператора связи»: print.items_in_file и print.items_per_page.

Пример шаблона для массовой генерации печатной формы карточки абонента (без параметров)
Текст в начале документа, выводится только 1 раз.
##-- begin document item --##
Код абонента {{user.vc_code}} (выводится для всех сущностей, по которым выполняется массовая печать)
##-- end document item --##
Текст в конце документа, выводится только 1 раз.
  • No labels