Операторы функций в запросе можно опускать, тогда запрос просто не будет ничего вычислять, а просто во временный набор данных заносятся записи со значениями Группировок. Однако это справедливо только для работы запросов по справочникам и по документам. При работе запроса по регистрам следует помнить, что в этом случае обязательно наличие Функций, причем только в том случае, когда их вычисленные значения отличны от нуля (хотя бы одной из заданных Функций), найденные объекты включаются во временный набор данных, формируемый запросом. Если при работе запроса по регистрам в тексте запроса операторы функций опущены, то программа не выдаст никакого сообщения об ошибке, добросовестно пройдет по всем Группировкам, не вычислит никаких значений Функций и, значит, ничего не запишет во временном файле.
При создании в тексте запроса внутренней переменной, которую вы предполагаете использовать в качестве параметра оператора Функция, надо учитывать, что тип этой внутренней переменной должен быть «число», т. к. функции в языке запросов обрабатывают только численные значения.
В тексте запроса, при описании оператора Функция можно использовать необязательное ключевое слово Когда, использование которого в операторе означает, что вычисление функции следует производить только при условии, что значение логического выражения, заданного в параметре ключевого слова является ИСТИНА. Синтаксис применяемого логического выражения полностью аналогичен синтаксису разрешенному к применению в операторах Условие.
Следует понимать, что не все функции внутри конкретной группировки запроса могут иметь четко интерпретируемый смысл. Например, для группировки по документу движения регистра следующие функции
|Функция ПрихКол = Приход(Количество);
|Функция РасхКол = Расход(Количество);
имеют четкий смысл — приращения, сделанные документом при движении регистра. С другой стороны, в той же группировке следующие функции:
|Функция НачКол = НачОст(Количество);