Как работать с логическим типом параметров
Логический тип поля означает, что параметр может иметь значение «да» или «нет».
Так же значение может отсутствовать, то есть быть null.
Это надо учитывать при проверке параметра в письме.
Как проверить, что значение поля = «да»
@{if field}
@{end if}
Как проверить, что значение поля = «нет»
@{if not field}
@{end if}
Как проверить, что у поля есть значение
@{if field != null}
@{end if}
Вместо field подставляем параметр с логическим типом
Примеры
- Пример 1
Есть дополнительное поле «Участвует в акции» (системное имя PartInPromo) с типом «Логическое».
Задача: при значении «да» вывести дату начала акции, в остальных случаях предложить принять в ней участие.
Что надо сделать: проверить, что у поля есть значение (не равно null) и что оно положительное.
Оставшимся можно вывести текст в помощью else.
Вёрстка:
@{if Recipient.CustomField.PartInPromo != null and Recipient.CustomField.PartInPromo}
Начало акции 1 февраля.
@{else}
Примите участие в акции.
@{end if}
- Пример 2
Есть дополнительное поле «Посетит лекцию» (системное имя AttendLection).
Задача: при ответе «да» вывести дату и время лекции, при ответе «нет» уточнить, не передумал ли клиент, при отсутствии значения спросить, не хочет ли клиент пойти на лекцию.
Проверка на отсутствие значения должна идти первой (подробное объяснение — ниже в статье).
Вёрстка:
@{if Recipient.CustomField.AttendLection = null}
Не хотите ли посетить лекцию?
@{else if Recipient.CustomField.AttendLection}
Начало лекции 1 февраля в 19:00.
@{else if not Recipient.CustomField.AttendLection}
Ещё есть время передумать.
@{end if}
Подробнее о том, зачем нужна проверка на null.
При отсутствии значения поля с ним нельзя взаимодействовать.
А проверка на да/нет является таким взаимодействием.
Поэтому если мы начнём блок с @{if Recipient.CustomField.AttendLection}, а оно null, такое письмо упадёт, ведь мы пытались обратиться к значению поля и сравнить его с true.
В случае, если мы на уровне фильтра рассылки проверяем, что у всех получателей заполнено поле, проверку на отсутствие значения можно опустить.