1С HTML Шаблоны / HTML Templates

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

Арт.: 702438

Пример работы обработки. Данные в шаблон в этом примере передаются в виде JSON, далее JSON преобразуется в структуру и передается в шаблон.
Как видите обработка демонстрации примера имеет простейший код.
Пример работы обработки. Данные в шаблон в этом примере передаются в виде JSON, далее JSON преобразуется в структуру и передается в шаблон.
Как видите обработка демонстрации примера имеет простейший код.

2040 руб.

1000 руб.

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

Шаблон может быть, например, такой:

Шаблон = "<h3>{%=о.Заголовок%}</h3>
         |<p>Обработка для работы с шаблонами HTML
         |<a href=""{%=о.Ссылка.Адрес%}"">{%=о.Ссылка.Заголовок%}</a>.</p>
         |<h4>Особенности</h4>
         |<ul>
         |{% Для Каждого Особенность Из о.Особенности Цикл %}
         |    <li>{%=Особенность%}</li>
         |{% КонецЦикла; %}
         |</ul>";

"о" (строчная буква) является ссылкой на параметр данных функции шаблона (см. раздел API о том, как изменить этот идентификатор).

Далее добавляем этот шаблон в кеш обработки:

ШБЛ = Обработки.ШаблонHTML.Создать();

ШБЛ.ДобавитьШаблон("Пример", Шаблон);

В коде приложения создайте структуру для использования в качестве данных для шаблона:

ДанныеШаблона = Новый Структура;
ДанныеШаблона.Вставить("Заголовок", "1С HTML Шаблоны / HTML Templates");

ДанныеСсылки = Новый Структура;
ДанныеСсылки.Вставить("Адрес", "infostart.ru/public/702438/");
ДанныеСсылки.Вставить("Заголовок", "страница обработки");

ДанныеШаблона.Вставить("Ссылка", ДанныеСсылки);

Особенности = Новый Массив;
Особенности.Добавить("Легкая и быстрая");
Особенности.Добавить("Мощная");
Особенности.Добавить("Универсальная");

ДанныеШаблона.Вставить("Особенности", Особенности);

Для получения результата, необходимо вызвать функцию ПрименитьШаблон() первый параметр которой - шаблон, а второй структура данных которые необходимо подставить в шаблон:

Результат = ШБЛ.ПрименитьШаблон("Пример", ДанныеШаблона);

В результат выполнения функции, мы получим следующий результат:

<h3>1С HTML Шаблоны / HTML Templates</h3>
<p>Обработка для работы с шаблонами HTML
<a href="infostart.ru/public/702438/">страница обработки</a>.</p>
<h4>Особенности</h4>
<ul>
  <li>Легкая и быстрая</li>
  <li>Мощная</li>
  <li>Универсальная</li>
</ul>

 

API

 

Функция _tmpl(Строка)

Функция преобразует переданный в параметре Строка текст шаблона в код 1С.

 

Кодирование вывода

Для замены специальных символов HTML в выводе шаблона используется функция _encode(Строка).

Результат = ШБЛ._encode("<>&""'\x00"); // Результат будет "&lt;&gt;&amp;&quot;&#39;"

_encode(Строка) использует регулярное выражение encReg и карту кодирования encMap для соответствия и замены специальных символов, которые могут быть изменены для изменения поведения выходной кодировки.
Строки, соответствующие регулярному выражению, но не найденные на карте кодирования, удаляются из вывода. Это позволяет, например, автоматически обрезать входные значения (удаление пробелов из начала и конца строки):

ШБЛ.encReg = "(^\s+)|(\s+$)|[<>&""'\x00]";
Результат = ШБЛ._encode("    Привет!    "); // Результат будет "Привет!" (без пробелов)

 

Аргумент функции шаблона

Сгенерированные функции шаблона содержат один аргумент, который является структурой данных. Этот аргумент доступен внутри текста шаблонов как параметр о (строчная буква).

Имя аргумента может быть изменено путем переопределения arg:

ШБЛ.arg = "p";

ШБЛ.ДобавитьШаблон("Пример", "<h3>{%=p.Заголовок%}</h3>");

// Результат будет <h3>1С HTML Шаблоны</h3>
Результат = ШБЛ.ПрименитьШаблон("Пример", Новый Структура("Заголовок", "1С HTML Шаблоны"));

 

Синтаксис шаблонов

Печатать переменную с специальными символами HTML:

<h3>{%=o.Заголовок%}</h3>

Печать переменной без экранирования:

<h3>{%#o.Идентификатор%}</h3>

Печать вывода вызовов функций:

<a href="#">{%=ВРег(o.ИмяСсылки)%}"></a>

Используйте точечную нотацию для печати вложенных свойств:

<strong>{%=o.Автор.Имя%}</strong>

Использование условий Если Иначе:

{% Если ЗначениеЗаполнено(o.Автор.Ссылка) Тогда %}
    <a href="{%=o.Автор.Ссылка%}">{%=o.Автор.Имя%}</a>
{% Иначе %}
    <em>Нет ссылки на автора.</em>
{% КонецЕсли; %}

Использование циклов:

<ul>
{% Для Каждого Элемент Из o.Товары Цикл %}
    <li>{%=Элемент%}</li>
{% КонецЦикла; %}
</ul>

Обработка тестировалась на платформах 8.0, 8.1, 8.2, 8.3. Подходит для любой конфигурации.

Бесплатная техническая поддержка 1 месяц

Сравнение версий

1.0 (19.12.2017)

  • Первый релиз.

Статистика:
Просмотры 28106
Загрузки 3
Рейтинг 15
Создание 27.12.17 11:04
Обновление 27.12.17 11:04
№ Публикации 702438
Характеристики:
Теги

обработка шаблон HTML web

Рубрики Инструментарий разработчика
Кому Программист
Тип файла Внешняя обработка (ert,epf)
Платформа Платформа 1С v8.3
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Платные (руб)
Код открыт Да
1. acsent 27.12.17 15:03 Сейчас в теме
Предполагается, что 1с выступает в качестве веб сервера?
2. Техподдержка 27.12.17 15:52
(1) не обязательно, HTML может быть использован, например: для интерфейсов, либо для отчетов.
3. acsent 28.12.17 11:13 Сейчас в теме
А сам шаблон-строка это валидный HTML? можно ли в браузере открыть?
4. Техподдержка 28.12.17 15:28
(3) Не совсем понимаю ваш вопрос. Шаблон вы задаете самостоятельно. Его валидность зависит от вас.
5. acsent 28.12.17 17:17 Сейчас в теме
(4) Незаполненный шаблон - он сам по себе валидный html?
или каждый раз перед проверкой нужно параметры устанавливать.

Для примера thymeleaf для java или ангуляр 2 - работают на основе валидных шаблонов.
А вот реакт - нет
6. Техподдержка 28.12.17 18:33
(5) Теперь я понял, о чем вы. Нет, незаполненный шаблон не является валидным HTML, думаю это видно по коду примера. Проверять на валидность имеет смысл заполненный шаблон - результат.
7. acsent 29.12.17 12:46 Сейчас в теме
(6) Эх плохо, что вы не выбрали такой подход
8. Steelvan 01.07.19 19:28 Сейчас в теме
Обработка заинтересовала.

По какому принципу выполняется заполнение параметров ?
Через "Выполнить" ?

Или выполняется разбор с построением АСД (абстр. синт. дерево) ?
Сколько строк кода занимает обработка ?
При желании я смогу прикрутить синтаксический контроль ?
9. Steelvan 01.07.19 21:16 Сейчас в теме
Ну да, скорее всего через "Выполнить".
Иначе для обработки той же инструкции "Для каждого" вам пришлось бы это дело оборачивать в свою виртуальную машину для хранения имен и состояний переменных.
10. Техподдержка 03.07.19 14:00
(9) Да, вы абсолютно правы, заполнение выполняется через "Выполнить". Обработка без комментриев содержит примерно 200 строк кода.

Оставьте свое сообщение

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравне...

13000 10400 руб.

SALE! 20%

Infostart PrintWizard

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки...

18000 13500 руб.

SALE! 25%

Infostart УДиФ: Управление данными и формами

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на л...

10000 8000 руб.

SALE! 20%

PowerTools

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

SALE! 30%

Многопоточность. Универсальный «Менеджер потоков» 2.1

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализа...

5000 руб.

[ЕХТ] Фреймворк для Расширений 1С

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в ...

3000 руб.

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное реш...

2400 руб.

Конвертер данных 1С в JSON и обратно

Механизм для однопальцевой конвертации произвольных данных 1С-формата в JSON и обратно. Продукт полезен, если вам приходится тратить время на настройку типовой конвертации данных в JSON или вы знаете, что это потребует значимых затрат на ра...

4800 4320 руб.

SALE! 10%

Бустер Конвертации данных 3 (Infostart Toolkit)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

88005555256
Заказать звонок
support@infostart.ru
Telegram
Чат на сайте