Базовые положения
Общие объекты
Общие метаданные
Прикладные объекты
Базовые положения
Общие объекты
Общие метаданные
Прикладные объекты
Процедуры и функции используются для выделения отдельных алгоритмов, разбития кода на логические участки или для избежания дублирования кода. Функция отличается от процедуры тем, что возвращает значение.
У процедур и функций может быть сколько угодно параметров или может не быть вообще. Параметры могут быть обязательными и необязательными(в таком случае необходимо указать значения параметров по умолчанию). Обычно обязательные параметры указываются вначале, необязательные в конце.
В функцию или процедуру параметры передаются по ссылке(не создается отдельная копия, а передается ссылка на эту переменную, изменение параметра повлечет за собой изменение переменной), но если при определении процедуры/функции перед параметром указать Знач
например:
Процедура(Знач ПростоПараметр)
то в функцию будет передаваться не ссылка на переменную а ее копия. Некоторые типы значений всегда передаются по ссылке, надо найти и указать. Порядок следования процедур и функций в модуле не имеет значения. Пример определения процедуры:
Процедура Тест(ПараметрРаз, ПараметрДва = 123, ..., ПараметрN) //Указывать ПараметрДва необязательно, в таком случае он будет равен 123 КонецПроцедуры;
С некоторых пор в платформе появилась возможность документировать собственные процедуры и функции. Для этого комментарий к функции должен быть оформлен особым образом. Система подсказок платформы умеет распознавать такие комментарии. И при отображении подсказок по параметрам функции будет выводить не только имена параметров, но и их назначение.
// Возвращает начало следующего дня // // Параметры: // ТекДата - дата, относительно которой будет вычисляться дата начала следующего дня. Функция НачалоСледующегоДня(ТекДата) Возврат КонецДня(ТекДата) + 1; КонецФункции
При написании кода, использующего такую функцию, мы получим удобный комментарий.