Пользовательские функции и методы позволяют расширить возможности выражения за счёт использования пользовательских методик расчёта. Пользовательские функции доступны для использования:
в мастере функций в инструменте «Отчёты»;
в редакторе формул в инструменте «Алгоритмы расчёта»;
в методах расчёта вычисляемых рядов в инструменте «Анализ временных рядов»;
в методах расчёта моделей в инструменте «Моделирование и прогнозирование».
По умолчанию пользовательские функции не подключены к инструментам. Для использования пользовательских функций надо вводить их в выражение вручную каждый раз. Продукт «Форсайт. Аналитическая платформа» позволяет подключить пользовательские функции к системным функциям одновременно во всех вышеперечисленных инструментах.
Примечание. Подключение пользовательских функций доступно пользователям, состоящим в группе «Администраторы».
Например, в редакторе выражения пользовательские функции отображаются на панели функций в категории «Пользовательские функции»:

Для подключения пользовательских функций используйте вкладку «Методы» в разделе «Пользовательские метаданные» окна «Параметры». Все методы, добавленные на данной вкладке, будут подключены в раздел пользовательских функций в инструментах продукта «Форсайт. Аналитическая платформа».


На вкладке «Методы» содержатся пользовательские функции, разделённые по папкам. Папки - это категории, предназначенные для упорядочения и группировки функций.
Требования, предъявляемые к пользовательским функциям:
функции должны быть написаны на языке Fore, иметь модификатор Public и сохранены в текущем репозитории в виде формы, модуля или сборки Fore;
если в расчёте используются ряды данных или переменные моделирования, то они должны быть типа ITimeSeries. Для возврата значений, рассчитанных функцией, также должны использоваться данные типа ITimeSeries.
Примечание. Пользовательская функция должна иметь уникальное имя. Если при выборе модуля/сборки в нём имеется функция, имя которой совпадает с какой-либо ранее добавленной функцией или системным методом/функцией, то генерируется исключительная ситуация. Использование такого модуля/сборки будет недоступно.
Переименование
метода или категории
Настройка порядка
следования метода или категории
В качестве пользовательской функции можно использовать и функции, и методы.
Синтаксис пользовательского метода:
Sub MyFunc(Factor1, Factor2: ITimeSeries; Var Output: ITimeSeries; Coef1: Double; Coef2: Double);
Begin
...
End Sub MyFunc;
Параметры метода:
Factor1, Factor2. Данные;
Output. Данные, которые будут изменены и возвращены по результатам расчёта;
Coef1, Coef2. Параметры, имеющие вещественное значение.
Синтаксис пользовательской функции:
Function MyFunc(Input, Input1: ITimeSeries; Coef: Double): ITimeSeries;
Var
Output: ITimeSeries;
Begin
...
Return Output;
End Function MyFunc;
Параметры функции:
Input, Input1. Данные;
Coef. Параметр, имеющий вещественное значение;
Output. Переменная, возвращающая результат расчёта функции.
См. также: