Главная » 1С Предприятие » СТРУКТУРА ПРОЦЕДУР И ФУНКЦИЙ

0

Процедуры и  функции  имеют схожую  структуру:

Процедура | Функция Имя([[3нач] парам1 = [значение^]], …,

[[Знач] парамп  =  [значениеп]])  [Экспорт]

[неисполняемые операторы объявления переменных]

[исполняемые  операторы] КонецПроцедуры | КонецФункции

Ключевое  слово, или атрибут,  Экспорт указывается для  процедур и функций,  располагаемых в  глобальном модуле  (разд.   1.6), в  том  случае, если  их  надо  сделать  доступными для вызова в модулях  форм.

Процедуры вызываются  в  виде отдельного оператора с соблюдением  следующего синтаксиса:

Имя_процедуры([парам1], …, [парамn]);

Функции, как правило, вызываются из выражений, но могут, так же как и процедуры, вызываться в виде отдельно оператора:

Имя_функции([парам1],…, [парамп]);

Функция, если выход из нее осуществляется не в результате выполнения оператора Возврат выражение;

а по оператору КонецФункции возвращает число 0.

Функция, в которой нет оператора

Возврат выражение;

всегда возвращает нуль.

Замечание.  При программировании функции следует выходить из нее по оператору Возврат выражение;

даже  если выражение это константа нуль.  Например, функции  ф1 и ф2

функция  ф1(а)                                                   функция ф2(а)

если а > 0 тогда                                                 если а > 0 тогда возврат 2 * а;                                                     возврат 2 * а;

иначе                                                                  конецЕсли; возврат 0;                                      конецФункции // ф2

конецЕсли; конецФункции // ф1

возвращают  одинаковый   результат,  однако  вариант  с   ф1   отвечает   принятому   для функций   стилю  программирования,  чего   нельзя  сказать  о  функции   ф2.   Впрочем, в данной ситуации функцию  ф1 лучше  записать так:

функция ф1(a)

возврат ?(а > 0, 2 * а, 0); конецФункции // ф1

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

функция ф1(а)

возврат ?(а > 0, 2 * а, 0);

.конецФункции // ф1

процедура п 1 (д) далее                                  // Предварительное описание процедуры п\

процедура Выполнить() перем б;

б = 2.5 * ф1(3);  п1(б);  Сообщить(б);

конецПроцедуры // Выполнить

функция ф2(с) возврат с / 2;

конецФункции // ф2

процедура п1(д)

д = 4*ф2(д) + 5; конецПроцедуры // п1

// б= 15; функция ф1 вызывается из выражения

// б = 35; б фактический параметр процедуры п1

// д фактический параметр процедуры n1

// д = 4 * 7.5 + 5 = 35

из процедуры Выполнить  можно вызвать функцию  ф1  и  процедуру nl,  но  нельзя вызвать функцию  ф2.

Замечания:

1.      Предварительное описание процедуры (функции) должно совершенно  точно  дублировать заголовок  процедуры (функции). Так, не допускаются расхождения  имен параметров,  и  если  заголовок   процедуры (функции)  снабжен  ключевым   словом Экспорт, то оно  должно присутствовать и в тексте  предварительного  описания перед ключевым  словом Далее.  Например:

процедура п3(д1, д2) экспорт далее  // Предварительное описание процедуры пЗ

2.     Перечень имен процедур и  функций  модуля  можно просмотреть, нажав,  находясь в конфигураторе, на иконку

процедура Выполнить() ОчиститьОкноСообщений(); а=1 ;

конецПроцедуры // Выполнить

Напомним, что  формальными  параметрами  могут быть  не только  скалярные  переменные произвольного  типа,  но  и массивы (разд.  2.6).  В этом  случае  соответствующие фактические параметры также  должны  быть  массивами.

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

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии