|
Интересный код в типовой 1с, никогда не сталкивался с таким. | ☑ | ||
---|---|---|---|---|
0
Kuzen
14.07.11
✎
12:46
|
Перем а,б;
а = б = "1"; Сообщить("а:"+а); Сообщить("б:"+б); В контексте типовой бухии выглядит так: // Текст назначение платежа будет обновлен только при условии, что ранее он был сформирован автоматически ОбновитьНазначениеПлатежа = ТекстНазначение = ТекстНазначенияПлатежа(мТекущийСчетКонтрагента, мТекущийДоговорКонтрагента, ПеречислениеНалога); |
|||
1
Ненавижу 1С
гуру
14.07.11
✎
12:48
|
(0) я бы скобочки все таки поставил
|
|||
2
Ненавижу 1С
гуру
14.07.11
✎
12:49
|
вот так:
бновитьНазначениеПлатежа = (ТекстНазначение=ТекстНазначенияПлатежа(мТекущийСчетКонтрагента, мТекущийДоговорКонтрагента, ПеречислениеНалога)); |
|||
3
Fram
14.07.11
✎
12:49
|
(0) ну и что непонятного?
|
|||
4
Sarmen
14.07.11
✎
12:53
|
Человек же не сказал в сабже, что "непонятно". Просто сказал - "интересно"! И - "никогда не сталкивался".
|
|||
5
Megas
14.07.11
✎
12:53
|
(3) Кто пишет что непонятно? .. Просто забавно и необычно.
|
|||
6
Kuzen
14.07.11
✎
12:53
|
Перем а,б;
а = б = "1"; Сообщить("а: '"+а+"' ТипЗнч: "+ТипЗнч(б)); Сообщить("б: '"+б+"' ТипЗнч: "+ТипЗнч(б)); Присваивания нет. Сообщить выводит: а: 'Нет' ТипЗнч: Не определено б: '' ТипЗнч: Не определено |
|||
7
Kuzen
14.07.11
✎
12:55
|
а: 'Нет' ТипЗнч: Булево
б: '' ТипЗнч: Не определено |
|||
8
Рэйв
14.07.11
✎
12:56
|
(6)а получает булево сравнения б с "1"
|
|||
9
Рэйв
14.07.11
✎
12:57
|
(6)"Не ходил ты , приятель, в штыковую"(С)
на с++ |
|||
10
Kuzen
14.07.11
✎
12:58
|
(8) Забавное сравнение.
|
|||
11
Рэйв
14.07.11
✎
12:59
|
(10) Нормальное
Ничем не отличается от Если б="1" Тогда... оно тоже возвращает ложь в Если |
|||
12
acsent
14.07.11
✎
13:00
|
Код выпадет, тк б = неопредедлено
|
|||
13
Web00001
14.07.11
✎
13:00
|
как нет присваивания, переменной а присваивается результат сравнения б = 1, что ты имеешь счастье лицезреть в выводе команды Сообщить(), для уточнения сделай б = 1 вначале
|
|||
14
Рэйв
14.07.11
✎
13:00
|
в плюсах оператор сравнения отличается от операьтора присваивания. А тут вот путаница
|
|||
15
Megas
14.07.11
✎
13:01
|
ИМХО
Если б=1 тогда ... лучше так как не выносит мозг! |
|||
16
hhhh
14.07.11
✎
13:01
|
(10) а что тут забавного? Если пишешь
Если в = "1" Тогда а = Истина; Иначе а = Ложь; КонецЕсли; тоже для тебя забавно? |
|||
17
amiko
14.07.11
✎
13:02
|
Код как код. я такие логические операции в коде постоянно использую, т.к. лень писать если .. тогда .. конец
|
|||
18
hhhh
14.07.11
✎
13:02
|
(12) не выпадет. Выпадает только в случаях операции больше-меньше.
|
|||
19
Ненавижу 1С
гуру
14.07.11
✎
13:04
|
(14) нет путаницы в общем, все однозначно
|
|||
20
Kuzen
14.07.11
✎
13:05
|
(16) А так в переводе на если что будет?
а = б ="1"="2"="3"; |
|||
21
Kuzen
14.07.11
✎
13:06
|
или так а = б +"1"="2"="3";
|
|||
22
Fram
14.07.11
✎
13:07
|
(21) похоже так и не понял что к чему?
|
|||
23
Kuzen
14.07.11
✎
13:08
|
(22) В случае а = б = "1"; понятно
|
|||
24
Рэйв
14.07.11
✎
13:08
|
(19)Ну не путаница.Слабая наглядность для неокрепших умов:-)
|
|||
25
Kuzen
14.07.11
✎
13:10
|
например
б = "1"; а = б ="1"; а = истина в случае: б = "1"; а = б ="1"="1"; а = ложь |
|||
26
Kuzen
14.07.11
✎
13:11
|
какое сравнение происходит во 2 м случае:
б ="1"="1" б="1" или б="1" б="1" и б="1" или еще что то |
|||
27
Staffa
14.07.11
✎
13:12
|
(25) ну, правильно:
Истина <> "1" |
|||
28
Ненавижу 1С
гуру
14.07.11
✎
13:12
|
(25) вот тут
х=((а=б)=с); х=(а=(б=с)); могут различатся результаты или нет? |
|||
29
Рэйв
14.07.11
✎
13:12
|
"1"="1";
дает Истина б="1" и <>истина поэтому а=Ложь |
|||
30
Рэйв
14.07.11
✎
13:13
|
(29)->(26)
|
|||
31
Kuzen
14.07.11
✎
13:14
|
(28) Нет
|
|||
32
Kuzen
14.07.11
✎
13:14
|
(28) х=с
|
|||
33
Kuzen
14.07.11
✎
13:20
|
(29)
б = Истина; а = б ="1"="1"; результат а = Нет Почему ведь (б=Истина) = ("1"="1" = Истина) = Истина |
|||
34
Fram
14.07.11
✎
13:21
|
(33) порядок выполнения сравнения как в арифметике - слева направо
|
|||
35
Fram
14.07.11
✎
13:22
|
+(34) т.е.
б ="1" - это ложь, т.к. истина не равна "1" ложь = "1" это тоже ложь, т.к. ложь не равна "1" |
|||
36
Kuzen
14.07.11
✎
13:23
|
(34) теперь ясно
|
|||
37
Kuzen
14.07.11
✎
13:24
|
Истина=1=1=2-1=5-4
|
|||
38
Fram
14.07.11
✎
13:26
|
(37) тут уже типизация 1С срабатывает так что истина равна единице
|
|||
39
Рэйв
14.07.11
✎
13:26
|
(37) Ложь
Ничего ты так и не понял:-) |
|||
40
Рэйв
14.07.11
✎
13:26
|
(38)А..Ну может быть
|
|||
41
Рэйв
14.07.11
✎
13:27
|
Если взть цифры побольше то будет ложь
|
|||
42
Fram
14.07.11
✎
13:28
|
(40) сам как то немного удивился когда наткнулся, что истина равна единице
|
|||
43
Fram
14.07.11
✎
13:29
|
(37) и это.. сначала выполняются вычисления, потом сравнения
|
|||
44
Fram
14.07.11
✎
13:31
|
вообще, эту тему в базу знаний можно закинуть
|
|||
45
Kuzen
14.07.11
✎
13:33
|
(41) Тогда так: 10 =10=(5=(15-10))
|
|||
46
Kuzen
14.07.11
✎
13:33
|
будет истина
|
|||
47
Рэйв
14.07.11
✎
13:35
|
(46)Будет ложь:)))
|
|||
48
Fram
14.07.11
✎
13:35
|
(47) вообще то он прав - истина будет
|
|||
49
Fram
14.07.11
✎
13:35
|
забавная тема ))
|
|||
50
Рэйв
14.07.11
✎
13:36
|
5=(15-10)
истина Тогда так: 10 =10=истина ложь :-) |
|||
51
Fram
14.07.11
✎
13:36
|
(46) все верно приоритет скобок никто не отменял
|
|||
52
Kuzen
14.07.11
✎
13:37
|
(48) Ученик превзошел своего учителя :)
|
|||
53
Рэйв
14.07.11
✎
13:37
|
(50)->(48)
|
|||
54
Рэйв
14.07.11
✎
13:37
|
(52)Неа:-)..Не превзашел
|
|||
55
Fram
14.07.11
✎
13:38
|
(50) почему ложь то?!
10=10 это истина истина=истина это тоже истина слева направо, чувак |
|||
56
Рэйв
14.07.11
✎
13:39
|
(55)
справа.налево:-) |
|||
57
Рэйв
14.07.11
✎
13:39
|
10=истина
ложь 10=ложь ложь :-)) |
|||
58
Fram
14.07.11
✎
13:41
|
(57) настырный какой http://gyazo.com/2af361cb413270a4f7bff33277612040.png
|
|||
59
Рэйв
14.07.11
✎
13:42
|
(58)Ладно, я уже сам посмотрел:-) дествительно в табло истина
Но ведь слева жешь вроде направо все таки? |
|||
60
Рэйв
14.07.11
✎
13:42
|
по всем канонам программирования
|
|||
61
Рэйв
14.07.11
✎
13:43
|
ой то есть наоборот. справа-налево
|
|||
62
Рэйв
14.07.11
✎
13:44
|
Если судить по логике справа налево, то я прав..Если по табло 1С , то я неправ:-)
Интересная картина:) |
|||
63
Fram
14.07.11
✎
13:45
|
(62) 1С выполняет слева направо.. смирись
|
|||
64
Рэйв
14.07.11
✎
13:46
|
(63)Да? Вот придурки.А нафига?
|
|||
65
Рэйв
14.07.11
✎
13:47
|
ну да.Если смотреть слева, то истина
|
|||
66
sda553
14.07.11
✎
13:59
|
Справа налево выполняется присваивание, видимо это тебя смутило, а так большинство языков программирования выполняет выражение все таки слева на право
|
|||
67
Рэйв
14.07.11
✎
14:03
|
(66)Точно.Ввели бы уже правда == ...
|
|||
68
Рэйв
14.07.11
✎
14:03
|
т.е = =
|
|||
69
Kuzen
14.07.11
✎
14:28
|
(58) А у меня кстати пишет не Истина а Да. Это в 8.2
|
|||
70
Megas
14.07.11
✎
15:17
|
(69) А у меня пишет "Есть" или "Так точно" причём что бы не сравнивал! 8.3
|
|||
71
Starhan
14.07.11
✎
15:21
|
(70) Хорошо хоть не "нахрен" и "похрен"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |