С помощью окна формул в настройках элементов бизнес-процесса вы можете решить множество задач без привлечения разработчиков. Функциональность формул позволяет автоматически генерировать тексты email-сообщений, определять условия перехода по потокам. Для использования формул необходимо ознакомиться с основными правилами синтаксиса, которые описаны в этой статье.
Основные синтаксические правила
При работе с полем формул следует придерживаться определенного синтаксиса, который будет привычным для пользователей, знакомых с С#. При работе с полем Формула важно придерживаться типизации при заполнении формул. По возможности используйте значения одного типа, к примеру, текстовые с текстовыми, числовые с числовыми. Иначе необходимо преобразовать значения в нужный тип.
Кроме того, рекомендуем ознакомиться с основными операторами, которые помогут реализовать сложные условия в ваших формулах.
| "" | Текстовые строки необходимо заключить в кавычки. | 
| + | Используется для соединения значений. | 
| == | Определяет равенство двух значений. | 
| != | Определяет неравенство двух значений. | 
| <, > | Сравнивает величину двух значений (меньше чем, больше чем). | 
| >=, <= | Больше или равно, меньше или равно. | 
| && | Логическое “И”. | 
| || | Логическое “Или”. | 
| true, false | Булевы значения “Истина” и “Ложь”. | 
| \n, <br> | Перенос текстовой строки. | 
Сформировать сложный текст
Один из самых распространенных сценариев использования поля Формула — формирование или “связывание” данных.
Для решения задачи в формулу нужно добавить как параметры элемента Читать данные, так и константные текстовые значения:
Между статичными данными и кавычками "" следует добавлять пробелы, чтобы разделить результирующий текст.
Вы можете объединить две строки и более с помощью диалогового окна формулы. Для конкатенации используйте символ +. Для добавления новой строки используйте управляющий символ \n, например:
Текст строки должен быть заключен в прямые двойные кавычки (" "). Для обеспечения корректной работы логических операторов установите признак Многострочное. Иначе все символы новой строки будут отфильтрованы.
Сгруппировать различные типы данных
При работе с элементом Формула необходимо использовать данные одного типа. На странице заполнения формулы тип данных каждого параметра обозначен значком:
 — уникальный идентификатор; — уникальный идентификатор;
 — числовой; — числовой;
 — дробный; — дробный;
 — текстовый; — текстовый;
 — справочное значение; — справочное значение;
 — значение даты и времени. — значение даты и времени.
В данном случае нельзя обычным способом добавить параметр даты комплектации. Для решения задачи нужно преобразовать значение даты в текстовое значение:
Для преобразования параметра #Читать заказ.Первый элемент результирующей коллекции.Плановая дата выполнения# его необходимо заключить в круглые скобки и добавить метод .ToString(). В этом случае бизнес-процесс, в который включен элемент формирования заголовка активности, отработает корректно.
Настроить расчеты даты и времени
Чтобы выполнить бизнес-процессы с использованием операций с датой и временем, можно воспользоваться структурой DateTime языка программирования C#. Основные свойства и методы представлены в таблице:
| .Date | Возвращает дату выбранного параметра. | 
| .Hour | Возвращает значение часов выбранного параметра даты. | 
| DateTime.MinValue | Минимальное значение даты и времени, 00:00, UTC 1 января 0001 года. | 
| .TotalMinutes | Возвращает полное значение даты и времени в минутах. | 
| .TotalHours | Возвращает полное значение даты и времени в часах. | 
| .TotalDays | Возвращает полное значение даты и времени в количестве дней. | 
| .AddMinutes(), .AddHours(), .AddDays() | Увеличивают выбранное значение даты и времени на определенное количество минут, часов или дней. | 
Чтобы произвести проверку, воспользуйтесь оператором != и свойством DateTime.MinValue:
Для сравнения двух значений воспользуйтесь оператором == и свойством .Date в виде:
В случае, когда необходимо рассчитать разницу между двумя значениями даты, воспользуйтесь такой конструкцией:
То есть, необходимо в окне формулы выбрать функцию Округлить и заполнить ее нужными параметрами элемента процесса. В нашем случае — разницей значений, а затем добавить свойство .TotalMinutes. В итоге вы получите количество затраченного времени в минутах. Таким образом можно также использовать свойства .TotalHours и .TotalDays.
Для выполнения задачи добавьте свойство .TotalHours к параметру элемента, значение параметра целиком заключите в круглые скобки, а затем произведите сравнение с числовым значением:
При работе с параметрами даты и времени также можно использовать функции .AddMinutes(), .AddHours() и .AddDays() для увеличения значения времени и даты на определенную величину. Например, чтобы привести данные даты и времени к часовому поясу пользователя при использовании элемента Чтение данных.
Для решения задачи укажите в значении .AddHours() добавляемое количество часов в виде:
Настроить формулу в условном потоке
Функциональность элемента Формула в условном потоке ничем не отличается от его функциональности в других элементах бизнес-процесса. То есть, актуальны как основные правила, так и операторы. Условные потоки применяются для перехода к следующему элементу процесса, поэтому проверяют условия перехода.
Часто в условных потоках справочные параметры сравнивают с константными значениями справочника.
Для решения задачи нужно в условном потоке сравнить текущую стадию продажи со справочным значением:
Чтобы проверить, заполнены ли справочные поля, используйте условие:
Если же нужно проверить, что справочное поле контакта лида не заполнено, то необходимо воспользоваться следующей конструкцией:
Для решения задачи необходимо в условном потоке использовать условие:
То есть, производится проверка результата визирования.
Обратите внимание, что вариантов решения задачи может быть несколько. Например, воспользуйтесь более сложной конструкцией:
В этом случае производится проверка, что статус визы не “Отклонена” или не “Ожидает визирования”.
Чтобы проверить статус презентации, необходимо использовать такую конструкцию:
Если презентация не проведена, то процесс перейдет по другому условному потоку.