Имя: Пароль:
1C
 
Функция и Процедура
0 YDenn
 
11.06.06
08:13
Доброе воскресенье!
Помогите разобраться. Можете в 2 словах поянить отличие функции от процедуры. Как вызвать функцию из модуля формы. Когда лучше применять функцию.

Спасибо
1 Sedoy
 
11.06.06
08:30
Основное различие в том, что при выполнениии функция возвращает значение, а процедура нет
2 YDenn
 
11.06.06
08:32
(1)Если не трудно можно пояснить на каком-нибудь примере.

Спасибо
3 Любитель XML
 
11.06.06
09:13
в типовой полно примеров
4 avmlvm
 
11.06.06
09:21
(2)

Конечно можно
Вызов процедуры имеет вид:

  ВызовПроцедуры(Параметр1, Параметр2);

Вызов функции имеет вид:

  Ответ = Функция (Параметр1, Параметр2);


Жестких границ между функциями и процедурами нет... Тут играют роль иные соображения... Ну например... если Вам по логике нужно изменить последовательность выполняемых действий, то можно использовать или

   Процедура (Параметр1, Параметр2);
   Если Параметр2 > 100 Тогда
      ..........................
   КонецЕсли;

или

  Если Функция (Параметр1) > 100 Тогда
   Если Параметр2 > 100 Тогда
      ..........................
   КонецЕсли;


Т.е. второй вариант более нагляден.. Но это не догма.


Удачи
5 YDenn
 
11.06.06
09:25
(4)Спасибо, и вам удачи.
6 DES
 
11.06.06
09:46
Скоро студентов будут учить программированию на 1С , вместо Pascal...
ЗЫ Бедный Н. Вирт ... жалко его...
7 Скользящий
 
11.06.06
09:49
(0) Использование функции обычно более наглядно и удобно для дальнейшего сопровождения, хотя это конечно не догма.
А отличается функция от процедуры по большому счету тем, что функцию можно писать после знака равенства справа, а процедуру нет. :-)
8 avmlvm
 
11.06.06
09:57
(7) "Использование функции обычно более наглядно и удобно для дальнейшего сопровождения"

Если нужно поменять "одним вызовом" несколько переменных - то функция "не наглядна и не удобна"

"отличается функция от процедуры по большому счету тем..."

Хм-м-м.. А почему у Вас в "большой счёт" например не вошло возможность использования функции в операторах сравнения? Почему "столь люьим" только оператор присвоения?
9 Скользящий
 
11.06.06
10:05
(8) Я же сказал, что это не догма. Можешь почитать Жедя "Практика программирования...", там это намного лучше написано.
А насчет возможности использования функции  в операторах сравнения ты конечно прав.
10 Прохожий
 
12.06.06
10:53
(0) Функции следует применять там, где результат работы кода носит "локальный" разовый характер. При необходимости иметь многократно используемое значение (параметр) рекомендуется объявлять его в вде самостоятельной переменной в начале модуля.
Выбирать нужно не между Процедурами и Функциями, а между областями применения в алгоритме тех или иных промежуточных значений (параметров).
11 skunk
 
12.06.06
11:00
а я подумал что это Сашка флудит
12 acsent
 
12.06.06
11:45
(0) А в С++ нет процедур
13 skunk
 
12.06.06
11:51
void function
14 acsent
 
12.06.06
12:04
А если на asm посмотреть, то все функции - это процедуры