|
Переменная существует | ☑ | ||
---|---|---|---|---|
0
extrim-style
19.09.11
✎
10:38
|
Понедельник - день тяжелый). Как правильно проверить переменную на существование?
|
|||
1
guitar_player
19.09.11
✎
10:39
|
в смысле? ЗначениеЗаполнено() не?
|
|||
2
PR
19.09.11
✎
10:39
|
LOL
|
|||
3
PR
19.09.11
✎
10:40
|
Попытка?
|
|||
4
Ненавижу 1С
гуру
19.09.11
✎
10:40
|
(0) да...
это вам даже не Неопределено |
|||
5
butterbean
19.09.11
✎
10:40
|
не переживай, за тебя 1С проверит
|
|||
6
Нуф-Нуф
19.09.11
✎
10:40
|
.ОнаСуществует()
|
|||
7
extrim-style
19.09.11
✎
10:40
|
(1) ЗначениеЗаполнено(<Значение>)
Параметры: ... Источники данных не проверяются, значение считается заполненным всегда. (3) не хотелось через попытку, поэтому спрашиваю |
|||
8
Wobland
19.09.11
✎
10:40
|
какой-то философский вопрос. я ctrl+f7 делаю...
|
|||
9
Поручик
19.09.11
✎
10:41
|
(0)
Если ПеременнаяНеСуществует(Переменная) Тогда КонецЕсли; |
|||
10
Defender aka LINN
19.09.11
✎
10:43
|
(7) И что? Чем тебя ЗначениеЗаполнено() не устраивает?
|
|||
11
Stepa86
19.09.11
✎
10:46
|
(4) Как думаешь, что будет?
Если Ложь Тогда НоваяПеременная = "некоторое значение"; КонецЕсли; Если НоваяПеременная = Неопределено Тогда Сообщить( "НоваяПеременная=Неопределено" ); КонецЕсли; |
|||
12
extrim-style
19.09.11
✎
10:46
|
(10) епт, прочитал сп, а там вот это "Источники данных не проверяются, значение считается заполненным всегда."
Попробовал - действительно фурыкает. Спс. |
|||
13
extrim-style
19.09.11
✎
10:49
|
(12) а сейчас еще раз прочитал, оказывается тут можно двояко понять
|
|||
14
Ненавижу 1С
гуру
19.09.11
✎
10:52
|
(11) Неопределено будет, это же быдло язык ))
|
|||
15
rutony
19.09.11
✎
10:59
|
(14) Почему сразу быдло...
Все логично. Переменные описанные в тексте, автоматически объявляются самим компилятором. То есть он воткнет вначале всего текста: Перем НоваяПеременная; |
|||
16
Ненавижу 1С
гуру
19.09.11
✎
11:00
|
(15) потому что второе условие в зависимости от контекста может не выполниться, в общем случае
|
|||
17
Stepa86
19.09.11
✎
11:05
|
(15) нормальный язык должен был упасть с нехеровой ошибкой и на этапе проверки сообщить, что пытаетесь работать с необъявленной переменной.
Я как то очень долго искал ошибку из за такого молчаливого объявления переменных |
|||
18
extrim-style
19.09.11
✎
11:06
|
(10) не работает. Пишет, что переменная не определена. А мне как раз это и нужно проверить.
|
|||
19
extrim-style
19.09.11
✎
11:06
|
получается только попыткой?
|
|||
20
ДемонМаксвелла
19.09.11
✎
11:08
|
(18) ну определи её сам в области переменных.
|
|||
21
ZanderZ
19.09.11
✎
11:08
|
(0) смысл какой ?
|
|||
22
extrim-style
19.09.11
✎
11:12
|
(21) смысл в том, чтобы не плодить лишние переменные для использования лишь в одном участке кода. А глобальный смысл заключается в использовании рекурсивной функции, результат которой должен записываться в эту переменную. Не хотелось постоянно передавать переменную в качестве параметра (рекурсивная функция), а лишь однажды создать при первом входе.
|
|||
23
extrim-style
19.09.11
✎
11:16
|
Так верно будет?
Попытка Если ТЗ = Неопределено Тогда ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить(...); ... КонецЕсли; Исключение ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить(...); ... КонецПопытки; |
|||
24
ZanderZ
19.09.11
✎
11:17
|
(22) в каком модуле ты хочешь написать "рекурсивная функция" ?
|
|||
25
extrim-style
19.09.11
✎
11:18
|
(23) так тоже ругается. то есть полюбому переменную объявлять?
(24) модуль объекта внешнего отчета. не хочу написать - уже написано) |
|||
26
Axel2009
19.09.11
✎
11:19
|
использование глобальных переменных для рекурсивной функции есть зло..
|
|||
27
extrim-style
19.09.11
✎
11:21
|
(26) нет не глобальная, локальная, модуля. не хочу объявлять переменную в блоке объявления переменных, т.к. используется в одном единственном месте. Хочу создать её при первом входе в рекурсивную функцию. Как мне это сделать. Флаг первого входа по рекурсии тоже таскать не хочется...
|
|||
28
Stepa86
19.09.11
✎
11:22
|
(27) ты точно знаешь про области видимости переменных?
|
|||
29
extrim-style
19.09.11
✎
11:23
|
(28) думаю, что знаю. Или как правильно "думал, что знал"? ))
|
|||
30
Axel2009
19.09.11
✎
11:26
|
(29) как бе объявление переменной до вызова рекурсивной функции в самой функции не будет видеть переменную..
|
|||
31
extrim-style
19.09.11
✎
11:26
|
(28) я понял.
|
|||
32
extrim-style
19.09.11
✎
11:27
|
избавился от реквизита. теперь придется таскать переменную.
(30) понял ошибку. спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |