Пользовательские функции в системе 1С предназначены для эффективного повторного использования кода. Они позволяют классифицировать и хранить часто используемые фрагменты кода, упрощая настройку шаблонов проводок и других операций.
Форма списка справочника содержит перечень пользовательских функций, описание выделенной функции, а также код функции с указанием типов входных параметров в виде комментария.
В случае если выделена группа функций в окне кода появляется список функций, которые эта группа содержит.
Функции создаются в справочнике "Пользовательские функции". Они являются глобальными. Пользователь имеет возможность самостоятельно определить алгоритм, который сформирует возвращаемое значение.
Главным условием, является то, что сформированное значение должно быть помещено в переменную "Результат".
В пользовательских функциях значения параметров используются для проведения проверок.
При создании пользовательской функции пользователь имеет возможность указать перечень входных параметров, их количество может быть произвольным.
Параметры и их тип хранятся в разрезе элементов, значения хранятся в разрезе пользователей.
Тип параметров - в текущим релизе реализованы типы параметров: примитивные типы, ссылочные типы, коллекции(таблица значений, список значений, массив, структура).
Допускается не указывать тип параметра, в таком случае при выборе значения параметра ограничение типа не накладывается. Существует возможность создания необязательных параметров.
Предназначены для внедрения ссылочных констант в код, обеспечивая удобное управление этими константами в рамках разработки кода.
В коде пользовательской функции допускается использование запросов. Для вызова конструктора запросов можно воспользоваться кнопкой "Конструктор запроса" на панели инструментов редактора кода или сочетанием клавиш "Ctrl + D".
В процессе написания пользовательской функции может потребоваться проверка выполнения кода. Для запуска пользовательской функции на выполнение можно воспользоваться кнопкой "Выполнить" на панели инструментов редактора кода.
Произойдет попытка исполнения кода функции в контексте общего модуля. В случае ошибки при исполнении кода, пользователю будет сообщено об этом.
Для вызова пользовательской функции из произвольного места существует функция - пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(Ссылка, Параметры)
Параметры:
Ссылка - СправочникСсылка.пбп_ПользовательскиеФункции - ссылка на выполняемую функцию;
Параметры - Структура - где ключ - имя параметра, значение - значение передаваемого параметра.
В случае если не передан обязательный параметр в структуре параметров, будет вызвано исключение, можно не передавать необязательные параметры, в таком случае их значение будет по умолчанию "Неопределено"
Пример создания пользовательской функции:
Функция УдалитьНедопустимыеСимволы(ИсходнаяСтрока) // Формируется на основании наименования элемента справочника и параметров
НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»";
Результат = СтрСоединить(СтрРазделить(ИсходнаяСтрока, НедопустимыеСимволы, Истина));
Возврат Результат; // Установлен автоматически, отдельно прописывать не нужно
КонецФункции // Установлен автоматически, отдельно прописывать не нужно
Пример вызова пользовательской функции:
Функция ПолучитьВалиднуюСтроку(СсылкаНаПользовательскуюФункцию, Имя)
ИмяБезПробелов = СтрЗаменить(Имя, " ", "");
ПараметрыФункции = Новый Структура;
ПараметрыФункции.Вставить("ИсходнаяСтрока", ИмяБезПробелов);
Результат = пбп_ОбщегоНазначенияСервер.ВыполнитьПользовательскуюФункциюСПараметрами(СсылкаНаПользовательскуюФункцию, ПараметрыФункции);
Возврат Результат;
КонецФункции