Инструменты пользователя

Инструменты сайта


1c:база:процедуры_и_функции

Процедуры и функции

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

Параметры

У процедур и функций может быть сколько угодно параметров или может не быть вообще. Параметры могут быть обязательными и необязательными(в таком случае необходимо указать значения параметров по умолчанию). Обычно обязательные параметры указываются вначале, необязательные в конце.

Передача параметров в процедуру или функцию

В функцию или процедуру параметры передаются по ссылке(не создается отдельная копия, а передается ссылка на эту переменную, изменение параметра повлечет за собой изменение переменной), но если при определении процедуры/функции перед параметром указать Знач например:

Процедура(Знач ПростоПараметр)

то в функцию будет передаваться не ссылка на переменную а ее копия.FIXME Некоторые типы значений всегда передаются по ссылке, надо найти и указать. Порядок следования процедур и функций в модуле не имеет значения. Пример определения процедуры:

Процедура Тест(ПараметрРаз, ПараметрДва = 123, ..., ПараметрN)
	//Указывать ПараметрДва необязательно, в таком случае он будет равен 123
КонецПроцедуры;

Документирование

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

// Возвращает начало следующего дня
//
// Параметры:
//  ТекДата - дата, относительно которой будет вычисляться дата начала следующего дня.
Функция НачалоСледующегоДня(ТекДата)
    Возврат КонецДня(ТекДата) + 1;
КонецФункции

При написании кода, использующего такую функцию, мы получим удобный комментарий. FIXME

Только авторизованные участники могут оставлять комментарии.
1c/база/процедуры_и_функции.txt · Последнее изменение: 2016/10/21 07:47 — alex