|
Как передать в процедуру переменную по значению, а не по ссылке? Ø (Rie 05.09.2013 16:25) | ☑ | ||
---|---|---|---|---|
0
Капюшон
05.09.13
✎
16:02
|
Иными словами как сделать, чтоб после завершения работы процедуры, значение переменной, передаваемое в процедуру в качестве параметра, стало таким, как до вызова.
В С++ для этого существуют ссылки и указатели. А как это в 1С реализовано? Процедура ДобавьМеня(Переменная) Переменная="Пока!"; КонецПроцедуры Процедура КнопкаВыполнитьНажатие(Кнопка) Перем Добавка; Добавка="Привет!"; ДобавьМеня(Добавка); Сообщить(Добавка); КонецПроцедуры |
|||
1
giallo
05.09.13
✎
16:03
|
Знач
|
|||
2
Maxus43
05.09.13
✎
16:03
|
ДобавьМеня(ЗНАЧ Переменная)
|
|||
3
Maxus43
05.09.13
✎
16:04
|
Процедура ДобавьМеня(Знач Переменная)
естественно, а не при вызове процедуры |
|||
4
giallo
05.09.13
✎
16:05
|
ну и из СП
"По умолчанию параметры методов, процедур и функций передаются по ссылке, то есть изменение внутри процедуры или функции значения формального параметра ведет к изменению значения соответствующего фактического параметра. При передаче параметра по значению изменение значения формального параметра никак не влияет на фактический параметр вызова процедуры. Для указания того, что тот или иной параметр следует передавать по значению, следует в исходном тексте процедуры или функции перед именем параметра записать ключевое слово Знач." |
|||
5
Ненавижу 1С
гуру
05.09.13
✎
16:05
|
сейчас он туда передаст массив, изменит его размер, и скажет, что фигня ))
|
|||
6
Капюшон
05.09.13
✎
16:07
|
(3)(4)очень хорошо что это есть. а теперь главный вопрос - как передать на самом деле значения списка значений туда чтоб после выхода СЗ стал как до вызова?
(5)ну почти угадал. мне нужно передать СЗ в процедуру, но чтоб после выхода из процедуры,восстановилось прежнее значение СЗ. |
|||
7
IШаман
05.09.13
✎
16:08
|
(6) В СП по этому поводу тоже написано.
|
|||
8
fisher
05.09.13
✎
16:08
|
(6) Ну, такое и в си крайне не рекомендовалось делать.
|
|||
9
Ёпрст
05.09.13
✎
16:08
|
(6) передавай в процу через скопировать
|
|||
10
Ненавижу 1С
гуру
05.09.13
✎
16:08
|
(6) НовыйСЗ = СтарыйСЗ.Скопировать();
|
|||
11
giallo
05.09.13
✎
16:09
|
(6) Список.Скопировать()
|
|||
12
ДенисЧ
05.09.13
✎
16:09
|
(6) Копируй.
Не ожидал я такого от Еврейчика... Наверное, сыроядение на мозги вредно действует... |
|||
13
Капюшон
05.09.13
✎
16:13
|
(8)У меня рекурсивная функция просто. там свой изврат.
(9)(10)(11)ну это я знал. я думал можно штатными средствами. (12)я мог бы так сделать. но вот думал может иной есть способ. Я уж на таком то уровне разбираюсь. в Си в своё время собаку съел на указателях-ссылках. |
|||
14
Ёпрст
05.09.13
✎
16:17
|
(13) в 1с-ине надо не собак есть, а грибы - быстрее усваиваются и помогают лучшему восприятию действительности.
|
|||
15
ДенисЧ
05.09.13
✎
16:18
|
(14) ТС грибы уже давно не помогают... А на более жёстких сидит...
|
|||
16
Капюшон
05.09.13
✎
16:19
|
(15)я на пятом дне голодания сейчас нахожусь... так что никаких грибов. а грибы на самом деле я мечтал попробовать после прочтения кастанеды, но так и не удалось мне найти нигде их.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |