Имя: Пароль:
1C
1С v8
Параметры функций передаются по ссылке?
0 CMblCL
 
09.02.16
07:47
Всегда ли и все ли параметры передаются в процедуры/функции по ссылке?
1 George Wheels
 
09.02.16
07:50
Знач
2 фобка
 
09.02.16
08:46
Зависит от типа, поэтому не всегда
3 Ma3eIIa
 
09.02.16
08:55
(0) молодой человек. а вы ООП знаете ?
4 ДенисЧ
 
09.02.16
09:00
нет. Не всегда и не все.
5 ObjectRelation Model
 
09.02.16
09:01
(3) а причем тут ООП?
6 rozer76
 
09.02.16
09:23
7 rozer76
 
09.02.16
09:25
+(6) последний случай при возврате с сервера на клиент блокирует контекст -  т.е. ТЗ не измениться
8 Ma3eIIa
 
09.02.16
09:30
(5) оттуда ноги растут. это же функции и процедуры. и в них можно передать любой тип. даже НЕопределено или Null
9 rs_trade
 
09.02.16
09:31
(6) видел прогов со стажем в 10 лет которые про это не знали.
10 Остап Сулейманович
 
09.02.16
09:36
(8) Обалдеть... А без ООП процедуры и функции использовать нельзя? Или нельзя в них передавать параметры? Или без ООП нельзя передавать Null?
Как жеШ я без ООП работал со скульными запросами?
11 ObjectRelation Model
 
09.02.16
09:39
(8) такого бреда давно не слышал
12 ObjectRelation Model
 
09.02.16
09:39
(2) не зависит от типа, зависит от директивы Знач
13 Ma3eIIa
 
09.02.16
09:41
(10) я тебе о знаниях в программирование вообще в ООП, это описано нормально в теории.
бред ?
обоснуй ?
http://www.lessons1c.ru/articles/61-peredachaparametrov.html
http://xn----1-bedvffifm4g.xn--p1ai/articles/процедуры-и-функции/
14 Остап Сулейманович
 
09.02.16
09:47
(13) Извиняюсь за некрофилию. Но вот : http://turbo-basic.narod.ru/22-23.jpg
Лист 1. Колонка 2. Последние два абзаца.

Скажешь когда в Turbo Basic стал объектным - с меня пиво.
15 mikecool
 
09.02.16
09:48
(12) зависит ,еще как, смотри (6) в конце
это еще с 77
16 Яплакал
 
09.02.16
09:56
(13) (14)
http://lh6.googleusercontent.com/-MYdPTkRjiEk/AAAAAAAAAAI/AAAAAAAAAi0/E7NIlV4KxNY/photo.jpg

Есть основные признаки которые отличают объектно ориентированный язык от процедурного, и это не наличия процедур и функций )). Если вообще быть дотошным  то в объектно ориентированном языке есть методы, а процедуры и функции эт пережитки прошлого
17 George Wheels
 
09.02.16
09:59
До функционального программирования доберёмся?
18 фобка
 
09.02.16
10:02
(15) запутался человек, потерялся... Простим его
19 ObjectRelation Model
 
09.02.16
10:17
(15)(18) все там нормально, ссылка на объект либо остается неизменной, либо нет
20 фобка
 
09.02.16
10:39
(19) зависит ли от ключевого слова Знач поведение таблицы значений при передаче ее в процедуру?
21 ObjectRelation Model
 
09.02.16
10:49
(20) зависит, сравни:

Процедура Тест1(ТЗ)
  ТЗ.Очистить();
  ТЗ = Неопределено;
КонецПроцедуры

Процедура Тест2(Знач ТЗ)
  ТЗ.Очистить();
  ТЗ = Неопределено;
КонецПроцедуры

Тест1(ТЗ); //ТЗ - Неопределено
Тест2(ТЗ); //ТЗ - очищенная таблица значений
22 фобка
 
09.02.16
11:07
(21) ок, разница только в том, что тест2 не прибил ссылку, хотя и работал с ней. Т.е. передавалась все же ссылка в обоих случаях?
23 ObjectRelation Model
 
09.02.16
11:08
(22) да, ибо ссылочный тип, но вот только в одном случае ссылка вернется назад, а в другом нет
24 ObjectRelation Model
 
09.02.16
11:13
+(21) по интересней пример:

Процедура Тест1(ТЗ)
  ТЗ = ТЗ.Скопировать();
  ТЗ.Добавить();
КонецПроцедуры

Процедура Тест2(Знач ТЗ)
  ТЗ = ТЗ.Скопировать();
  ТЗ.Добавить();
КонецПроцедуры
25 фобка
 
09.02.16
11:15
(24) ну, это тоже самое

"Разница для всех типов при передаче параметра процедуры или функции по ссылке или по значению проявляется в присвоении фактическому параметру процедуры или функции нового значения. Вызов свойств и методов контекста фактического параметра, если таковые имеются, влияет на формальный параметр независимо от того, передается ли он по ссылке или по значению."


Всем спасибо, расходимся
26 ObjectRelation Model
 
09.02.16
11:17
(25) да ежу понятно, что это аналогично языкам Delphi/C#/Java
27 hhhh
 
09.02.16
11:21
(25) там не всё так однозначно. Если например передача параметра идет с клиента на сервер, он передается через сериализовать-десериализрвать. Фактически на сервере создается совершенно новый параметр из xml-строки.
28 rozer76
 
09.02.16
11:29
+ (27) http://its.1c.ru/db/v836doc#bookmark:dev:TI000000151
4.7.3. Передача параметров процедур и функций
вот сюрприз тем кто с УФ не сталкивался )
29 rozer76
 
09.02.16
11:47
+ (28) такой он клиент-сервер суровый и беспощадный )

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