|
Ламмерский вопрос по Возврат из функци | ☑ | ||
---|---|---|---|---|
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) ктонибудь замочит(и его посты потрёт)?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |