В “1С:Бухгалтерии” суммы проводок типовых операций могут вычисляться по произвольным формулам.
Формат формул. Формула может состоять из одного либо нескольких выражений или команд, разделенных между собой точкой с запятой “;”. Выражения в формуле рассчитываются (а команды выполняются) поочередно, т.е. слева направо. Каждое последующее выражение в формуле может использовать результат расчета предыдущего. В сумму проводки заносится результат вычисления последнего выражения в формуле.
Выражения составляются из следующих элементов:
В формулах сумм проводок используются только команды установки периода расчета остатков и оборотов по счетам (см. ниже). В отличие от отчетов произвольной формы, документов и расчетов и т.д., в формулах сумм проводок команды не должны начинаться с восклицательного знака “!”.
Замечание. соответствии с общепринятой практикой при вычислении выражений умножение и деление выполняются раньше, чем сложение и вычитание, если иной порядок не установлен скобками.
Функции. Для преобразования значений чисел и выражений можно использовать функции:
Ц(выражение) - преобразует выражение в целое число, отбрасывая от него дробную часть (например, Ц(1.8) равно 1, Ц(-1.9) равно -1).
ОКР(выражение\n) - округление выражения до n знаков в дробной части (например, ОКР(1.7\0) равно 2).
Замечание. ОКР(1.5\0) равно 2, ОКР(2.5\0) равно 3, ОКР(1.05\1) равно 1.1 и т.д. — в подобных “сомнительных” случаях округление выполняется до большего по абсолютной величине числа.
Условный оператор. Разновидностью функции является условный оператор, позволяющий в зависимости от выполнения й-ли невыполнения некоторого условия выбрать один из двух вариантов расчета. Формат условного оператора:
?(условие\выражение1\выражение2}
Если условие истинно, результатом вычисления условного оператора является значение выражения1, если ложно — выражения2.
Условие может конструироваться из арифметических выражений с помощью операторов сравнения:
< — меньше;
> — больше;
<= — меньше или равно;
>= — больше или равно;
= — равно;
<> — не равно.
Результаты сравнения могут комбинироваться с помощью логических операций:
НЕ — логическое отрицание (НЕ выражение истинно тогда и только тогда, когда выражение ложно);
И — логическое “и” (выражение1 И выражение2 истинно тогда и только тогда, когда и выражение1, и выражение2 истинны);
ИЛИ — логическое “или” (выражение1 ИЛИ выражение2 истинно тогда и только тогда, когда или выражение1, или вы-ражение2, или оба эти выражения истинны).
Замечания. 1. При наличии в формуле логических операций рекомендуется заключать обрабатываемые этими операциями арифметические выражения в круглые скобки, чтобы задать правильный порядок вычисления.
2. Условные операторы могут быть вложенными: и в условии, и в выражении1, и в выражении1 могут использоваться условные операторы.
Примеры:
?(СКК46>0\СКК46\0) — если СКК46 (кредитовое сальдо по счету 46 на конец периода, см. ниже) больше нуля, то результат вычисления условного оператора равен значению СКК46, иначе — нулю;
?(Х<0\0\Х*0.12) — если Х (значение предыдущего выражения в данной формуле, см. ниже) меньше нуля, то результат вычисления условного оператора равен нулю, иначе — X, умноженному на 0.12.