|
v7: Глюк синтакс-контроля? | ☑ | ||
---|---|---|---|---|
0
andrewks
19.04.12
✎
23:44
|
//*******************************************
Процедура Сформировать() СЗ=СоздатьОбъект("СписокЗначений"); СЗ.ДобавитьЗначение("1"); Знач1=СЗ.ПолучитьЗначение(Знач1); КонецПроцедуры кушает, молчит, выполняет |
|||
1
Попытка1С
19.04.12
✎
23:45
|
А на что должен ругаться..
|
|||
2
andrewks
19.04.12
✎
23:45
|
(1) Переменная Знач1 не определена
|
|||
3
Попытка1С
19.04.12
✎
23:47
|
Ну так Знач1=
|
|||
4
andrewks
19.04.12
✎
23:48
|
(3) и чо? нет её ещё при подстановке параметров в функцию
|
|||
5
Попытка1С
19.04.12
✎
23:49
|
(4) А как по твоему синтаксис контроль работает?
|
|||
6
andrewks
19.04.12
✎
23:50
|
(5) строится дерево разбора, потом дерево обходится
|
|||
7
Злопчинский
19.04.12
✎
23:50
|
ну так это запросто!
конструкция а=а/0; - не вызывает исключения |
|||
8
ildary
19.04.12
✎
23:53
|
(2) Знач1 уже не просто определена, но и значение в нее положено -СЗ.ПолучитьЗначение(Знач1). Вот синтакс контроль и молчит.
|
|||
9
andrewks
19.04.12
✎
23:54
|
(8) чушь
|
|||
10
andrewks
19.04.12
✎
23:54
|
о, да тут дела даже хуже, чем я полагал
А=А+1; Сообщить("<"+А+">"); молчит, выполняет, выдаёт пустоту |
|||
11
andrewks
19.04.12
✎
23:57
|
ТипЗначения(А) = 0
вот, вот оно - Неопределено в 7-ке! осталось только NULL найти |
|||
12
andrewks
20.04.12
✎
00:01
|
вот самый простой способ получения Неопределено:
Nothing=Nothing; Сообщить(ТипЗначенияСтр(Nothing)); Сообщить(ТипЗначения(Nothing)); Сообщить("<"+Nothing+">"); |
|||
13
Попытка1С
20.04.12
✎
00:02
|
Вот тебе делать нечего..
|
|||
14
andrewks
20.04.12
✎
00:03
|
(13) я ни при чём. случайно наткнулся
|
|||
15
zxcvb
20.04.12
✎
00:03
|
(13) Тихо ты... пусть еще пишет.
|
|||
16
Злопчинский
20.04.12
✎
00:06
|
(12) ты меня удивляешь...
Назинг = ПолучитьПустоеЗначение(); |
|||
17
andrewalexk
20.04.12
✎
00:07
|
:) ...."она всех вечно удивляла такая уж она была"
|
|||
18
andrewks
20.04.12
✎
00:10
|
(16) ну вот... так неинтересно. куда как интересней получить что-то через недокументированную фичу
|
|||
19
dklushin
20.04.12
✎
00:10
|
топикстартеру респект, я уже начал думать, что не осталось таких людей, которые ещё делают новые открытия в 7.7)
|
|||
20
CepeLLlka
20.04.12
✎
00:21
|
(19) Новые? лол даже такой неопытный сала как я это знал.
|
|||
21
orefkov
20.04.12
✎
00:23
|
(19)
Открытию сто лет в обед. http://infostart.ru/public/16943/ На 8ке кстати тоже работает: неттакой = неттакой; Это не глюк, а "by design". Парсер уже после "Имя =" заводит переменную "Имя", изначально пустую. |
|||
22
andrewalexk
20.04.12
✎
00:24
|
(0):) "спс кэп"
|
|||
23
CepeLLlka
20.04.12
✎
00:28
|
(21) Так я и говорю.. я в каком-то курсе читал про это или слушал..
Ещё в одном курсе говорят что ";" ставится для разделения, то есть в процедуре после последнего выражения можно и не ставить ";" и всё будет ок.. |
|||
24
orefkov
20.04.12
✎
01:43
|
(23)
Не только в процедуре после последнего выражения можно и не ставить ";". Запяточку можно не ставить перед любым закрывающим ключевым словом - Конец/Если/Цикла/Процедуры/Функции/Попытки Исключение, Иначе, ИначеЕсли, либо просто последний оператор в теле модуля. Вот как-то так. В 7ке и 8ке до определенной версии объявление переменной модуля/функции обязательно требовало наличия запяточки в конце объявления: Перем Тест; Даже если в модуле/процедуре кроме объявления переменных ничего не было, все равно надо было ее ставить. Однако документации это не соответствовало, и с некоторой версии 8ки (сейчас не помню точно с какой), в части переменных запяточка требуется только для разделения. |
|||
25
GROOVY
20.04.12
✎
01:57
|
(23) Вот я так обычно говорю новичкам которые стараются везде ";" поставить, особенно после КонецПроцедуры, что бы мозг включали :)
|
|||
26
Тихий омут
20.04.12
✎
05:42
|
может и давно известно, но мы только вчера впервые наткнулись - сообщить(+)
|
|||
27
andrewks
20.04.12
✎
08:15
|
(23) про разделитель операторов чётко написано в документации. про эту хрень там ни слова. поскольку после паскаля и си я был приучен довольно тщательно относиться к переменным, наткнулся на это только сейчас, совершенно случайно
(21) спасибо за ссылку, значит, баян |
|||
28
spock
20.04.12
✎
08:26
|
(21)забавно же.
|
|||
29
orefkov
20.04.12
✎
08:47
|
(6)
И скажу по секрету, в движке 1С дерево разбора не строится :) |
|||
30
andrewks
20.04.12
✎
08:55
|
(29) чё, тупо автоматом анализируется?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |