Выражения используются для автоматических расчетов и похожи на формулы в Excel. Выражение можно задать числовым полям, датам, времени, надписям и тексту. Выражения используются в вычисляемых полях, в фильтре списка, источника запроса/отчета и при настройке условия раскраски строк таблиц. Выражение состоит из:

- Полей. Названия полей формы, заключенные в квадртаные скобки: [Номер], [дата], [Название]. Если поле является объектом, то запись такая: [Объект|поле объекта]. Например, [Сотрудник|ФИО], [Товар|Единица измерения|Название]. Можно обратиться к полю родительской формы. Для этого перед названием поставьте восклицательный знак: [!Статус]. Регистр букв в названии не имеет значения.
- Функций. Функции выполняют какое-либо действие и возвращают результат. Аргументы функции записываются в скобках и разделяются запятой. Если функция не имеет аргументов, то скобки можно не писать. Примеры: ToWords([сумма]), LENGTH([Название]), cstr([цена]), date, period([Начальная дата], [начальное время], [Конечная дата], [конеЧное ВРемя]).
- Чисел. Дробная часть отделяется точкой.
- Текста. Текст заключается в одинарные или двойные кавычки. Например: "Закрыто", 'В наличии'.
- Знаков операций. Арифметические операции: + - * /. Операции сравнения: = <> < <= > >=. Логические операции: & (логическое И) | (логическое ИЛИ) ! (логическое НЕ).

Унарные операции. Все операции являются бинарными, кроме логической операции НЕ. Примеры: !([Статус]='Выполнено' | [Статус]='В работе'). Минус тоже может быть унарной операцией: -45, -[цена].
Приоритет знаков операций. Приоритет означает какая операция будет выполнена в первую очередь. Наивысший приоритет у выражений в скобках, затем функции, в порядке убывания: умножение/деление, сложение/вычитание, сравнение, логические.
Совместимость типов. Каждый операнд - текст, число, поле, результат функции, аргумент - имеет тип. Не допускается в операции использовать операнды разных типов. Например, "343" + 23 недопустимо, а так можно: cnum("343") + 23. Т. е. в таких случаях нужно выполнять преобразование типов. Это выполняется с помощью функций cnum, cstr, cdate, ctime.
Надписи в выражениях. Надпись тоже может содержать выражение, оно вычисляется когда пользователь переходит на очередную запись. В выражениях вы можете обращаться к надписям, как к полям. В отличии от полей надпись может иметь любой тип. Поэтому в операциях нужно выполнять преобразование к желаемому типу. Например: cstr([возраст]) + " лет". Не допускается использовать надписи в выражении поля формы.
Примеры выражений:
`[цена] * [количество]
SUM('услуги', 'сумма') * 1.15
RurToWords([сумма])
IIF([дата]<>Null, [дата], 'дата не указана')
YearsBetween(date, cdate('12.10.2008'))
`
Ошибки в выражении.

- Несовместимость типов. Вы пытаетесь, например, сложить строку с числом, число разделить на дату. Т. е. в арифметической или логической операции должны участвовать операнды одного типа.
- Некорректная операция со строками. Допускается складывать строки операцией сложения, а также сравнивать. Остальные операции недопустимы.
- Некорректная операция с числами. Допускаются все операции, кроме & и |.
- Некорректная операция с датой или временем. Даты и время допускается только сравнивать. Складывать и вычитать можно при помощи функций.
- Некорректная булева операция. Для логического типа допустимы операции: = <> & | !.
- Деление на нуль. Попытка деления на нуль.
- Некорректное число. Число записано некорректно. Например: 34..234 или 23.432.34.
- Ожидается аргумент. При записи функции пропущен аргумент. Например: sum (‘услуги’, ).
- Ожидается конец строки. При записи строки пропущена кавычка.
- Ожидается квадратная скобка. При записи поля пропущена закрывающая квадратная скобка.
- Ожидается скобка. При записи выражения пропущена закрывающая скобка.
- Ожидается операция. Пропущен знак операции.
- Ожидается операнд. Пропущен операнд (текст, поле и пр.).
- Функция не найдена. Ошибка в названии функции.
- Неверное количество аргументов. При вызове функции было указано большее, либо меньшее количество аргументов.
- Несовместимый тип аргумента. Тип введенного аргумента и требуемый тип не совпадают. Проверьте, аргументы какого типа нужно передавать функции.
- Пропущена запятая. При записи аргументов функции была пропущена запятая.
- Не указано имя поля. Имя поля не указано, например: [] + 3.
- Поле не найдено. Указанное поле не найдено. Проверьте правильность имени поля.
- Неизвестный источник списка. Попытка обратиться к полю объекта, для которого не указан источник списка.
- Поле не является объектом. Например, выражение [Дата|Название] даст такую ошибку, т. к. поле Дата не является объектом.

Комментарии в выражениях. Комментарии используются для пояснения действий выражения. Однострочные комментарии начинаются символами //, многострочные парой /* ... */.
Порядок вычисления выражений.
Если это поле формы, то вычисление происходит, когда изменяется поле, которое упоминается в выражении (даже в комментариях), или при изменении таблицы/запроса, если она упоминается в выражении.
Если выражение в надписи, то оно вычисляется каждый раз при перемещении на очередную запись или при открытии формы, а также при изменении поля или надписи, которое участвует в этом выражении, или при изменении таблицы/запроса.
Выражения в фильтрах списков вычисляются при открытии списка, вводе текста в это поле, при открытии связанной формы. При открытии списка, вводе текста вычисление выполняется только один раз. При открытии формы списка вычисление выполняется каждый раз. Если связанные данные меняются, то при следующем открытии списка или вводе, или открытии связанной формы, выражение сново будет вычислено.