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

Вид закладки “Функции”
Внешний вид
Заголовок раздела «Внешний вид»Форма закладки “Функции” разделена на 2 части:
- левая сторона: список функций и параметров
- правая сторона: консоль кода функции
Для добавления новой функции необходимо нажать кнопку Добавить над левой верхней таблицей. После добавления новой строки, необходимо ввести имя функции. При необходимости в левой нижней таблице могут быть добавлены параметры, которые будут переданы в функцию для применения.
Пример использования
Заголовок раздела «Пример использования»Представим, что в процессе реализации печатной формы нам понадобилась коллекция, в которой будут хранится различные настройки, которые мы будем передавать для использования в другие алгоритмы.
Добавим строку в таблицу функций и назовем метод ПараметрыДокумента. Дополнительно можно дописать краткое описание назначения метода. Чтобы в будущем можно было быстро понять, для чего он сделан (или где используется).
В качестве параметра метод будет получать параметры:
- СтрокаШапки (Неопределено) - с данными документа, для которого будут формироваться параметры
- ВалютаРегУчета (СправочникСсылка.Валюты) - валюта регламентированного учета текущей конфигурации
Сам метод будет иметь следующий код:
Настройки = Новый Структура;Настройки.Вставить("Документ" , СтрокаШапки.Ссылка);Настройки.Вставить("ДатаДокумента" , СтрокаШапки.Дата);Настройки.Вставить("НомерДокумента" , СтрокаШапки.Номер);Настройки.Вставить("Организация" , СтрокаШапки.Организация);Настройки.Вставить("СуммаДокумента" , СтрокаШапки.СуммаДокумента);Настройки.Вставить("ДокументВВалюте" , СтрокаШапки.ВалютаДокумента <> ВалютаРегУчета);Настройки.Вставить("ВалютаРегУчета" , ВалютаРегУчета);
Настройки.Вставить("Курс" , 1);Настройки.Вставить("Кратность" , 1);
Настройки.Курс = ЗаполнениеДокументов.КурсДокумента(СтрокаШапки.Ссылка, ВалютаРегУчета);Настройки.Кратность = ЗаполнениеДокументов.КратностьДокумента(СтрокаШапки.Ссылка, ВалютаРегУчета);При необходимости получения результата вычисления из функции необходимо выполнить одно из двух:
- Возвращаемое значение присвоить переменной Результат. Например:
Результат = Настройки; - Вызвать Возврат и указать переменную, которую требуется вернуть. Например:
Возврат Настройки;
Вызов функции в алгоритме
Заголовок раздела «Вызов функции в алгоритме»Например, данный метод мы будем вызывать при обработке набора данных Шапка. Для этого на закладке “Наборы” активируем необходимый набор данных и в поле алгоритма (справа в нижней части) мы можем вызвать функцию, выполнив следующий код:
ВалютаРегУчета = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета();
Для Каждого СтрокаШапки Из ДанныеЗапроса Цикл ПараметрыДокумента = ЭтотМакет.ВыполнитьФункцию(ЭтотМакет.Функции.ПараметрыДокумента, СтрокаШапки, ВалютаРегУчета);
// далее мы уже можем использовать ПараметрыДокумента по необходимостиКонецЦикла;Кроме прямого указания параметров при вызове функции, их можно указать при помощи структуры. При этом структуру может подготовить специальный метод ЭтотМакет.ПараметрыФункции(). Например:
ПараметрыМетода = ЭтотМакет.ПараметрыФункции(ЭтотМакет.Функции.ПараметрыДокумента);ПараметрыМетода.СтрокаШапки = СтрокаШапки;ПараметрыМетода.ВалютаРегУчета = ВалютаРегУчета;
ЭтотМакет.ВыполнитьФункцию(ЭтотМакет.Функции.ПараметрыДокумента, ПараметрыМетода);Доступность функций
Заголовок раздела «Доступность функций»Функции могут быть вызваны в любых алгоритмах. Кроме того, функцию можно вызывать в самой себе. Таким образом выполнять рекурсивный вызов.