4.2. Функции

Расчетная система JetCalc поддерживает следующие группы функций:

  • математические функции

  • условные функции;

  • функции сравнения;

  • функции проверки контекста;

  • функции суммирования;

  • функции фильтрации;

  • функции перемещения по дереву объектов учета;

  • функции обработки тегов;

  • функции атрибутов ячеек;

  • логические функции;

Математические функции

round - функция округления до целого значения

Функция округляет до целых первичное значение либо результата вычисления формулы:

Пример:

round ( @SUMMA? / @KOL? )

Для округления значения до определенного количества знаков после запятой, можно воспользоваться следующим шаблоном:

Пример с округлением до двух знаком после запятой:

round ( @SUMMA? / @KOL? * 100 ) / 100

Условные функции

check - функция условного перехода

Функция предоставляет возможность выбора вычисляемой формулы в зависимости от результата проверки некоторого условия. Синтаксис функции check:

Пример:

check ( @KOL? < 1 : @CENA? * 1000 ; @CENA )

Аргументы:

  • условие - условное выражение, результатом которой является логическое значение TRUE или FALSE;

  • формула1 - формула, вычисляемая, если результат условного выражения равен TRUE;

  • формула2 - формула, вычисляемая, если результат условного выражения равен FALSE; при отсутствии формулы функция check возвращает 0.

Возвращаемые значения:

  • результат вычисления формула1 или формула2 в зависимости от результата вычисления условного выражения;

  • 0 - при отсутствии формула2 и результата условного выражения FALSE.

Условное выражение может быть представлена в виде:

  • формула1 ОП формула2 - сравнение результата вычислений одной формулы с результатом вычислений другой формулы, где ОП - операторы сравнения <, <=, >, >=, <>, =;

  • формула ОП число - сравнение результата вычисления формулы с натуральным числом, где ОП - операторы сравнения <, <=, >, >=, <>, =;

  • функция ( аргумент1, аргумент2, ... ) - логическая функция, в перечне аргументов содержащая перечень эталонных значений, с которыми сравниваются атрибуты контекста ячейки.

Функции сравнения

limit - лимит значения

Функция, устанавливающая лимит точности для формул сверки, ожидаемый результат которых должен быть равен 0. Синтаксис функции limit:

Пример:

limit ( 1.0 : $a110? - $a240? )

Аргументы:

  • число - положительное натуральное число;

  • формула - произвольная формула, ожидаемый результат которой должен быть равен 0.

Возвращаемые значение:

  • 0 - если, если результат расчета формулы по модулю меньше или равен модулю числа

  • результат расчета формулы - если результат расчета формулы по модулю больше модуля числа

gt (ge) - больше (больше или равно) значения

Функции, которые выводят значение, если оно превышает минимальную величину (без включения либо с включением данной величины в диапазон сравнения). Синтаксис функций gt (ge) :

Пример:

gt( 100 : ( $a110@OK? - $a110@ON? ) / $a110@OK? * 100 )

Аргументы:

  • число - натуральное число;

  • формула - произвольная формула,.

Возвращаемые значение:

  • результат расчета формулы - если результат расчета формулы больше (больше или равен) числа;

  • 0 - если, если результат расчета формулы меньше или равен (меньше) числа.

lt (le) - меньше (меньше или равно) значения

Функции, которые выводят значение, если оно меньше максимальной величины (без включения либо с включением данной величины в диапазон сравнения). Синтаксис функций gt (ge) :

Пример:

lt( 0 : $a210@PRIB? )

Аргументы:

  • число - натуральное число;

  • формула - произвольная формула,.

Возвращаемые значение:

  • результат расчета формулы - если результат расчета формулы меньше (меньше или равен) числа;

  • 0 - если, если результат расчета формулы больше или равен (больше) числа.

min - минимальное значение

Функция, вычисляющая значения двух формул и возвращающая меньшее из двух значений. Синтаксис функции min:

Пример:

min ( $a110.P11? ; $a120.P12? )

Аргументы:

  • формула1 - произвольная формула

  • формула2 - произвольная формула

Возвращаемое значение:

  • меньшее значение из двух значений результата вычисления формулы1 и формулы2

max - максимальное значение

Функция, вычисляющая значения двух формул и возвращающая большее из двух значений. Синтаксис функции max:

Пример:

max ( $a110.P11? ; $a120.P12? )

Аргументы:

  • формула1 - произвольная формула

  • формула2 - произвольная формула

Возвращаемое значение:

  • большее значение из двух значений результата вычисления формулы1 и формулы2

Функции проверки контекста

Функции проверки контекста являются обертками над функцией check, предоставляющими более наглядный и сжатый синтаксис наиболее часто используемых проверок контекста ячейки

forperiod - расчет формул для периодов и их групп

Функция, ограничивающая вычисление формул в контексте ячейки для определенных периодов и их групп:

Пример:

forperiod ( FSNG : @VAL.P-202? + @VAL.P-207? ; FJAN : @VAL.P11? )- для группы периодов FSNG расчет по формуле @VAL.P-202? + @VAL.P-207?, а для группы периодов FJAN - по формуле@VAL.P11?

Аргументы:

  • периоды1 - один или несколько кодов периодов или их групп, перечисленных через запятую;

  • формула1 - формула, вычисляемая при вхождении периода контекста ячейки в перечень периодов, определенных в параметре периоды1;

  • периоды2 - необязательный набор кодов периодов или их групп

  • формула2 - формула, вычисляемая при вхождении периода в необязательный набор кодов периодов или их групп

  • default - необязательный атрибут, определяющий формулу по умолчанию;

  • формулаN - необязательная формула, вычисляемая для ячеек, период контекста которой не вошел в ранее определенные в функции перечни периодов.

Возвращаемое значение:

  • результат расчета формулы - если период контекста ячейки входит в перечень периодов либо при наличии атрибута default;

  • 0 - если период контекста ячейки не входит в перечень периодов при одновременном отсутствии атрибута default.

forcol - расчет формул для колонок

Функция, ограничивающая вычисление формул в контексте ячейки для определенных колонок:

Пример:

forcol ( OK : @OK? / ( $m110@ON? + $m110@OK? ) * 2 )- для колонки OK выполнить расчет деления значения по колонке OK к среднему остатку по строке $m110

Аргументы:

  • колонки1 - один или несколько кодов колонок, перечисленных через запятую;

  • формула1 - формула, вычисляемая при вхождении колонки контекста ячейки в перечень колонок, определенных в параметре колонки1;

  • колонки2 - необязательный набор кодов колонок;

  • формула2 - формула, вычисляемая при вхождении колонки в необязательный набор кодов колонок;

  • default - необязательный атрибут, определяющий формулу по умолчанию;

  • формулаN - необязательная формула, вычисляемая для ячейки, колонка контекста которой не вошла в ранее определенные в функции перечни колонок.

Возвращаемое значение:

  • результат расчета формулы - если колонка контекста ячейки входит в перечень колонок либо при наличии атрибута default;

  • 0 - если колонка контекста ячейки не входит в перечень колонок при одновременном отсутствии атрибута default.

forobj - расчет формул для объектов учета

Функция, ограничивающая вычисление формул в контексте ячейки для определенных объектов учета или их групп:

Пример:

forobj ( NEWPRD : @OV? ; default : @OK.Y-1.P112? )- для группы новых предприятия ( NEWPRD ) вернуть значение по колонке @OV текущего периода, а для остальных вернуть значение по колонке @OK периода .P112 предыдущего года .Y-1

Аргументы:

  • объекты1 - один или несколько кодов объектов учета, перечисленных через запятую;

  • формула1 - формула, вычисляемая при вхождении объекта учета контекста ячейки в перечень объектов учета, определенных в параметре объекты1;

  • объекты2 - необязательный набор кодов объектов учета;

  • формула2 - формула, вычисляемая при вхождении объекта учета в необязательный набор кодов объектов учета;

  • default - необязательный атрибут, определяющий формулу по умолчанию;

  • формулаN - необязательная формула, вычисляемая для ячейки, объект учета контекста которой не вошла в ранее определенные в функции перечни объектов учета.

Возвращаемое значение:

  • результат расчета формулы - если объект учета контекста ячейки входит в перечень объектов учета либо при наличии атрибута default;

  • 0 - если объект учета контекста ячейки не входит в перечень объектов учета при одновременном отсутствии атрибута default.

Функция суммирования

Функция суммирования позволяет сложить значения одной ячейки по нескольким объектам учета. В системе JetCalc функция суммирования подразделяется на два вида:

  • << - суммирование ячеек дочерних объектов учета всех уровней вложенности для текущего объекта учета;

  • <<< - суммирование ячеек всех объектов учета.

Синтаксис функции суммирования:

Пример:

$m120@VAL<<<( G:NEWPRD, ( D:MET | R:66 ))?-сумма ячеек $m120@VAL? по группе всех новых предприятия (G:NEWPRD), входящих в металлургический дивизион (D:MET) или расположенный в Свердловской области (R:66)

Аргументы:

  • фильтр - логическое выражение с операторами NOT, AND, OR и круглыми скобками, операндами которого выступают пары "ключ:значение".

Возвращаемое значение:

  • сумма значений ячеек по перечню объекта учета, каждый из которых соответствует логическому выражению фильтра объектов учета.

В целях сокращения синтаксиса вместо полного наименования операторов NOT, AND, OR допустимо использовать их сокращенные обозначения:

  • ! (восклицательный знак) - аналог NOT;

  • , (запятая) - аналог AND;

  • | (вертикальная черта) - аналог OR.

В фильтре для пар "ключ:значение" могут использоваться следующие ключи в виде латинских букв:

  • C - класс объектов учета;

  • T - тип объектов учета;

  • D - дивизион;

  • S - отрасль (сектор);

  • R - регион;

  • G - группа объектов учета.

На практике при суммирование по дочерних объектов учета (функция << ) использование в качестве фильтра дивизионов (D) и отраслей (S) обычно не имеет смыла, поэтому как правило не применяется.

Функция фильтрации

Функция фильтрации используется в бизтран-документах, каждая строка которых дополнительно детализируется по счетам бухгалтерского учета, а также контрагентам и договорам (подробнее см. главу 9), и позволяет отфильтровать по этим дополнительным атрибутам. Функция фильтрации обычно используется в качестве дополнительного фильтра для функции суммирования.

Синтаксис функции фильтрации:

Пример (продолжение примера функции суммирования):

$m120@VAL<<<( G:NEWPRD, ( D:MET | R:66 ))>>(G:INORG,B:90_01)?- сумма ячеек $m120@VAL? по группе всех новых предприятия (G:NEWPRD), входящих в металлургический дивизион (D:MET) или расположенный в Свердловской области (R:66), в части группы иностранных контрагентов (G:INORG) по бухгалтерскому счету 90.01 (B:90_01)

Возвращаемое значение:

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

В целях сокращения синтаксиса вместо полного наименования операторов NOT, AND, OR допустимо использовать их сокращенные обозначения:

  • ! (восклицательный знак) - аналог NOT;

  • , (запятая) - аналог AND;

  • | (вертикальная черта) - аналог OR.

В фильтре для пар "ключ:значение" могут использоваться следующие ключи в виде латинских букв:

  • G - группа организаций-контрагентов;

  • B - бухгалтерский счет;

  • K - тип договора.

Функция перемещения по дереву объектов учета

Функции перемещения по дереву объектов учета расчетной системы JetCalc позволяют вместо явного указания кода объекта учета использовать контекстное переопределение объекта учета у ячейки путем перемещения по дереву объектов учета снизу-вверх.

  • ^ - смена текущего объекта учета на родительский объект учета;

  • ^^ - смена текущего объекта учета на корневой объект учета, у которого родительский объект учета не определен.

  • ^(n) - смена текущего объекта учета выше на n уровней (по умолчанию n = 1)

Функции объекта учета используются путем подстановки вместо кода объекта учета в коде ячейки на код функции.

Примеры:

$a120@VAL#^?- смена текущего объекта учета с #100pl20 на родительский объект учета #100

$a120@VAL##?- смена текущего объекта учета с #100pl20ce5 на корневой объект учета #100

Функции обработки тегов

Функции обработки тегов возвращают текущее значение тега на стадии приведения формул строк или колонок к контексту ячейки в момент открытия документа (подробнее см. раздел 6.1).

Возвращаемое значение функций обработки тегов может использоваться в формулах как:

  • атрибут кода ячейки - значение тега приводится к текстовому типу ;

  • числовой операнд - значение тега приводится к числовому типу.

Если приведение значение тега невозможно, то расчетная системе JetCalc возвращает ошибку, которая на интерфейсе выделяет ячейку бледно-красным фоном.

Если формула ячейки содержит тег, то поиск определения значения тега выполняется в следующей последовательности:

  1. Текущая строка или колонка.

  2. Родительские строки вплоть до корневого узла.

  3. Объект учета.

  4. Тип объекта учета.

  5. Класс объекта учета.

Если в вышеописанной цепочке поиска искомый тег не находится, то расчетная система JetCalc возвращает ошибку, которая на интерфейсе выделяет ячейку бледно-красным фоном.

Синтаксис формул обработки тегов:

Примеры:

$a120@{kolcalc}? - подстановка колонки с объемам производства, значение которой содержится в теге kolcalc

${strcalc}@VAL? - подстановка строки с объемам производства, значение которой содержится в теге strcalc

$i100@VAL#{ucomp}? - подстановка кода управляющей компании, значение которой содержится в теге ucomp

Особым случаем является встроенный в расчетную систему JetCalc тег KMULT, имеющий значение 1000. Тег KMULT представляет собой коэффициент (мультипликатор), обозначающий минимальную денежную единицу, в которой обычно составляется финансовая отчетность в стране. В России такой единице является тысяча рублей, поэтому по умолчанию KMULT = 1000.

Значение тега KMULT определено в файле /htdocs/jetcalc/config.js и может быть при необходимости изменено. В рабочей модели тег KMULT может быть переопределен на любом уровне - от строки до класса объекта учета.

Функции атрибутов ячеек

Функции атрибутов ячеек позволяют определить переменные характеристики атрибутов ячеек, зависящие от контекста ячеек. Расчетная система JetCalc поддерживает следующие функции атрибутов ячеек:

  • MCOUNT - число месяцев в отчетном периоде

  • DCOUNT - число дней в отчетном периоде

Пример:

$t100? / $t200? * 1000 / MCOUNT- расчет среднемесячной заработной платы в рублях исходя из фонда оплаты труда в тысячах рублей $t100? и среднесписочной численности $t200?.

Значения, возвращаемые функциями MCOUNT и DCOUNT, определяются на основании числа месяцев в периоде, а также даты начала и даты окончания периода, определенных при настройке периодов (подробнее см. главу 3).

Логические функции

Логические функции в системе JetCalc являются вспомогательными и обычно используются в условных выражениях функции check.

hastag - проверка наличия кода тега в контексте ячейки и опционально его значения

Пример:

check ( not hastag( R:nobal ) : @ON? + @PD? - @RD? )- вычисление формулы для строк, которые не содержат тег nobal

check ( hastag ( C:ndsrate=0.18 ) : $a100@VAL? * {ndsrate} )- расчет суммы НДС по ставке 18% только для колонки с тегом ndsrate, имеющим значение 0.18

Возвращаемое значение:

  • истина (true) - если тег и опционально его значение найдены в текущем контексте ячейки;

  • ложь (false) - если тег и опционально его значение найдены в текущем контексте ячейки.

Атрибут ключ аргумента функции hastag допускает следующие значения:

  • R - проверяется наличие тега только в текущей строке

  • W - проверяется наличие тега в текущей строке и всех родительских узлах до корневого узла

  • C - проверяется наличие тега в текущей колонке

  • O - проверяется наличие тега в текущем объекте учета

  • T - проверяется наличие тега в типе текущего объекта учета

Last updated