|
v7: Явное или неявное объявление переменной. Что лучше? | ☑ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
DJ Anthon
28.10.11
✎
10:31
|
Вопрос не касается общих переменных глобального модуля.
П. С. вариант 4 нужен, когда неизвестно, существует ли уже глобальная переменная с таким именем. |
||||||||||||||||
1
Godofsin
28.10.11
✎
10:33
|
Смысл варианта 4 все равно не понял
|
||||||||||||||||
2
zak555
28.10.11
✎
10:33
|
(1) синтаксический контроль ?
|
||||||||||||||||
3
DJ Anthon
28.10.11
✎
10:34
|
Мое мнение. Перекидывая алгоритмы сразу большими пачками, сталкиваешься с мелкой проблемой, что строки объявления переменных (Перем ) должны быть в начале проц или функц.
с вариантом 2 или 3 такой проблемы не возникает. А = ПолучитьПустоеЗначение(); |
||||||||||||||||
4
orefkov
28.10.11
✎
10:35
|
Православно даже не париться этим.
|
||||||||||||||||
5
DJ Anthon
28.10.11
✎
10:35
|
(1) когда подключаешь внешнюю обработку к неизвестной конфигурации, не знаешь, есть там уже проинициализированная переменная или нет. чтобы не вылететь, надо переменную объявить, но так, чтобы она не стала локальной, если она есть уже глобальная, и в то же время, случайно не затереть ее значение
|
||||||||||||||||
6
DJ Anthon
28.10.11
✎
10:37
|
(4) делаю парсинг кода процедур и функций. просто код приходится сдвигать после последнего объявления переменной, теряется наглядность. мелочи, но все же не понятно, конструкция (2) короче (1). почему бы ее не использовать в типовых?
|
||||||||||||||||
7
DJ Anthon
28.10.11
✎
10:38
|
(4) я не учу, конечно же, прогеров 1С своему уставу, просто интересно, что я еще не знаю о волшебной строчке Перем А;
|
||||||||||||||||
8
mikecool
28.10.11
✎
10:40
|
(5) использовать свои префиксы - не по религии?
|
||||||||||||||||
9
Ёпрст
28.10.11
✎
10:40
|
(5) для этого есть элементарная проверка, но в (0) ни в одном из предоставленных вариантов её нет.
|
||||||||||||||||
10
DJ Anthon
28.10.11
✎
10:43
|
(9) разве вариант 4 для этого не подходит?
|
||||||||||||||||
11
DJ Anthon
28.10.11
✎
10:43
|
(8) зачем? мне нужна именно та глобальная переменная. но ее может просто не быть. а сабж вообще не про это )
|
||||||||||||||||
12
DJ Anthon
28.10.11
✎
10:44
|
(9) какая? шаблон?
|
||||||||||||||||
13
Ёпрст
28.10.11
✎
10:45
|
(10) нет.
|
||||||||||||||||
14
qwerty09
28.10.11
✎
10:46
|
(0) Если 0 = 1 Тогда А = 1; КонецЕсли;
эквивалентно Если Ложь Тогда А = 1; КонецЕсли; то есть всегда А будет присвоено значение 1 Не понимаю к чему это. |
||||||||||||||||
15
zak555
28.10.11
✎
10:48
|
> то есть всегда А будет присвоено значение 1
???? |
||||||||||||||||
16
DJ Anthon
28.10.11
✎
10:49
|
(14) ложь в 7ке нет. А создастся, если ее нет. но будет не тронута, если есть, что непонятного? сама же миста мне это из книги знаний подсунула!
|
||||||||||||||||
17
Ёпрст
28.10.11
✎
10:49
|
и это, ты ужо спрашивал помнится об этом
http://infostart.ru/public/16943/ Как узнать о наличии определенной глобальной переменной? Чтобы не было синт. ошибки? |
||||||||||||||||
18
qwerty09
28.10.11
✎
10:51
|
(15), (16) ой, не заметил что о 7-ке речь...пардоньте
|
||||||||||||||||
19
DJ Anthon
28.10.11
✎
10:53
|
(17) сабж не про это )) про то я все выяснил
вопрос, если я вместо Перем А; буду писать А = ПолучитьПустоеЗначение(); это может вылезти каким-нибудь боком? |
||||||||||||||||
20
Voronve
28.10.11
✎
10:54
|
(14) А никогда не получит значения 1
|
||||||||||||||||
21
orefkov
28.10.11
✎
10:56
|
(19)
Ясен пень будут проблемы. Если А - переменная модуля, или глобальная, или реквизит формы. |
||||||||||||||||
22
DJ Anthon
28.10.11
✎
10:56
|
как я понял, только если нарвусь на уже объявленную где-то выше по течению переменную с названием А (в параметрах, реквизитах, глобальнике или этом же модуле). хорошо, можно ветку закрывать, всем спасибо
|
||||||||||||||||
23
DJ Anthon
28.10.11
✎
10:57
|
(21) )))))))))))))))))
(20) Кэп? |
||||||||||||||||
24
Escander
28.10.11
✎
10:58
|
Какая пятничная ветка!!!
Перем А; |
||||||||||||||||
25
orefkov
28.10.11
✎
10:59
|
+(21)
Вернее, если уже есть А - переменная модуля, или глобальная, или реквизит формы. То есть обычно локально Перем часто юзается как-раз для удобства переноса метода ЦЕЛИКОМ в другое место, чтобы гарантировать, что эта переменная будет локальной полюбому, и никаких глобальных переменных не затронет. |
||||||||||||||||
26
orefkov
28.10.11
✎
11:01
|
Так что лучше не использовать китайский способ повторного использования кода (копипастинг), а православно раскладывать все по отдельным методам.
|
||||||||||||||||
27
Godofsin
28.10.11
✎
11:01
|
(5) Прикольно. Возьму на вооружение.
|
||||||||||||||||
28
Кириллка
28.10.11
✎
11:03
|
В подавляющем большинстве случаев объявляю переменную, кроме всяких счетчиков типа Н,К,С в циклах.
Кстати, за п.5 я тоже голосую. Перем А; |
||||||||||||||||
29
DJ Anthon
28.10.11
✎
11:04
|
(26) да, я тоже так подумал. просто в семерке не хватает глобальной процедуры ПриПроведении и ПриОтменеПроведения, а перехватчик я не хочу подключать. придется крутиться..
|
||||||||||||||||
30
Ёпрст
28.10.11
✎
11:11
|
(29) ну и зря - минимум кода, максимум удобства.
|
||||||||||||||||
31
DJ Anthon
28.10.11
✎
11:16
|
(30) заю, но не только для себя пишу....
|
||||||||||||||||
32
DJ Anthon
28.10.11
✎
11:18
|
(26) и да, массивы обламываются.. все-таки
Перем А; |
||||||||||||||||
33
Cthulhu
28.10.11
✎
11:58
|
"присвоение значения" и "объявление переменной" - две большие разницы. пп.2-4 = п.5.
Перем А; |
||||||||||||||||
34
Оболтус
28.10.11
✎
12:02
|
Да чего-то как-то и не парюсь по этому поводу. Префиксы л_, м_ и гл_ спасают.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |