Основные возможности
Подстановка переменных
Для этого переменная обрамляется двойными фигурными скобками {{ }} и предваряется служебной конструкцией &w.
, как показано ниже
{{ &w.ИмяПеременной }}
Если переменная является структурой или ссылочным объектом, то через точку можно получать ее поля.
{{ &w.Структура.КакоеТоПоле }}
Реализовано получение полей через 2 и более точек.
Условия Если...ИначеЕсли...Тогда
Условие записывается внутри тега {% %}
{% Если &w.ИмяПеременной = 1 Тогда %}
{% ИначеЕсли &w.ИмяПеременной = 2 Тогда %}
{% Иначе %}
{% КонецЕсли %}
Цикл Для Каждого...Из
Используется тег, аналогичный условиям {% %}
{% Для Каждого Итератор Из &w.Коллекция Цикл %}
{% КонецЦикла %}
Итератор - это переменна, которую можно использовать внутри цикла. Если это структура или коллекция, через точку можно получать ее поля.
Поддерживаются вложенные циклы.
Цикл Для счетчик = X По Y
Используется тег, аналогичный условиям {% %}
{% Для счетчик = 1 по 10 Цикл %}
<p>&w.Массив[счетчик]</p>
{% КонецЦикла %}
Поддерживаются вложенные циклы.
Подготовка данных, для вывода в шаблон
Данные для шаблона должны быть переданы в виде структуры или JSON-текста. При втором способе JSON будет преобразован в структуру перед использованием.
Пример использования в своем коде
DataProcessor = Обработки.Templatizator.Создать();
DataProcessor.TemplateText = "<!DOCTYPE html>
|<html lang="ru">
|<head>
|</head>
|<body>
|<h3>{{ &w.Title }}</h3>
|<br>
|<ul>
|{% For Each Элемент In &w.Список Do %}
|<li>{{ Элемент }}</li>
|{% EndDo %}
|</ul>
|</body>
|</html>";
DataProcessor.JSON = "{
|"Title": "Шаблонизатор",
|"Список": [
|"Элемент 1 списка 1",
|"Элемент 2 списка 1",
|"Элемент 3 списка 1"
|]
|}";
ResultHTML = DataProc.CreateHTMLServer( "ReportDate" );
Результат работы шаблона
Шаблонизатор
Элемент 1 списка 1
Элемент 2 списка 1
Элемент 3 списка 1
Тестировалось на релизах платформы: 8.3.13.1809, 8.3.14.1630, 8.3.15.1194.