Справочник функций и операторов

Операторы

1. IF (условный оператор IF)

Описание

Условный оператор IF возвращает одно значение, если указанное условие дает в результате значение ИСТИНА, и другое значение, если условие дает в результате значение ЛОЖЬ.

Синтаксис

F.IF(bool <выражение1>, float <выражение2>, float <выражение3>)

  • выражение1 - логическое выражение
  • выражение2 - значение, если указанное условие дает в результате значение ИСТИНА
  • выражение3 - значение, если условие дает в результате значение ЛОЖЬ

Пример

F.IF (A > 0, B, 0)

Возвращается значение B, если A больше 0 или 0, если A меньше или равно 0

F.IF (((А /B) > 1.5) and ((A/B) < 2.3), C, 0)

Возвращается значение С, если A/В больше 1.5 и меньше 2.3 или 0, если A/В меньше или равно 1.5 и больше или равно 2.3

2. AND (оператор AND)

Описание

Логический оператор AND выполняет условие только в том случае, если в результате вычисления всех аргументов получается значение ИСТИНА. Если хотя бы одно условие ЛОЖНО, то все условие ЛОЖНО. Обычно функция AND используется для расширения возможностей других функций, выполняющих логическую проверку.

Синтаксис

(<выражение1>) AND (<выражение2>)

  • выражение1 - первое проверяемое условие, вычисление которого дает значение ИСТИНА или ЛОЖЬ.
  • выражение2 - второе проверяемое условие, вычисление которого дает значение ИСТИНА или ЛОЖЬ.

Пример

F.IF (A > 0 AND B=5, B, 0)

Возвращается значение B, если A>0 и B=5, иначе 0

3. OR (оператор OR)

Описание

Условный оператор OR позволяет проверить некоторое условие и, в зависимости от результатов проверки, выполнить то или иное действие. Возвращает значение ИСТИНА, если хотя бы один из аргументов имеет значение ИСТИНА или ЛОЖЬ, если все аргументы имеют значение ЛОЖЬ. Обычно функция OR используется для расширения возможностей других функций, выполняющих логическую проверку.

Синтаксис

(<выражение1>) OR (<выражение2>)

Пример

F.IF (A > 0 OR B=5, B, 0)

4. LIKE (оператор LIKE)

Описание

Оператор LIKE применим только к строковым значениям справочника, с которыми он используется, чтобы находить подстроки. Используется для наложения фильтров в справочнике при поиске нужных значений. В вычислимых полях Базового показателя не поддерживается (используется «=»)

Синтаксис

<'Код справочника'> LIKE <'Шаблон'>

  • Код справочника – аргумент код справочника
  • Шаблон – аргумент подстрока/часть слова/фразы

Пример

F.SUM (А, 20110101, 20111231, rep.everymonth, 'фил' LIKE 'Московский*')

Поиск значений в справочнике «Филиалы» (код справочника «Фил») начинающихся со слова «Московский»

5. NOT LIKE (оператор NOT LIKE)

Описание

Оператор NOT LIKE, обратный оператору LIKE, применим только к строковым значениям справочника, с которыми он используется, чтобы находить подстроки. Используется для наложения фильтров в справочнике при поиске нужных значений. В вычислимых полях Базового показателя не поддерживается (используется «<>» или «!=»)

Синтаксис

<'Код справочника'> NOT LIKE <'Шаблон'>

  • Код справочника – аргумент код справочника
  • Шаблон – аргумент подстрока/часть слова/фразы

Пример

F.SUM (А, 20110101, 20111231, rep.everymonth, 'фил' NOT LIKE 'Московский*')

Поиск значений в справочнике «Филиалы» (код справочника «Фил») не содержащих в названии слова «Московский»

6. NOT (оператор NOT)

Описание

Оператор NOT отрицает условие или оператор.

Синтаксис

NOT (<Условие_Оператор>)

  • Условие_Оператор – аргумент для условия или оператора, требующих отрицания

Пример

F.SUM (А, 20110101, 20111231, rep.everymonth, 'фил' NOT LIKE 'Московский*')

Поиск всех значений кроме «Московский*» в справочнике «Филиалы» (код справочника «Фил»)

NOT (A=8)

А не равно 8

Функции по работе с датами

1. TODAY (функция F.TODAY возвращает текущую дату (или дату со смещением от текущей).)

Описание

Функция F.TODAY возвращает текущую дату (или дату со смещением от текущей).

Синтаксис

F.TODAY({int <смещение>, {REP.BYCURRENT | REP.BYSTART | REP.BYEND}})

  • смещение - количество шагов периода для смещения в шаге периода отчета
  • необязательный параметр, возвращающий значение текущей даты BYCURRENT | REP.BYSTART | REP.BYEND (по умолчанию используется REP.BYEND). Если режим текущей даты не указан, то функция принимает значение REP.BYCURRENT

Пример

F.TODAY

Возвращается текущая дата - 20150305 00:00:00.000

F.TODAY (-1)

Если шаг отчета - месяц, то возвращается текущая дата минус 1 месяц

Если шаг отчета - квартал, то возвращается текущая дата минус 1 квартал.

F.TODAY (+2)

Если шаг отчета месяц, то возвращается текущая дата плюс 2 месяца

F.TODAY (0, rep.bystart) 

При шаге отчета месяц при расчете показателя на ноябрь возвращает начало ноября – 20141101 00:00:00.000

F.IF(F.TODAY = 20141225, 'Католическое Рождество', '')

В данной функции определяется текущая дата и, если она равна 25 декабря 2014, то возвращается значение «Католическое Рождество», иначе - «»

2. DATEADD (функция F.DATEADD возвращает дату со смещением)

Описание

Функция F.DATEADD возвращает дату со смещением

Синтаксис

F.DATEADD(int <дата начала>, int <смещение>, REP.EVERY*, {REP.BYSTART | REP.BYEND| REP.BYREPORT})

  • дата начала - дата, от которой производится вычисление
  • смещение - количество шагов периода для смещения
  • REP.EVERY*- константа соответствующего шага периода 
  • необязательный параметр, возвращающий значение даты на начало или конец периода REP.BYSTART | REP.BYEND| REP.BYREPORT (по умолчанию используется REP.BYEND)

Пример

F.DATEADD (F.REPORTDATE (rep.byend), -11, rep.everyquarter, rep.bystart), F.DATEADD (F.REPORTDATE (rep.byend), -4, rep.everyquarter, rep.byend)

В данной функции определяется период расчета.

Дата начала периода и конца периода расчета заданы со смещением от конечной даты периода отчета по Показателю. Для Показателя с шагом «Квартал» и периодом отчета с I квартала 2014 по VI квартал 2014 периодом расчета будут 2 года - I квартала 2012 - VI квартал 2013.

F.AVG (A, 4, F.DATEADD (F.REPORTDATE (rep.byend), -11, rep.everyquarter, rep.bystart), F.DATEADD (F.REPORTDATE (rep.byend), -4, rep.everyquarter, rep.byend), rep.everyquarter, 4)

В данной функции определяется поквартальное среднее значение переменной «A».

Для вычисления периода расчета среднего значения использована функция F.DATEADD, рассмотренная выше. Среднее значение, рассчитанное за 2012 - 2013 года, будет отображено в 2014 году.

3. REPORTDATE (функция F.REPORTDATE возвращает текущую дату начала отчета, текущую дату конца отчета или дату текущего шага периода)

Описание

Функция F.REPORTDATE возвращает текущую дату начала отчета, текущую дату конца отчета или дату текущего шага периода

Синтаксис

F.REPORTDATE({REP.BYSTART | REP.BYEND | REP.BYREPORT})

  • REP.BYSTART | REP.BYEND | REP.BYREPORT - параметр, который определяет возвращаемое значение даты - на начало периода отчета, конец периода отчета или на дату текущего шага периода соответственно.

Пример

F.SUM (A , F.REPORTDATE (rep.bystart) , F.TODAY(0, rep.byend) , rep.everymonth )

Сумма за период с января по декабрь 2014 года будет рассчитываться помесячно нарастающим итогом до текущего столбца отчета (за январь вернется значение января, за февраль – (январь+февраль), за март - (январь+февраль+март) и т.д.)

F.REPORTDATE (rep.bystart)

Возвращается дату начала отчета

4. DATE (функция F.DATE возвращает дату в формате (день, месяц, год) с возможностью рассчитать один из этих параметров с помощью других функций)

Описание

Функция F.DATE возвращает дату в формате (день, месяц, год) с возможностью рассчитать один из этих параметров с помощью других функций

Синтаксис

F.DATE (int <день>, int <месяц>, int <год>)

Пример

F.DATE (1,1,2015)

Возвращает значение 20150101, т.е. 01.01.2015

F.SUM(А, F.DATE (01, 01, F.YEAR (F.REPORTDATE(rep.byreport))), F.TODAY (0, rep.byend), rep.everyquarter )

С помощью функции F.DATE при расчете суммы задается дата начала суммирования – 01 января каждого года, где год вычисляется с помощью функций F.REPORTDATE.

5. PERIOD (функция F.PERIOD возвращает разницу между двумя датами в заданном шаге периода)

Описание

Функция F.PERIOD возвращает разницу между двумя датами в заданном шаге периода.

Синтаксис

F.PERIOD(int <дата начала>, int <дата конца>, REP.EVERY*)

  • дата начала - дата, от которой производится вычисление
  • дата конца - дата, до которой производится вычисление
  • REP.EVERY*- константа соответствующего шага периода

Пример

F.PERIOD(20150101, 20150201, rep.everyday)

Возвращает 31 день

F.PERIOD(20150101, 20150201, rep.everyhour)

Возвращает 744 часа

F.PERIOD(20140101, 20150101, rep.everymonth)

Возвращает 12 месяцев

6. PERIODOF (функция F.PERIODOF возвращает разницу между началом и концом текущего рассчитываемого шага периода отчета)

Описание

Функция F.PERIODOF возвращает разницу между началом и концом текущего рассчитываемого шага периода отчета

Синтаксис

F.PERIODOF(REP.EVERY*)

  • REP.EVERY*- константа соответствующего шага периода

Пример

F.PERIODOF(rep.everyday)

При расчете показателя за период с января по декабрь 2014 года с шагом «Месяц» будет последовательно возвращать: 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31

Та же функция в шаге периода «Квартал» будет возвращать: 90, 91, 92, 92

Аналогична записи комбинаций функций F.PERIOD(F.TODAY (0, rep.bystart), F.TODAY (0, rep.byend), rep.everyday)+1

7. DAY (функция F.DAY вычисляет день из параметра даты)

Описание

Функция F.DAY вычисляет день из параметра даты

Синтаксис

F.DATESTR(int <дата>, REP.EVERY*)

  • дата- дата, из которой производится вычисление дня
  • REP.EVERY*- константа соответствующего шага периода

Пример

F.DAY(20151101)

Возвращает значение - 1

8. MONTH (функция F.MONTH вычисляет месяц из параметра даты)

Описание

Функция F.MONTH вычисляет месяц из параметра даты

Синтаксис

F.MONTH(int <дата>)

  • дата - дата, из которой производится вычисление месяца

Пример

F.MONTH(20151101)

Возвращает значение - 11

9. QUARTER (функция F.QUARTER вычисляет квартал из параметра даты)

Описание

Функция F.QUARTER вычисляет квартал из параметра даты

Синтаксис

F.QUARTER(int <дата>)

  • дата - дата, из которой производится вычисление квартала

Пример

F.QUARTER(20151101)

Возвращает значение - 4

10. YEAR (функция F.YEAR вычисляет год из параметра даты)

Описание

Функция F.YEAR вычисляет год из параметра даты

Синтаксис

F.YEAR(int <дата>)

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

Пример

F.YEAR(20151101)

Возвращает значение - 2015

11. GETDATE (функция F.GETDATE возвращает текущую дату со временем)

Описание

Функция F.GETDATE возвращает текущую дату со временем

Синтаксис

F.GETDATE()

Пример

F.GETDATE

Возвращает текущую дату со временем

12. DATENIL (функция F.DATENIL возвращает минимальное (пустое) значение даты)

Описание

Функция F.DATENIL возвращает минимальное (пустое) значение даты

Синтаксис

F.DATENIL()

Пример

F.DATENIL

Возвращает 18991230 - минимальное значение даты 30.12.1899

13. DATEONLY (функция F.DATEONLY возвращает из заданного значения только дату - без времени)

Описание

Функция F.DATEONLY возвращает только дату из заданного значения (без времени)

Синтаксис

F.DATEONLY(int <дата>)

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

Пример

F.DATEONLY( F.GETDATE )

Возвращает текущее значение даты без времени

14. SECOND (функция F.SECOND возвращает значение секунд из даты)

Описание

Функция F.SECOND возвращает значение секунд из даты

Синтаксис

F.SECOND(int <дата>)

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

Пример

F.SECOND( F.GETDATE() )

Возвращает секунды из текущей даты со временем

15. MINUTE (функция F.MINUTE возвращает значение минуты из даты)

Описание

Функция F.MINUTE возвращает значение минуты из даты

Синтаксис

F.MINUTE(int <дата>)

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

Пример

F.MINUTE ( F.GETDATE() )

Возвращает минуты из текущей даты со временем

16. HOUR (функция F.HOUR возвращает значение часа из даты)

Описание

Функция F.HOUR возвращает значение часа из даты

Синтаксис

F.HOUR(int <дата>)

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

Пример

F.HOUR( F.GETDATE() )

Возвращает часы из текущей даты со временем

17. DATEDIFF (функция F.DATEDIFF возвращает в виде целого числа разность дат в заданном шаге периода)

Описание

Функция F.DATEDIFF возвращает разность дат в заданном шаге периода. Результат целое число

Синтаксис

F.DATEDIFF(REP.EVERY*, int <дата начала>, int <дата конца>)

  • REP.EVERY*- константа соответствующего шага периода
  • дата начала - дата, от которой производится вычисление
  • дата конца - дата, до которой производится вычисление

Пример

F.DATEDIFF(rep.everymonth, 20100101, 20101231)

Возвращает 11 месяцев

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

1. PI (функция F.PI возвращает число Пи - 3.1415....)

Описание

Функция F.PI возвращает число Пи - 3.1415....

Синтаксис

F.PI

Пример

F.PI

Для показателя измеритель, которого имеет точность два знака после запятой, возвращает значение 3.14

2. SIN (функция F.SIN возвращает синус угла)

Описание

Функция F.SIN возвращает синус угла

Синтаксис

F.SIN(float <угол>)

  • угол – показатель или выражение, для вычисления синуса

Пример

F.SIN(30)

Возвращает значение 0,5

3. COS (функция F.COS возвращает косинус угла)

Описание

Функция F.COS возвращает косинус угла

Синтаксис

F.COS (float <угол>)

  • угол – показатель или выражение, для вычисления косинуса

Пример

F.COS(360)

Возвращает значение 1

4. TG (функция F.TG возвращает тангенс угла)

Описание

Функция F.TG возвращает тангенс угла

Синтаксис

F.TG(float <угол>)

  • угол – показатель или выражение, для вычисления тангенса

Пример

F.TG (45)

Возвращает значение 1

5. CTG (функция F.CTG возвращает котангенс угла)

Описание

Функция F.CTG возвращает котангенс угла

Синтаксис

F.CTG(float <угол>)

  • угол – показатель или выражение, для вычисления котангенса

Пример

F.CTG (45)

Возвращает значение 1

6. ARCSIN (функция F.ARCSIN возвращает арксинус угла)

Описание

Функция F.ARCSIN возвращает арксинус угла

Синтаксис

F.ARCSIN (float <угол>)

  • угол – показатель или выражение, для вычисления арксинуса

F.ARCSIN (30)

7. ARCCOS (функция F.ARCCOS возвращает арккосинус угла)

Описание

Функция F.ARCCOS возвращает арккосинус угла

Синтаксис

F.ARCCOS (float <угол>)

  • угол – показатель или выражение, для вычисления арккосинус

Пример

F.ARCCOS (1)

8. ARCTG (функция F.ARCTG возвращает арктангенс угла)

Описание

Функция F.ARCTG возвращает арктангенс угла

Синтаксис

F.ARCTG (float <угол>)

  • угол – показатель или выражение, для вычисления арктангенса

Пример

F.ARCTG (1)

9. ARCCTG (функция F.ARCCTG возвращает арккотангенс угла)

Описание

Функция F.ARCCTG возвращает арккотангенс угла

Синтаксис

F.ARCCTG (float <угол>)

  • угол – показатель или выражение, для вычисления арккотангенса

Пример

F.ARCCTG (1)

10. EXP (функция F.EXP возвращает основание натурального логарифма (e = 2.7182818284590452...) в указанной степени)

Описание

Функция F.EXP возвращает основание натурального логарифма (e = 2.7182818284590452...) в указанной степени

Синтаксис

F.EXP(float <выражение>)

  • выражение – показатель или выражение, для вычисления экспоненты

Пример

F.EXP (0)

Возвращает значение 1

11. LG (функция F.LG возвращает логарифм по основанию 10 указанного числа)

Описание

Функция F.LG возвращает логарифм по основанию 10 указанного числа

Синтаксис

F.LG (float <выражение>)

  • выражение – показатель или выражение, для вычисления

Пример

F.LG (10)

Возвращает значение 1

12. LN (функция F.LN возвращает натуральный логарифм указанного числа)

Описание

Функция F.LN возвращает натуральный логарифм указанного числа

Синтаксис

F.LN (float <выражение>)

  • выражение – показатель или выражение, для вычисления

Пример

F.LG (1)

Возвращает значение 0

13. ABC (функция F.ABC возвращает модуль (абсолютную величину) числа, т.е. число без знака)

Описание

Функция F.ABC возвращает модуль (абсолютную величину) числа, т.е. число без знака.

Синтаксис

F.ABC(float <выражение>)

  • выражение - вещественное число, абсолютное значение которого необходимо найти

Пример

F.ABC (3)

Возвращает значение 3

F.ABC (-2)

Возвращает значение 2

14. MAX (функция F.MAX возвращает наибольшее значение из набора значений)

Описание

Функция F.MAX возвращает наибольшее значение из набора значений.

Синтаксис

F.MAX(float <выражение1>,..., float <выражениеN>)

  • выражение1 , ... , выражениеN - вещественные числа, максимальное из которых необходимо найти 

Пример

F.MAX (2, 3, 1)

Возвращает значение 3

15. MAXTAB (функция F.MAXTAB для вычисления максимального значения показателя, расщепленного по справочнику)

Описание

Функция F.MAXTAB для вычисления максимального значения показателя, расщепленного по справочнику

Синтаксис

F.MAXTAB (<показатель>, '<код справочника>')

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

Пример

F.MAXTAB (А, 'Сотрудник')

Показатель, соответствующий переменной A, расщепляется по справочнику «Сотрудник», и из получившегося списка <Значение справочника>=<значение показателя> возвращается максимальное значение показателя.

16. MAXIMUM (функция F.MAXIMUM вычисляет максимальное значение за период в заданном шаге периода или максимальное значение в массиве)

Описание

Функция F.MAXIMUM вычисляет максимальное значение за период в заданном шаге периода или максимальное значение в массиве.

При вычислении значения за период функция сначала суммирует данные в указанном шаге периода, а потом находит экстремум в диапазоне назначенных дат.

Синтаксис

F.MAXIMUM(<показатель>, int <дата начала>, int <дата конца>, REP.EVERY*, {<фильтр>}, {bool <выражение>})

F.MAXIMUM ([<выражение>{,<выражение>}])

  • показатель – код переменной
  • дата начала - дата, от которой производится вычисление
  • дата конца - дата, до которой производится вычисление
  • REP.EVERY*- константа соответствующего шага периода
  • необязательный фильтр на справочники
  • выражение - любое синтаксически верное выражение, результат которого число

Пример

F.MAXIMUM(A, 20140101, 20141231, rep.everymonth)

Возвращает максимальное месячное значение за 2014 год.

F.MAXIMUM(A, 20140101, 20141231, rep.everymonth, 'Сегмент' LIKE 'Малый*')

Возвращает максимальное месячное значение выбранного показателя за 2014 год со значением «Малый» по справочнику «Сегмент»

F.MAXIMUM([2, 4])

Возвращает максимальное значение в массиве - 4

17. MIN (функция F.MIN возвращает наименьшее значение из набора значений)

Описание

Функция F.MIN возвращает наименьшее значение из набора значений.

Синтаксис

F.MIN(float <выражение1>, float <выражение>)

  • выражение1 , ... , выражениеN - вещественные числа, минимальное из которых необходимо найти 

Пример

F.MIN (2, 3, 5)

Возвращает значение 2

18. MINTAB (функция F.MINTAB для вычисления минимального значения показателя, расщепленного по справочнику)

Описание

Функция F.MINTAB для вычисления минимального значения показателя, расщепленного по справочнику

Синтаксис

F.MINTAB (<показатель>, '<код справочника>')

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

Пример

F.MINTAB (А, 'Сотрудник')

Показатель, соответствующий переменной A, расщепляется по справочнику «Сотрудник», и из получившегося списка <Значение справочника>=<значение показателя> возвращается минимальное значение показателя.

19. MINIMUM (функция F.MINIMUM вычисляет максимальное значение за период в заданном шаге периода или минимальное значение в массиве)

Описание

Функция F.MINIMUM вычисляет максимальное значение за период в заданном шаге периода или минимальное значение в массиве.

При вычислении значения за период функция сначала суммирует данные в указанном шаге периода, а потом находит экстремум в диапазоне назначенных дат.

Синтаксис

F.MINIMUM(<показатель>, int <дата начала>, int <дата конца>, REP.EVERY*, {<фильтр>},{bool <выражение>})

F.MINIMUM ([<выражение>{, <выражение>}])

  • показатель – код переменной
  • дата начала - дата, от которой производится вычисление
  • дата конца - дата, до которой производится вычисление
  • REP.EVERY*- константа соответствующего шага периода
  • необязательный фильтр на справочники
  • выражение - любое синтаксически верное выражение, результат которого число

Пример

F.MINIMUM(A, 20140101, 20141231, rep.everymonth)

Возвращает минимальное месячное значение за 2014 год.

F.MINIMUM(A, 20140101, 20141231, rep.everymonth, 'Сегмент' LIKE 'Малый*')

Возвращает минимальное месячное значение выбранного показателя за 2014 год со значением «Малый» по справочнику «Сегмент»

F.MINIMUM([2, 4])

Возвращает минимальное значение в массиве - 2

20. SQRT (функция F.SQRT вычисляет квадратный корень из указанного выражения или значения показателя)

Описание

Функция F.SQRT вычисляет квадратный корень из указанного выражения или значения показателя.

Синтаксис

F.SQRT(float <выражение>)

  • выражение – код переменной или выражение

Пример

F. SQRT(A)

Возвращает квадратный корень из значения Показателя

F. SQRT(64)

Возвращает значение 8

21. ROUND (функция F.ROUND округляет значение десятичной части с указанной точностью)

Описание

Функция F.ROUND округляет значение десятичной части с указанной точностью. Если точность -отрицательное число, то округляется количество знаков целой части.

Синтаксис

F.ROUND(float <выражение>, int <точность>)

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

Пример

F.ROUND(123.9994, 3)

Возвращает значение 123

F.ROUND(123.9995, 3)

Возвращает значение 124

F.ROUND(748.58, -1)

Возвращает значение 750.00

F.ROUND(748.58, -3)

Возвращает значение 1000

22. ROUNDDOWN (функция F.ROUNDDOWN округляет значение до ближайшего меньшего по модулю значения)

Описание

Функция F.ROUNDDOWN округляет значение до ближайшего меньшего по модулю значения

Синтаксис

F.ROUNDDOWN(float <выражение>, int <точность>)

  • выражение – код переменной или выражение
  • точность – количество знаков после округления

Пример

F.ROUNDDOWN(3.14159, 3)

Возвращает округленное с недостатком до трех десятичных разрядов значение 3.141

F.ROUNDDOWN(76.9, 0)

Возвращает округленное с недостатком до ближайшего целого значение 76

F.ROUNDDOWN(-3.14159, 1)

Возвращает округленное с недостатком до одного десятичного разряда значение -3.1

F.ROUNDDOWN(31415.92654, -2)

Возвращает округленное с недостатком до двух десятичных разрядов слева от запятой значение 31400

23. ROUNDUP(функция F.ROUNDUP округляет значение до ближайшего большего по модулю значения)

Описание

Функция F.ROUNDUP округляет значение до ближайшего большего по модулю значения

Синтаксис

F.ROUNDUP(float <выражение>, int <точность>)

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

Пример

F.ROUNDUP(3.14159, 3)

Возвращает округленное с избытком до трех десятичных разрядов значение 3.142

F.ROUNDUP(76.1, 0)

Возвращает округленное с избытком до ближайшего целого значение 77

F.ROUNDUP(-3.14159, 1)

Возвращает округленное с избытком до одного десятичного разряда значение -3.2

F.ROUNDUP(31415.92654, -2)

Возвращает округленное с избытком до двух десятичных разрядов слева от запятой значение 31500

24. FLOOR (функция F.FLOOR округляет число до кратного заданной точности с недостатком)

Описание

Функция F.FLOOR округляет число до кратного заданной точности с недостатком

Синтаксис

F.FLOOR(float <выражение>, float <точность>)

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

Пример

F.FLOOR(2.5, 1)

Возвращает округленное с недостатком до ближайшего числа, кратного 1, значение 2

F.FLOOR(-2.5, -2)

Возвращает округленное с недостатком до ближайшего числа, кратного -2, значение -2

F.FLOOR(-2.5, 2)

Возвращает ошибку, поскольку числа -2.5 и 2 имеют разные знаки

F.FLOOR(1.5, 0.1)

Возвращает округленное с недостатком до ближайшего числа, кратного 0.1, значение 1,5

F.FLOOR(0.234, 0.01)

Возвращает округленное с недостатком до ближайшего числа, кратного 0.01, значение 0.23

25. NUMFROMSEP (функция F.NUMFROMSEP возвращает число после десятичного разделителя)

Описание

Функция F.NUMFROMSEP возвращает число после десятичного разделителя из числа.

Синтаксис

F.NUMFROMSEP (float <выражение>)

  • выражение – любое синтаксически верное выражение, результатом которого будет вещественное значение

Пример

F.NUMFROMSEP (123.4567)

Возвращает значение 4567

26. COUNTFROMSEP (функция F.COUNTFROMSEP возвращает количество значащих цифр после десятичного разделителя)

Описание

Функция F.COUNTFROMSEP возвращает количество значащих цифр после десятичного разделителя из числа.

Синтаксис

F.COUNTFROMSEP (float <выражение>)

  • выражение – любое синтаксически верное выражение, результатом которого будет вещественное значение

Пример

F.COUNTFROMSEP(123.1567)

Возвращает значение 4

Функции для вычисления значений показателей

1. AVG (функция F.AVG вычисляет среднее значение переменной за период в шаге периода)

Описание

Функция F.AVG вычисляет среднее значение переменной за период в шаге периода (сумма за период, деленная на количество значений в этом периоде)

Синтаксис

F.AVG(<показатель>)

или

F.AVG(<показатель>, int <дата начала>, int<дата конца>, REP.EVERY*)

  • показатель – код переменной или выражение
  • дата начала и дата конца - длюбое синтаксически верное выражение возвращающее дату начала и конца периода за который производится расчет.
  • REP.EVERY*- константа соответствующего шага периода (по умолчанию используется шаг периода отчета)

Пример

F.AVG(А) или F.AVG( A , F.ToDay(0, rep.bystart ), F.ToDay(0, rep.byend ), F.ReportStep( A ))

Возвращает среднее значение за текущий период (сумма за текущий период, деленная на количество значений за этот период).

Равнозначно F.SUM(А) / F.Count(А)

2. AVGPERIOD (функция F.AVGPERIOD вычисляет среднее значение переменной за период)

Описание

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

Синтаксис

F.AVGPERIOD(<показатель>, {int <смещение>,)

или

F.AVGPERIOD(<показатель>, {int <смещение>, {int <дата начала>, int<дата конца>, REP.EVERY*, {int <смещение дат периода>}, {<фильтр>, {bool <выражение>} } }})

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

Пример

F.AVGPERIOD(А) или F.AVGPERIOD(А, 1)

Возвращает сумму на текущий период от начального периода, деленную на количество периодов

F.AVGPERIOD(А, 2)

Возвращает сумму и номер периода, которые увеличиваются по каждому второму периоду отчета, т.е. если задан период год с шагом периода в отчете «Месяц», то:

- для первого месяца получим сумму за Первый месяц/1

- для второго месяца получим сумму за Второй месяц/1

- для третьего месяца получим (сумму за Первый + Третий месяц)/2

- для четвертого месяца получим (сумму за Второй + Четвертый месяц)/2

- для пятого месяца получим (сумму за Первый + Третий + Пятый месяц)/3

- для шестого месяца получим (сумму за Второй + Четвертый + Шестой месяц)/3

и т.д.

F.AVGPERIOD(А,12)

При параметрах отчета с шагом периода «Месяц» за период 2 года, среднее значение будет вычисляться для каждого месяца погодично, т.е.:

для первого месяца первого года получим Январь2010/1

для первого месяца второго года получим (Январь2010+Январь2011)/2

для второго месяца первого года получим Февраль2010/1

для второго месяца второго года получим (Февраль2010+Февраль2011)/2

F.AVGPERIOD(A, 12, 20130101, 20141231, rep.everymonth, 12)

В данной функции определяется помесячное среднее значение переменной «А» с учетом значений за 2 указанных в функции года. Средний результат, полученный за 13-й и 14-й года, будет отображен в 15-м году. Для 2014 года среднее значение будет равно значению за 2013 год

F.AVGPERIOD(A, 0, F.TODAY(0, rep.bystart), F.TODAY (0, rep.byend), rep.everymonth )

В данной функции определяется помесячное среднее значение переменной «А» за текущий период.

Для вычисления периода расчета среднего значения использована функция F.TODAY, рассмотренная выше.

При построении показателя с шагом «Квартал» будет вычисляться среднее помесячное значение показателя для каждого квартала периода отчета.

При построении показателя с шагом «Полугодие» будет вычисляться среднее помесячное значение показателя для каждого полугодия периода отчета

и т.д.

F.AVGPERIOD(A, 0, F.TODAY (0, rep.bystart), F.TODAY (0, rep.byend), rep.everyday )

В данной функции определяется среднее для каждого месяца значение переменной «А» за период отчета с шагом месяц.

F.AVGPERIOD(A, 4,     F.DATE (1, 1, F.YEAR (F.REPORTDATE (rep.byend))-3)  ,    F.DATE (31, 12, F.YEAR (F.REPORTDATE (rep.byend)) -1),   rep.everyquarter, 4 )

В данной функции по Показателю с шагом «Квартал» и периодом с 1 квартала 2015 по 4 квартал 2015 рассчитывает среднее квартальное значение по соответствующему кварталу за три предшествующих года, где:

А- переменная

4 - смещение шага суммирования для расчета среднего значения, т.е. суммироваться будут не все значения показателя А, а согласно указанному смещению (1 квартал 2012 года +1 квартал 2013 и 1кв. 2014). Полученное значение при расчете будет поделено на количество шагов суммирования (в данном случае количество первых кварталов = 3).

Функция F.DATE (1, 1, F.YEAR (F.REPORTDATE (rep.byend)) -3) - определяет дату начала для вычисления среднего значения. День и месяц заданы (1 января), а год вычисляем исходя из года даты окончания отчета и указанного смещения. В данном случае смещение «-3» = 2015 - 3= 2012.  

Аналогично вычисляем дату конца для вычисления среднего значения: задаем день и месяц (31 декабря), а год вычисляем от даты окончания отчета со смещением. В данном случае смещение «-1» = 2015 - 1= 2014.

rep.everyquarter - шаг вычисления среднего значения – Квартал

4 - смещение полученных данных в шаге вычисления среднего значения (на 4 периода вперед), т.е. значением за 1 кв. 2015 года будет результат - (1 кв.2012+1кв.2013+1кв.2014) /3

значением за 2 кв. 2015 года будет результат - (2 кв.2012+2кв.2013+2кв.2014) /3 и т.д.

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

F.AVGPERIOD(A, 12, F.DATE (1, 1, F.YEAR (F.REPORTDATE (rep.byreport)) -2), F.DATE (31, 12, F.YEAR (F.REPORTDATE (rep.byreport) ) -1), rep.everymonth , 12)

В данной функции определяется дата отчета и ежемесячное среднее значение переменной «А» за 2 предыдущих года.

Среднее значение за 2011 и 2012 года будет отображено в 2013,

Среднее значение за 2012 и 2013 года будет отображено в 2014,

Среднее значение за 2013 и 2014 года, будет отображено в 2015 году

и т.д.

 

3. AVGTAB (функция F.AVGTAB для вычисления среднего значения показателя, расщепленного по справочнику)

Описание

Функция F.AVGTAB для вычисления среднего значения показателя, расщепленного по справочнику

Синтаксис

F.AVGTAB (<показатель>, '<код справочника>')

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

Пример

F. AVGTAB(А, 'Сотрудник')

Показатель, соответствующий переменной A, расщепляется по справочнику «Сотрудник» а в получившемся списке <Значение справочника>=<значение показателя> берется сумма значений показателя и делиться на количество значений справочника. Для суммы и количества учитывается не проставленная аналитика.

Примечание:
На первый взгляд может показаться, что

F. AVGTAB(А, 'Сотрудник') соответствует

F. SUMTAB(A, 'Сотрудник') / F.ANALITCOUNT(A, 'Сотрудник'), но в общем случае, это не так.

F. ANALITCOUNT() Не учитывает не проставленную аналитику.
Допустим, расщепление по справочнику Сотрудник для показателя дало следующий список значений:
'Иванов' = 15
'Петров' = 5
'Сидоров' = 10
'не задано значение' = 7,

Тогда:
F.SUMTAB(A, 'Сотрудник') = 37
F. ANALITCOUNT(A, 'Сотрудник') = 3
F. SUMTAB(A, 'Сотрудник') / F.ANALITCOUNT(A, 'Сотрудник') = 37 / 3 = 12,(3)
F. AVGTAB(А, 'Сотрудник') = 37 / 4 = 9,25
 

4. SUM (функция F.SUM вычисляет сумму показателя за период в заданном шаге периода или сумму от массива)

Описание

Функция F.SUM вычисляет сумму показателя за период в заданном шаге периода или сумму от массива

Синтаксис

F.SUM(<показатель>, int <дата начала>, int <дата конца>, REP.EVERY*, {<фильтр>},{bool <выражение>})

F.SUM(<показатель>) равнозначен F.SUM(<показатель>, F.ToDay(0, Rep.ByStart), F.ToDay(0, Rep.ByEnd), F.ReportStep(<показатель>))

F.SUM ([<выражение>{,<выражение>}])

  • показатель – код переменной или выражение
  • дата начала - дата, от которой производится вычисление (по умолчанию используется период отчета)
  • дата конца - дата, до которой производится вычисление (по умолчанию используется период отчета).
  • REP.EVERY*- константа соответствующего шага периода (по умолчанию используется шаг периода отчета).
  • необязательный фильтр на справочники показателя
  • выражение – любое синтаксически верное выражение, результат которого число

Пример

F.SUM(А, 20140101, 20141231, rep.everymonth)

Возвращает сумму месячных значений Показателя «А» за 2014 год.

F. SUM(А, 20140101, 20141231, rep.everymonth, 'фил' = 'Московский филиал')

Возвращает годовую сумму месячных значений Показателя «А» с аналитикой «Московский филиал» по справочнику «Филиалы» (код справочника «фил»)

F.SUM(А, F.TODAY (-1, rep.bystart), F.TODAY (0, rep.byend), rep.everymonth)

Возвращает сумму показателя A за период от начала предыдущего расчетного месяца до конца текущего расчетного месяца.

Для вычисления даты начала и даты конца используется функция F.TODAY со смещением

F.TODAY (-1, rep.bycurrent) -- при шаге отчета месяц текущая дата минус 1 месяц

F.TODAY (0, rep.byend) -- при шаге отчета месяц при расчете показателя на ноябрь --- конец ноября

F. SUM(A, F.REPORTDATE(rep.bystart), F.TODAY(0, rep.byend) , rep.everymonth )

Возвращает сумму за период нарастающим итогом.

F.REPORTDATE(rep.bystart) – возвращает дату начала отчета

F.TODAY(0, rep.byend) - возвращает дату столбца

За период с января по декабрь 2014 года сумма будет рассчитываться помесячно нарастающим итогом до текущего столбца отчета:

- за январь возвращается значение января,

- за февраль - январь+февраль,

- за март- январь+февраль+март

и т.д.

F.SUM(A, F.TODAY(f.if(F.REPORTSTEP=rep.everymonth,-12,f.if (F.REPORTSTEP =rep.everyquarter, -4, f.if(F.REPORTSTEP=rep.everyhalf,-2,-1))),rep.bystart), F.TODAY(f.if ( F.REPORTSTEP=rep.everymonth, -12, f.if(F.REPORTSTEP=rep.everyquarter,-4, f.if(F.REPORTSTEP=rep.everyhalf,-2,-1))),rep.byend), rep.bycurrent )

Возвращает сумму по показателю «A» за текущий период со смещением на год вперед.

При построении отчета за 2015 год с шагом «Квартал» отобразится сумма:

- в первом квартале 2015 года - за первый квартал 2014 года.

- во втором квартале 2015 года - за второй квартал 2014 годы

и т.д.

При построении отчета за 2015 год с шагом «Полугодие»

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

При построении отчета за 2015 год с шагом год отобразится сумма значений за 2014 год.

F.SUM(A, F.DATE ( 01, f.if (F.QUARTER (F.REPORTDATE (rep.byreport))=1, 01, f.if (F.QUARTER (F.REPORTDATE (rep.byreport))=2, 04, f.if (F.QUARTER (F.REPORTDATE (rep.byreport))=3, 07, 10 ) ) ), F.YEAR (F.REPORTDATE (rep.byreport))) , F.TODAY (0, rep.byend), rep.everyweek)

Возвращает нарастающий по неделям итог по каждому кварталу года отчета.

F. SUM(А, F.DATE (01, 01,F.YEAR(F.REPORTDATE(rep.byreport)) ), F.TODAY (0, rep.byend), rep.everymonth)

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

f.if(F.Month(F.REPORTDATE(rep.byreport)) = 1, A,
f.if(  f.periodnumber(rep.ByCurrent) <= 0, 0, f.if(  f.periodnumber(rep.ByCurrent) = 1,
F.SUM( A , F.DATE (01, 01,F.YEAR(F.REPORTDATE(rep.byreport)) ), F.ToDay(0, rep.byend), rep.everymonth),
f.prevvaluethis(1) + A)))

F.SUM( [A , B])

Возвращает сумму переменных в массиве эффективнее чем А+В

5. PROGRESSIVESUM (функция F.PROGRESSIVESUM вычисляет сумму данных показателя, сгруппированных в шаге периода показателя, нарастающим итогом в одном из указанных периодов)

Описание

Функция F.PROGRESSIVESUM вычисляет сумму данных показателя, сгруппированных в шаге периода показателя, нарастающим итогом в одном из указанных периодов 

Синтаксис

F.PROGRESSIVESUM(<показатель>,rep.everyyear|rep.everyhalf|rep.everyquarter |rep.everymonth)

  • показатель – переменная показателя, для которой нужно рассчитать сумму данных в шаге периода показателя нарастающим итогом за указанный период
  • rep.everyyear – нарастающий итог считается с начала каждого года
  • rep.everyhalf – нарастающий итог считается с начала каждого полугодия
  • rep.everyquarter – нарастающий итог считается с начала каждого квартала
  • rep.everymonth – нарастающий итог считается с начала каждого месяца

Пример

F.PROGRESSIVESUM (A, Rep.EveryYear)

За период с января по декабрь одного или нескольких лет будет рассчитываться помесячно нарастающим итогом в рамках каждого года:

- за январь возвращается значение января,

- за февраль - январь+февраль,

- за март- январь+февраль+март

и т.д.

 

6. SUMTAB (функция F.SUMTAB вычисляет сумму показателя, расщепленного по справочнику)

Описание

Функция F.SUMTAB вычисляет сумму показателя, расщепленного по справочнику

Синтаксис

F.SUMTAB(<показатель>, <справочник>)

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

Пример

F.SUMTAB(X, 'филиал')

Возвращает итоговую сумму переменной Х за отчетный период в шаге периода отчета с расщеплением по справочнику «филиал»

X - расчетный показатель, равный произведению двух базовых показателей А*В, каждый из которых имеет аналитику по справочнику 'филиал':

филиал A B
Филиал 1 1,00 7,00
Филиал 2 2,00 8,00
Филиал 3 3,00 9,00
ИТОГО: 6,00 24,00

Функция F.SUMTAB подсчитает итоговую сумму произведений А*В в разрезе справочника 'филиал' (как в табличном отчете) за период отчета:

F.SUMTAB (Х, 'фил') = 7+16+27=50

Функция F.SUM в этом случае подсчитает за указанный период сумму по показателю «А» и умножит ее на сумму по показателю «В» за этот период:

F.SUM (Х, 20140101, 20143112, rep.everymonth) = 6+24=30

7. COUNT (функция F.COUNT вычисляет количество значений в показателе за период в заданном шаге периода или количество элементов в массиве)

Описание

Функция F.COUNT вычисляет количество значений в показателе за период в заданном шаге периода или количество элементов в массиве

Синтаксис

F.COUNT(<показатель>, int <дата начала>, int <дата конца>, REP.EVERY*, {<фильтр>}) 

или

F.COUNT(<показатель>),

что равнозначно

F.COUNT(<показатель>, F.ToDay(0, Rep.BySart), F.ToDay(0, Rep.ByEnd), F.ReportStep(<показатель>))

 

F.COUNT ([<выражение>{, <выражение>}])

  • показатель – код переменной или выражение
  • дата начала - дата, от которой производится вычисление (по умолчанию используется период отчета)
  • дата конца - дата, до которой производится вычисление (по умолчанию используется период отчета)
  • REP.EVERY*- константа соответствующего шага периода (по умолчанию используется шаг периода отчета)
  • необязательный фильтр на справочники показателя 
  • выражение – любое синтаксически верное выражение, результат которого число

Пример

F.COUNT(А)

Возвращает количество записей показателя «А» за период отчета. 

F.COUNT(А, 20140101, 20141231, rep.everymonth)

Возвращает количество записей показателя «А» за указанный период.

F.COUNT(А, F.TODAY (0, rep.bystart),  F.TODAY (0, rep.byend), rep.byreport)

Возвращает количество записей показателя «А» за указанный период

F.COUNT(А, 20140101, F.TODAY, rep.everymonth, 'фил' = 'Московский филиал' AND 'фил' = 'Тверь')

Возвращает количество записей показателя «А» по Московскому и Тверскому филиалам в шаге периода месяц за период начиная с 01 января 2014

F.COUNT([А, B])

Возвращает количество элементов в массиве - 2

8. ANALITCOUNT и ANALITCOUNTBASE (функция F.ANALITCOUNT возвращает количество значений справочника показателя)

Описание

Функция F.ANALITCOUNT возвращает количество значений справочника показателя

Функция F.ANALITCOUNTBASE возвращает количество значений справочника в базовом показателе

Ограничения функции ANALITCOUNTBASE:

- в случае использования этой функции, формула не должна содержать другие функции

- в расчётном показателе может быть всего одна переменная, являющаяся базовым показателем

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

Синтаксис

F.ANALITCOUNT(<показатель>, <справочник>), F.ANALITCOUNTBASE(<показатель>, <справочник>)

  • показатель – код переменной
  • справочник – код справочника, по которому подсчитывается количество значений справочника в данных показателя

Пример

F.ANALITCOUNT (А, 'Сотрудники')

Возвращает количество сотрудников по показателю «А» за период отчета.

9. PERIODNUMBER (функция F.PERIODNUMBER возвращает номер рассчитываемого в данный момент шага)

Описание

Функция F.PERIODNUMBER возвращает номер рассчитываемого в данный момент шага

Синтаксис

F.PERIODNUMBER(REP.BYREPORT | REP.BYCURRENT)

  • REP.BYCURRENT - возвращает номер шага в шаге периода рассчитываемого показателя,
  • REP.BYREPORT - возвращает номер шага в шаге периода отчета.

Пример

F.PERIODNUMBER(rep.byreport)

Для отчета за год с шагом периода квартал по расчетному показателю с шагом периода месяц будет возвращать последовательно 1, 2, 3, 4

F.PERIODNUMBER (rep.bycurrent)

Для отчета за год с шагом периода квартал по расчетному показателю с шагом периода месяц1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

10. REPORTSTEP (функция F.REPORTSTEP возвращает одно из значений констант REP.EVERY*, которое соответствует текущему шагу периода показателя или отчета)

Описание

Функция F.REPORTSTEP возвращает одно из значений констант REP.EVERY*, которое соответствует текущему шагу периода показателя или отчета

Синтаксис

F.REPORTSTEP({<показатель>})

  • показатель – код переменной

Пример

f.if (F.REPORTSTEP(А) = rep.everymonth, 1, 2)

Возвращает для показателя «А» с шагом месяц - 1, для показателя с другим шагом - 2.

F.REPORTSTEP(А)

Возвращает шаг показателя «А»

день – 4

неделя – 5

месяц – 6,

квартал – 7

полугодие – 8

год – 9

F.REPORTSTEP

Возвращает шаг отчета (4 – 9)

11. PREVVALUE (функция F.PREVVALUE возвращает значение показателя, взятое в шаге периода показателя на заданное число шагов назад)

Описание

Функция F.PREVVALUE возвращает значение показателя, взятое в шаге периода показателя на заданное число шагов назад

Синтаксис

F.PREVVALUE(<показатель>, int <выражение>)

  • показатель – переменная, для которой возвращается значение за предыдущий период
  • выражение – количество шагов в шаге периода показателя;

Пример

F.PREVVALUE (А, 1)

Возвращает значение, равное переменной «A» за предыдущий период.

F.PREVVALUE (А, 2)

Возвращает значение, равное переменной «A» за период, предшествующий предыдущему.

12. PREVVALUETHIS (функция F.PREVVALUETHIS возвращает значение текущего показателя, взятое в шаге периода показателя на заданное число шагов назад)

Описание

Функция F.PREVVALUETHIS возвращает значение текущего показателя, взятое в шаге периода показателя на заданное число шагов назад

Синтаксис

F.PREVVALUETHIS(int <выражение>)

  • выражение – количество шагов в шаге периода показателя;

Пример

А + F.PREVVALUETHIS (1)

Возвращает сумму значений показателя «A» за текущий и предыдущий период.

 

А + F.PREVVALUETHIS (2)

Возвращает сумму значений показателя «A» за текущий период и период, предшествующий предыдущему.

 

f.if (F.MONTH (F.REPORTDATE (rep.byreport)) = 1, A, f.if ( F.PERIODNUMBER (rep.bycurrent) <= 0, 0, f.if ( F.PERIODNUMBER (rep. bycurrent) = 1, F.SUM( A , F.DATE (01, 01,F.YEAR(F.REPORTDATE (rep.byreport)) ), F.TODAY(0, rep.byend), rep.everymonth), A + F.PREVVALUETHIS (1))))

Возвращает значение, равное переменной «A» за предыдущий период для расчета суммы нарастающим итогом с начала года.

13. VALPOSTAB (функция F. VALPOSTAB возвращает значение показателя по номеру отсортированного списка в разрезе аналитического справочника)

Описание

Функция F. VALPOSTAB возвращает значение показателя по номеру отсортированного списка в разрезе аналитического справочника

Синтаксис

F. VALPOSTAB (<показатель>, ‘<код справочника>', <позиция>, <направление сортировки>)

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

Любое синтаксически верное выражение, которое возвращает число в диапазоне от 1 до количества элементов, попавших под расщепление по справочнику, т.е. от 1 до F.AnalitCount() по тому же справочнику.

При любых других значениях функция возвращает 0.

Если при расщеплении по справочнику список значений пуст, т.е. F.AnalitCount() = 0, то функция также возвращает 0. Позиция - номер позиции, из которой необходимо вернуть значение, расщепленное по справочнику

  • направление сортировки - true (или 1) - сортировать по возрастанию значений, false (или 0) - сортировать по убыванию значений

Пример

F. VALPOSTAB (A, ‘ОргСтруктура', 3, 1)

Для Базового показателя, связанного с переменной А, у которого есть значения по справочнику «ОргСтруктура»:

15 - Энергоблок 1, 

20 - Энергоблок 2,  

10 - Энергоблок 3,

указанная функция вернет значение позиции 3 отсортированного списка значений:

10 - Энергоблок 3

15 - Энергоблок 1

20 - Энергоблок 2

Т.е. результат работы функции будет равен 20.

14. GETREFVALUE (функция F.GETREFVALUE осуществляет поиск элемента в указанном поле справочника)

Описание

Функция F.GETREFVALUE осуществляет поиск элемента в справочнике по образцу в первом указанном поле. В случае успеха возвращает значение из второго поля иначе 0.

Синтаксис

F.GetRefValue (<справочник>, <поле справочника>, <образец>, <поле справочника>)

  • справочник – строка с кодом справочника
  • поле справочника – строка с идентификатором поля справочника
  • образец – образец для поиска
  • поле справочника – строка с идентификатором поля справочника

Пример

F.GetRefValue ('БюджетныйСрез', 'Code', '5206463403', 'DocID')

Записывает в ссылочное поле на справочник «БюджетныйСрез» в данных показателя ссылку на значение справочника '5206463403' 

 

F.GetRefValue ('Распорядитель', 'DocID', Затраты.Распорядитель, 'DocID')

Вычисляет значение ссылочного поля на справочник «Распорядитель» Базового показателя по значению ссылочного поля на этот же справочник «Распорядитель» в справочнике «Затраты» 

 

F. GetRefValue ('Распорядитель', 'Code', Затраты.Распорядитель, 'DocID')

Вычисляет значение справочника «Распорядитель» Базового показателя по строковому полю «Распорядитель» справочника «Затраты» 

 

F.GetRefValue ('Проценты','DocID', f.matrixrefvalue ('ДСС') , 'Name')

Записывает в строковое поле Базового показателя наименование значения справочника «Проценты», вычисленного с помощью Динамического списка\Справочник с кодом "ДСС"

 

F.GetRefValue ('Период', 'Code', F.Str(F.Year(DateOper)) +'.'+ F.Str(f.if(F.Month(DateOper)> 6, 2, 1)) +'.'+ F.Str(f.if(F.Month(DateOper)< 4, 1, f.if(F.Month(DateOper)< 7, 2, f.if(F.Month(DateOper)< 10, 3, 4)))) +'.'+ F.Str(F.Month(DateOper))  , 'DocID')

Вычисляет значение ссылочного поля на системный справочник «Период» в данных показателя по дате значения показателя. 

15. MATRIXREFVALUE (функция F.MATRIXREFVALUE возвращает значения справочника, вычисленного по аналитическому ключу из версии Матрицы преобразования («Динамический список\Справочник» или «Динамический список\Число»)

Описание

Функция F.MATRIXREFVALUE возвращает значения справочника, вычисленного по аналитическому ключу из версии матриц типов «Динамический список\Справочник» и «Динамический список\Число» на дату.

Синтаксис

F.MATRIXREFVALUE (<матрица>{, <дата>})

  • матрица – строка с кодом матрицы преобразования типа «Динамический список \Справочник» или «Динамический список\Число»
  • дата – необязательное поле с датой, на которую берется версия матрицы (если не задано, то берется значение даты из поля DateOper)

Пример

F.MatrixRefValue ('БюджетныйСрез')   или   F.MatrixRefValue ('БюджетныйСрез', DateOper)

Записывает в данные показателя в ссылочное поле на справочник «Бюджетный срез» ссылку на значение справочника, которое будет вычислено по матрице преобразования с кодом «БюджетныйСрез» на дату значения показателя

Функции для строковых значений

1. DATESTR (функция F.DATESTR возвращает строковое представление даты)

Описание

Функция F.DATESTR возвращает строковое представление даты

Синтаксис

F.DATESTR(int <дата>, REP.EVERY*)

  • дата – дата, которую нужно преобразовать в строку
  • REP.EVERY*- константа соответствующего шага периода (по умолчанию используется шаг периода отчета).

Пример

F.DATESTR(20141231, rep.everysecond)

Возвращает '2014.12.31 00:00:00'

F.DATESTR(20141231, rep.everyminute)

Возвращает '2014.12.31 00:00'

F.DATESTR(20141231, rep.everyhour)

Возвращает '2014.12.31 00:00'

F.DATESTR(20141231, rep.everyday)

Возвращает '2014.12.31'

F.DATESTR(20141231, rep.everyweek)

Возвращает '2014 53 нед'

F.DATESTR(20141231, rep.everymonth)

Возвращает '2014.12'

F.DATESTR(20111231, rep.everyquarter) -- '2011 04 кв'

Возвращает '2014.12'

F.DATESTR(20111231, rep.everyhalf)

Возвращает '2011 02 пе'

F.DATESTR(20111231, rep.everyyear)

Возвращает '2011'

Пример применения функции

Рассмотрим показатель А, в котором 12 значений по справочнику "Период" за 2011 год от "2011.01; 2011 01 кв" до "2011.12; 2011 04 кв".

Допустим, данные этого показателя введены в апреле и помечены справочником "Период", как данные за февраль.

Тогда для того, чтобы отразить приход по показателю за прошлый период, напишем формулу для расчетного показателя:

F.SUM (А, F.REPORTDATE (rep.bystart), F.REPORTDATE (rep.byend), rep.byreport, 'Период' like ('*' + F.DATESTR (F.DATEADD (F.TODAY(0, rep.byend), -2, F.REPORTSTEP, rep.byend) , F.REPORTSTEP) + '*'))

Если график строится по расчетному показателю за 2011 год с шагом периода «Месяц», то приведение формулы для расчета каждого шага будет выглядеть так:

F.SUM(A, 20110101, 20111231, rep.everymonth, 'Период' like '*2010.11*'))

Возвращает 2011.01.01 - 2011.01.31

F.TODAY(0, rep.byend)

Возвращает 2011.01.31

F.DATEADD(2011.01.31, -2, rep.everymonth, rep.byend)

Отнимает 2 месяца и выравнивает дату на конец месяца - 2010.11.30

F.DATESTR(2010.11.30, rep.everymonth)

Возвращает ‘2010.11'

F.SUM(A, 20110101, 20111231, rep.everymonth, 'Период' like '*2010.12*'))

Возвращает 2011.02.01 - 2011.02.28

F.TODAY (0, rep.ByEnd)

Возвращает 2011.02.28

F.DATEADD (2011.01.31, -2, rep.everymonth, rep.byend)

Отнимает 2 месяца и выравнивает дату на конец месяца - 2010.12.31

F.DATESTR(2010.11.30, rep.everymonth)

Возвращает ‘2010.12'

F.SUM (A, 20110101, 20111231, rep.everymonth, 'Период' like '*2011.01*'))

Возвращает 2011.03.01 - 2011.03.31

F.SUM (A, 20110101, 20111231, rep.everymonth, 'Период' like '*2011.10*'))

Возвращает 2011.12.01 - 2011.12.31

 

При укрупнении того же показателя до шага периода «Квартал», приведение формулы будет выглядеть так:

F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Период' like '*2010 03 кв*')

Возвращает 2011.01.01 - 2011.03.31

F.TODAY (0, rep.byend)

Возвращает 2011.03.31

F.DATEADD(2011.03.31, -2, rep.everyquarter, rep.byend)

Отнимает 2 квартала и выравнивает на конец квартала - 2010.09.30

F.DATESTR(2010.09.30, rep.everyquarter)

Возвращает '2010 03 кв'

F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Период' like '*2010 04 кв*')

Возвращает 2011.04.01 - 2011.06.30

F.TODAY (0, rep.byend)

Возвращает 2011.06.30

F.DATEADD (2011.06.30, -2, rep.everyquarter, rep.byend)

Отнимает 2 квартала и выравнивает дату на конец квартала -- 2010.12.31

F.DATESTR(2010.12.31, rep.everyquarter)

Возвращает '2010 04 кв'

F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Период' like '*2011 01 кв*'))

Возвращает 2012.01.01 - 2011.03.31

F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Период' like '*2011 02 кв*'))

Возвращает 2012.04.01 - 2011.06.30

2. STRINDEXOF (функция F.STRINDEXOF возвращает индекс начала искомой строки, содержащейся в другой строке)

Описание

Функция F.STRINDEXOF возвращает индекс начала искомой строки (параметр 1), содержащейся в строке (параметр 2). Индексация строки начинается с единицы.

Синтаксис

F.STRINDEXOF(string <выражение1>, string <выражение2>)

  • Выражение1 – искомая строка
  • Выражение2 – строка, в которой производится поиск

Нельзя использовать в качестве следующие символы: %, _ , [ ] , ^

Пример

F.STRINDEXOF('(', '10 (100%)')

Возвращает значение 4

3. SUBSTR (функция F.SUBSTR возвращает строку, содержащуюся в строке от заданной позиции до заданной длины)

Описание

Функция F.SUBSTR возвращает строку, содержащуюся в строке (параметр 1) от заданной позиции (параметр 2) до заданной длины (параметр 3)

Синтаксис

F.SUBSTR(string <выражение1>, int <выражение2>, int <выражение3>)

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

          Нельзя использовать следующие символы: %, _ , [ ] , ^

Пример

F.SUBSTR('10 (100%)', 5, 3)

Возвращает значение 100

F.SUBSTR(Пушкин Александр Сергеевич'; 0 ; f.strindexof( ' ' ; Пушкин Александр Сергеевич))

Возвращает значение 'Пушкин'

4. STRUBSTR (функция F.STRUBSTR возвращает строку до заданной строки)

Описание

Функция F.STRUBSTR возвращает строку (параметр 1) до заданной строки (параметр 2)

Данная функция используется только в Мастере настройки сценариев импорта

Синтаксис

F.STRUBSTR (string <выражение1>, string <выражение2>)

  • выражение1 – строка, до которой производим вырезание
  • выражение2 – строка, из которой производим вырезание

          Нельзя использовать следующие символы: %, _ , [ ] , ^

Пример

F.STRUBSTR ( ',' , 'Тюмень, ул.Ленина 100' )

Возвращает значение Тюмень

5. STRFMTTMPL (функция F.STRFMTTMPL дополняет строку символами до заданного формата)

Описание

Функция F.STRFMTTMPL дополняет символами строку (параметр 2) до строки в заданном формате (параметр 1)

Данная функция используется только в Мастере настройки сценариев импорта

Синтаксис

F.STRFMTTMPL (string <выражение1>, string <выражение2>)

  • выражение1 – строка в заданном формат
  • выражение2 – строка для преобразования в заданный формат

          Нельзя использовать следующие символы: %, _ , [ ] , ^

Пример

F.STRFMTTMPL( '00000' , '123' )

Возвращает значение '00123'

6. SUBSTRBETW (функция F.SUBSTRBETW возвращает строку, содержащуюся в строке между строками)

Описание

Функция F.SUBSTRBETW возвращает строку, содержащуюся в строке (параметр 1) между строкой (параметр 2) и строкой (параметр 3)

Данная функция используется только в Мастере настройки сценариев импорта

Синтаксис

F.SUBSTRBETW(string <выражение1>, string <выражение2>, string <выражение3>)

  • выражение1 – строка, от которой производим вырезание
  • выражение2 – строка, до которой производим вырезание;
  • выражение3 – строка, из которой производим вырезание
  • Нельзя использовать следующие символы: %, _ , [ ] , ^

Пример

F.SUBSTRBETW (',', ',', 'Тюмень, ул.Ленина 100, кв.99')

Возвращает значение 'ул.Ленина 100'

F.SUBSTRBETW ('ATM', ',', 'банкомат ATM2345, отделение №1')

Возвращает значение '2345'

Дополнительные функции Мастера настройки сценариев импорта

1. STR (функция F.STR возвращает строковое представление числа)

Описание

Функция F.STR возвращает строковое представление числа

Синтаксис

F.STR(float <выражение>)

  • выражение – выражение, которое необходимо преобразовать в строку

2. STRDATE (функция F.STRDATE возвращает строковое представление даты)

Описание

Функция F.STRDATE возвращает строковое представление даты.

Синтаксис

F.STRDATE(float <выражение>)

  • выражение - выражение, которое необходимо преобразовать в строку

3. LTRIM (функция F.LTRIM удаляет в строке пробелы слева)

Описание

Функция F.LTRIM удаляет в строке пробелы слева

Синтаксис

F.LTRIM(string <выражение>)

  • выражение – строка, в которой необходимо обрезать пробелы слева

4. RTRIM (функция F.RTRIM удаляет в строке пробелы справа)

Описание

Функция F.RTRIM удаляет в строке пробелы справа

Синтаксис

F.RTRIM (string <выражение>)

  • выражение – строка, в которой необходимо обрезать пробелы справа

5. TRIM (функция F.TRIM удаляет в строке пробелы слева и справа)

Описание

Функция F.TRIM удаляет в строке пробелы слева и справа

Синтаксис

F.TRIM(string <выражение>)

  • выражение – строка, в которой необходимо обрезать пробелы слева и справа

6. HI (функция F.HI переводит значение строки в верхний регистр)

Описание

Функция F.HI переводит значение строки в верхний регистр

Синтаксис

F. HI (string <выражение>)

  • выражение – строка, значения которой необходимо перевести в верхний регистр

7. LO (функция F.LO переводит значение строки в нижний регистр)

Описание

Функция F.LO переводит значение строки в нижний регистр

Синтаксис

F.LO (string <выражение>)

  • выражение – строка, значения которой необходимо перевести в нижний регистр

8. REPLACE (функция F.REPLACE заменяет значение в строке)

Описание

Функция F.REPLACE заменяет в строке (параметр 1) первое значение (параметр 2) на второе значение (параметр 3)

Синтаксис

F.REPLACE(string < выражение1>, string < выражение2>, string < выражение3>)

  • выражение1 – строка, в которой происходит замена
  • выражение2 – заменяемая строка/значение
  • выражение3 – строка/значение, на которое производится замена

9. GROUPSUM (функция F.GROUPSUM осуществляет суммирование значений указанного числового поля по указанной группировке полей)

Описание

Функция F.GROUPSUM осуществляет суммирование значений указанного числового поля по указанной группировке полей. Указание группировки полей является необязательным, в этом случае будет взята сумма по всему набору данных

Синтаксис

F.GROUPSUM(float <выражение>, { <аргумент1>, ..., <аргументN>})

  • выражение1 – числовое поле, значения которого суммируются
  • необязательный параметр группировки полей, по которой осуществляется суммирование

Пример

Для суммирования значений поля «Сумма» с группировкой по полям «Параметр1» и «Параметр2» функция будет иметь следующий вид:

Сумма

Параметр1

Параметр2

F.GROUPSUM (Сумма, Параметр1)

F.GROUPSUM (Сумма, Параметр1, Параметр2)

15

П1

П21

25

45

20

П1

П22

20

45

10

П1

П21

25

45

 

10. F.TSUM (функция F.TSUM осуществляет суммирование значений указанного числового поля по указанному условию)

Описание

Функция F.TSUM осуществляет суммирование значений указанного числового поля по указанному условию. Указание условия не является необязательным, в этом случае будет взята сумма всех значений перечисленных полей.

Синтаксис

F.TSUM(float <выражение>{,float <выражение1>, ..., float <выражениеN>})

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

Пример

Для суммирования:

- значений поля «А» (4),

- значений полей «А» и «В» (5)

- значений поля «А», параметр которого «П1» (6)

А

B

Параметр

F. TSUM (A)

F. TSUM (A, B)

F. SUM ( F.IF (Параметр = 'П1' , А, 0)

1 2 3 4 5 6

15,00

1,00

П1

45,00

51,00

25,00

20,00

2,00

П

45,00

51,00

25,00

10,00

3,00

П1

45,00

51,00

25,00

 

11. F.DIST (функция F.DIST распределения с указанной точностью по значению веса)

Описание

Функция F.DIST распределения с указанной точностью (параметр 1) для заданной суммы (параметр 2) по значению веса (параметр 3)

Синтаксис

F.DIST (int <выражение1>, float <выражение2>, float <выражение3>)

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

Пример

В вычислимом поле (4) рассчитывается доля кол-ва сотрудников каждого отдела (1) в общем количестве сотрудников компании (3).

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

Необходимо вычислить дельту между 1 и полученной суммой (4) и распределить ее пропорционально на каждое построчное значение (4).

 

А

Параметр

F. TSUM (A)

А/B

F.DIST(5, 1, А/B )

  1 2 3 4 5

 

20,00

Отдел 1

11 565,00

0,00177746178…

0,00177746178…

 

5,00

Отдел 2

11 565,00

0,00044436544…

0,00044436544…

 

Отдел N

11 565,00

Сумма

11 565,00

 

 

0,99….

1,00000

 
Функция F.DIST(5, 1, А/B ) вычислит сумму значений А/B сравнит ее с 1 и недостающую разницу пропорционально распределит по строкам (5). Сумму значений (5) сравнит с 1. Если полученная сумма (5) с точностью 5 знаков после запятой не достигнет нужной 1, то вычислит разницу и снова пропорционально распределит ее построчно. И т.д. пока полученная сумма значений (5) не будет равна 1
 

Дополнительные функции Карт KPI

1. VARISENABLED (функция F.VARISENABLED возвращает ИСТИНА, если указанная переменная из строки, включенной в расчет карты KPI. Иначе - ЛОЖЬ)

Описание

Функция F.VARISENABLED возвращает ИСТИНА, если указанная переменная из строчки, включенной в расчет карты KPI. Иначе - ЛОЖЬ

Синтаксис

F.VARISENABLED(<переменная>)

  • переменная – переменная ячейки Карты KPI 

Пример

F.VARISENABLED(<H1>)

Возвращает 1 (истина), если переменная из строки, участвующей в расчете.

Иначе, возвращает 0 (ложь).

Параметры

REP.EVERYYEAR

– шаг периода год

REP.EVERYHOUR

– шаг периода час

REP.BYCURRENT

– текущий шаг периода

REP.EVERYDAY

– шаг периода день

REP.BYSTART

– начало периода

REP.BYEND

– конец периода

REP.BYREPORT

– шаг периода отчета

REP.EVERYWEEK

– шаг периода неделя

REP.EVERYHALF

– шаг периода полугодие

REP.EVERYQUARTER

– шаг периода квартал

REP.EVERYMINUTE

– шаг периода минута

REP.UNKNOWN

– неизвестный шаг периода

REP.EVERYSECOND

– шаг периода секунда

REP.EVERYMONTH

– шаг периода месяц