Функции для обработки и форматирования данных
- Updated On 20 Aug 2020
- 3 Minutes To Read
-
DarkLight
Возможность применения функции к параметру зависит от типа данных параметра. Подробнее о типах в статье .
Функции для строк
- ToUpper (строка) - сделать большими буквами:
${Recipient.OnlyStandardFirstName} -> Алексей
${ToUpper (Recipient.OnlyStandardFirstName)} -> АЛЕКСЕЙ
- ToLower (строка) - сделать маленькими буквами:
${item.AdditionalData.Colour} -> Красный
${ToLower (item.AdditionalData.Colour)} -> красный
- Capitalize (строка) - делает заглавной первую букву в строке:
${item.Description} -> чёрный широкий пояс
${Capitalize (item.Description)} -> Чёрный широкий пояс
- CapitalizeAllWords (строка) - делает заглавной первую букву в каждом слове в строке:
${item.Description} -> чёрный широкий пояс
${CapitalizeAllWords (item.Description)} -> Чёрный Широкий Пояс
- ReplaceIfEmpty (строка1, строка2) - вывести строку 1, если она не пустая, иначе строку 2:
${Recipient.OnlyStandardFirstName} -> "" (строка пустая)
${Recipient.AdditionalData.Nickname} -> CoolGuy93
${ReplaceIfEmpty (Recipient.OnlyStandardFirstName, Recipient.AdditionalData.Nickname)} -> CoolGuy93
- IsEmpty (строка) - проверяет, является ли строка пустой):
${Recipient.OnlyStandardFirstName} -> Алексей
${IsEmpty (Recipient.OnlyStandardFirstName)} -> true
- Truncate (строка, количество символов) - интеллектуально обрезать строку до указанного количества символов и добавить многоточие в конце. Многоточие входит в количество символов:
${item.Description} -> описание товара
${Truncate (item.Description, 10)} -> описани...
- ChooseRandomText (произвольное число строк, но не меньше одной) - выбирает случайным образом строку из списка параметров:
${ChooseRandomText ("text1", "text2", "text3")} -> text2
- Substring (строка, индекс начала подстроки, длина подстроки*(опционально)* ) - получить подстроку с указанного места и указанной длины (либо до конца строки, если третий параметр не указан):
${Recipient.LastReceivedPromoCode.WithTypeUnique.Value} -> BGDK4444
${Substring (Recipient.LastReceivedPromoCode.WithTypeUnique.Value, 1, 4)} -> BGDK
- Length (строка) - посчитать количество символов параметра, возвращает целое число:
${Recipient.LastName} -> Петров
${Length (Recipient.LastName)} -> 6
Функции для чисел
- FormatDecimal (число, формат) - форматировать число:
${balance} -> 20000.12
${FormatDecimal (balance, 'N0')} -> 20 000
${FormatDecimal (balance, 'N1')} -> 20 000,1
${FormatDecimal (balance, 'N2')} -> 20 000,12
Важно. Функция возвращает число в виде строки. Поэтому при использовании её в паре с другой числовой функцией нужно для каждой указать неотформатированный параметр.
Пример:
${balance} -> 20000.12
${FormatDecimal (balance, 'N0')} -> 20 000
${Forms(balance, "бонус", "бонуса", "бонусов")} -> бонусов
Вместе:
${FormatDecimal (balance, ‘N0’)}${Forms (balance, "бонус", "бонуса", "бонусов")} -> 20 000 бонусов
- Forms (число, форма1, форма2, форма3) - вывести нужную форму слова в зависимости от числа. Порядок записи форм: как пишется слово после чисел 1, 2 и 5 соответственно:
${Recipient.AdditionalData.Age} -> 30
${Forms (Recipient.AdditionalData.Age, "год", "года", "лет")} -> лет
- AppendForms (число, форма1, форма2, форма3) - вывести число и нужную форму слова в зависимости от числа через пробел. Порядок записи форм: как пишется слово после чисел 1, 2 и 5 соответственно:
${Recipient.AdditionalData.Age} -> 30
${AppendForms (Recipient.AdditionalData.Age, "год", "года", "лет")} -> 30 лет
- Floor (число) - получить максимальное целое число, не превосходящее параметр.
${balance} -> 10.9
${Floor (balance)} -> 10
- Ceiling (число) - получить наименьшее целое, большее или равное параметру. Например, ceiling(10.6) вернет 11.
${balance} -> 10.1
${Ceiling (balance)} -> 11
- GetRandomNumber (число, число) - возвращает целое число из указанного интервала, первое число включительно:
${GetRandomNumber (1, 10) } вернёт случайное число от 1 по 9
Функции для даты и времени
- FormatDateTime (дата, формат) - форматировать дату и время:
${CustomerAction.DateTimeMoscow} -> 14.12.2018 10:30:00
${FormatDateTime(CustomerAction.DateTimeMoscow, "d")} -> 14.12.2018
Подробнее в статьях по стандартным и настраиваемым форматам.
- AddDays (дата, число) - прибавить к дате количество дней, результат - дата на N дней больше (или меньше):
${Formatdatetime(Recipient.BirthDate, "dd/MM") } -> 10.03
${Formatdatetime(AddDays (Recipient.BirthDate, 5), "dd/MM") } -> 15.03
${Formatdatetime(AddDays (Recipient.BirthDate, -5), "dd/MM") } -> 05.03
- GetDay (дата) - возвращает день из даты в виде числа; можно совершать с ним арифметические операции :
${Recipient.BirthDate} -> 10.03.1993 0:00:00
${GetDay (Recipient.BirthDate)} -> 10
- GetMonth (дата) - возвращает месяц из даты в виде числа; можно совершать с ним арифметические операции :
${Recipient.BirthDate} -> 10.03.1993 0:00:00
${GetMonth (Recipient.BirthDate)} -> 3
- GetYear (дата) - возвращает год из даты в виде числа; можно совершать с ним арифметические операции :
${Recipient.BirthDate} -> 10.03.1993 0:00:00
${GetYear (Recipient.BirthDate)} -> 1993
${GetYear (Message.SendingDateTime)}
Функции для коллекций
-
TableRows (Коллекция, число колонок) - преобразовать коллекцию чего-либо в набор строк с ячейками, чтобы по ним было удобно построить HTML-таблицу. Подробнее в статье .
-
Count (коллекция) - получить число элементов в коллекции/списке:
${Count (Order.Purchases)} -> 5 (в заказе пять покупок)
- коллекция.Take (N) - возвращает первые N элементов коллекции:
FilteredProducts.Novinki.All.Products.Take (3) -> коллекция из максимум трёх товаров
Функции для логических полей (да/нет)
- If (условие, строка1, строка2) - вывести строку 1, если условие выполняется, иначе строку 2:
${Order.AdditionalData.FreeShipping} -> true
${If (Order.AdditionalData.FreeShipping, "бесплатно", "200 руб.")} -> бесплатно
Функции для картинок
- ResizeImage (ссылка, ширина, высота) - функция для масштабирования картинок. Можно проверить в тестовых письмах, так как масштабирование происходит при формировании письма:
<img src="${ResizeImage (PictureUrl, 200, 100)}">
Изменение размеров происходит таким образом, что итоговая картинка вписывается в обозначенные границы.
При этом:
- картинка не обрезается
- соотношение ширины и высоты не меняется