В функциональном программировании есть такое понятие как функции первого класса (функции которые можно присваивать переменным, передавать в качестве аргументов и возвращать из функции). В 1С это также можно применять, используя небольшую вспомогательную функцию. Далее демо-пример ее использования.
&НаКлиенте
Процедура запуск(Команда)
ТекстСообщения = "Результат вычисления с функцией delta = ";
//вычислим значение константы с дельтой N*5
deltaN5 = ВычислитьЗначениеСДельтой(Константа, newFunction("deltaN5", Новый Структура("N", N)));
Сообщить(СтрЗаменить(ТекстСообщения,"delta","deltaN5") + Строка(deltaN5));
//Результат вычисления с функцией deltaN5 = 85
//вычислим значение константы с дельтой N*M
deltaNM = ВычислитьЗначениеСДельтой(Константа, newFunction("deltaNM", Новый Структура("N, M", N, M)));
Сообщить(СтрЗаменить(ТекстСообщения,"delta","deltaNM") + Строка(deltaNM));
//Результат вычисления с функцией deltaNM = 55
КонецПроцедуры
//БЛОК ОСНОВНОЙ ПРОГРАММЫ
// Функция принимает в качестве аргументов значение константы и функцию вычисления дельты
// функция выступает в роли функции высшего порядка
//
&НаКлиенте
Функция ВычислитьЗначениеСДельтой(Константа, functionDelta)
//вычисление дельты, вызов функции
Delta = callFunction(functionDelta);
//основное вычисление
Результат = Константа + Delta;
Возврат Результат;
КонецФункции // ПеремножитьЧисла()
// Функция умножает переданное в аргументе значение на 5
// функция выступает в роли функции первого класса
//
&НаКлиенте
Функция deltaN5(N)
возврат N*5;
КонецФункции // ()
// Функция перемножает значения переданные в аргументах
// функция выступает в роли функции первого класса
//
&НаКлиенте
Функция deltaNM(N, M)
возврат N*M;
КонецФункции // ()
//БЛОК ВСПОМОГАТЕЛЬНЫХ ФУНКЦИЙ
// вспомогательная функция для инициации новой функции
//
// Параметры:
// funcName - Строка - Имя функции
// arguments - Структура - структура содержащая аргументы вызываемой функции
// аргументы должны быть расположены в том же порядке как в вызываемой функции
//
// Возвращаемое значение:
// Структура - набор содержащий имя функции и ее аргументы
//
&НаКлиенте
Функция newFunction(funcName, arguments)
newFunction = Новый Структура("funcName, arguments", funcName, arguments);
Возврат newFunction;
КонецФункции // newFunction()
// вспомогательный модуль вызова функций
//
// Параметры:
// functionSet - Структура - Структура содержащая набор элементов для вызываемой функции
// funcName - Строка - Имя вызываемой функции
// arguments - Структура - структура содержащая аргументы вызываемой функции
// аргументы должны быть расположены в том же порядке как в вызываемой функции
//
// Возвращаемое значение:
// Произвольный - возвращаемое значение вызываемой функции
&НаКлиенте
Функция callFunction(functionSet)
result = Неопределено;
argumentsString = "";
Для каждого argument Из functionSet.arguments Цикл
argumentsString = argumentsString+"functionSet.arguments."+argument.Ключ+","; //раскладываем аргументы в строку
КонецЦикла;
argumentsString = Лев(argumentsString, СтрДлина(argumentsString)-1);
СтрокаДляВыполнения = СтрЗаменить("result = funcName(arguments)", "funcName", functionSet.funcName);
СтрокаДляВыполнения = СтрЗаменить(СтрокаДляВыполнения, "arguments", argumentsString);
Выполнить(СтрокаДляВыполнения);
Возврат result;
КонецФункции // func()
Обработка тестировалась на 1С:Предприятие 8.3 (8.3.13.1513)