Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Подстановки:

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

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

Для шаблонного языка выбран Liquid, документация по синтаксису доступна по адресу https://github.com/Shopify/liquid/wiki/Liquid-for-Designers/.

Использование подстановок
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

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

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

 

Константы

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

Code Block
{% 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, в качестве входного параметра можно указывать код или наименование дополнительного параметра

    Code Block
    {{doc.recipient | additional_param:'Дополнительный параметр'}}
    
    Code Block
    БИК банка, в котором находится расчетный счет получателя {{ doc.recipient.parent.account_settlement.bank | additional_param:'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 копейки

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

    Code Block
    {{123 | l:'f_solid' }}
    

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

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

    Code Block
    {{1234 | l:'f_simple' }}
    

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

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

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

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

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

  • 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 }}

Массивы

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

Пример:

Code Block
Счета поставщика через запятую {{ 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
  • BARCODE_NO_CHECKSUM

2. Ширина, см (px)
3. Высота, см (px)

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

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

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

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

Code Block
...
##-- begin document item (group by N, per page M) --##
...
##-- end document item --##
...
Параметры:
  • group by — ограничивает количество печатных форм, объединенных в один документ. Если их количество превышает значение параметра group by, будет создан архив с несколькими объединенными печатными формами.
  • per page — ограничивает количество печатных форм на одной странице. После указанного количества печатных форм вставляется разрыв страницы.
Code Block
titleПример шаблона для массовой генерации печатной формы карточки абонента
Текст в начале документа, выводится только 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.

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