Руководтсво администратора/разработчика

Документация

Расширенные возможности разработки

Использование @-функций в конфигурациях


Обработка @-функций конфигурации в HTML-шаблоне

Конфигурация, доступная в переменной $.Configuration в HTML-шаблоне и имеющая @-функции, обрабатывается при генерации формы. При обработки выполняются все @-функции с использованием текущего контекста. В момент генерации формы этот контект - объект страницы формы.

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

В этом случае, значение переменной (например uid-объекта "uid":{"type":"text","source":"@Obj(UID)"},) в конфигурации будет содежать uid-объекта формы, а нам необходимо получать uid-перебираемых объектов. (конечно, всегда можно напрямую обратиться к свойству uid объекта внутри HTML-шаблона, но предположим, что мы хотим это значение задавать через переменную конфигурации)

Для этих целей существует текстовая переменная контекста $.ConfigurationRaw, которая содержит конфигурацию, без обработанных @-фукнций.

Для ее обработки необходимо добавить ее в цикл получения объектов и выполнять обработку @-функций внутри конфигурации при каждой итерации с новым объектом.

Для этого необходимо использовать функцию confparse

Например:

{{$ConfigurationNew := confparse $.ConfigurationRaw $.Request $Data}}

$.ConfigurationRaw - системная переменная, содержащаю "сырую" конфигурацию (без обработки @-функций.

$.Request - системная переменная запроса

$Data - переменная, которая содержит контекст данных, которые будут использованы при обработки @-функций конфигурации.

В данном примере в переменную $ConfigurationNew будет передано значение конфигурации с выполенной обработкой @-функций на основании текущего контента данных.