Имя: Пароль:
1C
1С v8
Ламмерский вопрос по Возврат из функци
,
0 Stagor
 
08.01.12
16:14
Функция ....


Возврат Запрос1.Выполнить().Выгрузить();

---
возврат будет с копированием ТЗ или только по ссылке?
1 Ненавижу 1С
 
гуру
08.01.12
16:15
по ссылке
2 Stagor
 
08.01.12
16:16
(1) Я то же так думаю, а проверить, как то реально?
3 Escander
 
08.01.12
16:18
Возвращаются целиком только примитивные типы, как и при выполнении присваивания.
4 Rie
 
08.01.12
16:18
(2) Присвой чему-нибудь и верни это что-нибудь. Вот и проверишь, что происходит при возврате.
Но в данном случае - а не по фиг ли? "Поэма "Илиада" была написана не Гомером, а другим греком, носившем то же имя"
5 Stagor
 
08.01.12
16:23
(3) Надеюсь, что так!
(4) Не по-фиг, так как размер таблицы может быть большим, и создание её копии неразумным. В отличии от "Знач" в параметрах, на счет "Возврат"-а ничего в документации не сказано!
6 echo77
 
08.01.12
16:32
Знач тоже только для примитивных типов: проверял на табличном документе - в функцию/процедуру передается ссылка и после всех махинаций в функции/процедуре все изменения над табличным документом будут видны в фактическом параметре
7 Злопчинский
 
08.01.12
16:40
мну всегда интересовало - если ТЗ инициализируется внутри функции - локальная переменная функции. потом Возврат ТЗ; - после выхода из функции локальные переменные функции уничтожаются - а ТЗ - остается?
8 Упанишады
 
08.01.12
16:45
(7)В каком-нибудь С++ ты должен был знать и помнить про эти моменты. А если забудешь, то программа может зависнуть. Спасибо языкам высокого уровня типа 1С за то, что освобождают нас от необходимости знать ответы на подобные вопросы.
9 Rie
 
08.01.12
16:46
(7) Сборщик мусора отслеживает, используется объект или нет.
Если не используется - рано или поздно прибьёт его.
10 Stagor
 
08.01.12
16:48
(8) типа Java.
11 Escander
 
08.01.12
16:51
(9) как вариант тупо подождать 20 мин - за это время сборщик мусора гарантированно перешерстит всё что нужно.
12 DmitrO
 
08.01.12
18:05
(9)Нет там никакого сборщика мусора, там простой счетчик ссылок на стандартном IUnknown.
При возврате из функции значения объектного типа, сначала происходит запись указателя на интерфейс в неявную переменную, которая принадлежит вызывавшей функцию области видимости (при этом количество ссылок на объект увеличивается). И только потом происходит освобождение стекового кадра (локальных переменных) функции, при этом объект не уничтожается т.к. счетчик не равен нулю.
13 acsent
 
08.01.12
18:40
(12) Я думаю 90% не поняли ни одного слова
14 Rie
 
08.01.12
18:41
(13) Я думаю, те, кого интересует - поняли.
15 acsent
 
08.01.12
18:42
ну тс явно ничего не понял ))
16 DmitrO
 
08.01.12
18:45
(13)я готов писать для оставшихся 10% :)
Где в настройках форума поставить флажок, чтобы я мог и читать только темы этих 10%?
18 Escander
 
08.01.12
19:33
троля из (17) ктонибудь замочит(и его посты потрёт)?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший