В рамках работы с БФ и системой используется собственный язык выражений, который похож на js, но включает в себя функциональный стиль от scala.
В контексте выражения есть переменные следующих видов:
объекты. Всегда в контексте есть текущий пользователь — @@USERID, а также текущий объект @this. Объект на котором например сработал триггер или для которого была вызвана БФ.
массивы
скалярные значения
Доступ к значениям полей объекта происходит по имени поля. Например @this.Last_Name.
Доступен широкий спектр арифметических и прочих операций с числами и строками:
@this.count * @this. number — для вычисления стоимости.
@this.name.substring(0,10) — для получения подстроки.
Еще больше возможностей представляют работы с массивами:
@this.Uslugi . Здесь @this -договор, а результатом будет массив связанных услуг на договоре.
@this.Uslugi.map(price * number).sum(). Посчитает стоимость каждой услуги и просуммирует для всего договора.
@this.Uslugi.filter(A$STATUSID==25215465427) Отфильтрует услуги договора по определенному статусу, например только оплаченные.