Имя: Пароль:
1C
 
Операции сравнения дат в 77
,
0 Ёхан Палыч
 
07.10.14
06:01
Давно не работал 77.
Чо за херня?
Почему отладчик в 77 выдает такое:

'01.01.2014' = '01.01.2014' = Ошибка в выражении!
'01.01.2014' > '01.01.2014' = Ошибка в выражении!
и т.д.
1 VladZ
 
07.10.14
06:03
(0)  А что отладчик тебе должен написать???? В 7.7 нет типа булево.
2 VladZ
 
07.10.14
06:04
Для начала попробуй конструкцию вида ?('01.01.2014' = '01.01.2014', 1,0)
3 Ёхан Палыч
 
07.10.14
06:07
Ага, понял, вспомнил, спасиб.
4 Ёхан Палыч
 
07.10.14
06:17
Все равно не получается.

Если спр.Дата >= '01.01.2014' Тогда - выдает ошибку еще на стадии открытия обработки.
Хотя ТипЗначенияСтр(спр.Дата) = Дата.
Как так?
5 Ёхан Палыч
 
07.10.14
06:27
все разобрался
6 Мимохожий Однако
 
07.10.14
06:33
Ну, и как сделал?
7 Ёхан Палыч
 
07.10.14
06:47
да там проблема не в этом была, операции сравнения и логические (И, Не...) в 77 имеют какой то странный приоритет, понаставил скобок в лог. выражении и пошло )))
8 mergan
 
07.10.14
07:30
В 7.7 приоритет абсолютно такой-же как и в других языках
9 пипец
 
07.10.14
08:54
Дата("01.01.01") не предлагать ?
10 Ёхан Палыч
 
07.10.14
09:31
(8)
дает ошибку:

Если (спр.ЭтоГруппа() = 0) И (спр.Дата >= '01.01.2014' И спр.Дата <= '31.12.2014') Тогда

не дает ошибку:

Если (спр.ЭтоГруппа() = 0) И (спр.Дата >= '01.01.2014') И (спр.Дата <= '31.12.2014') Тогда
11 Ёхан Палыч
 
07.10.14
09:35
ха, действительно у И НЕ ИЛИ - приоритет больше чем у равно больше меньше
и как я раньше жил с этим ))))
12 Ёхан Палыч
 
07.10.14
09:36
ну это же нелогично нихрена
13 Фокусник
 
07.10.14
09:36
(10) " (спр.Дата >= '01.01.2014' И спр.Дата <= '31.12.2014') "

Ошибка была, потому что в 77 скобки нужно ставить вокруг каждого логического выражения, а не из-за "приоритета" ;)
14 1dvd
 
07.10.14
09:36
(11) тёплое с мягким путаешь.

В 77, всё что между И, между ИЛИ должно заключаться в скобки
15 Ёхан Палыч
 
07.10.14
09:37
(14) а в 8 кажись не так, не задумывался никогда ???
16 1dvd
 
07.10.14
09:39
(15) да, восьмерке много что поменяли.
Но, твоя фраза  "у И НЕ ИЛИ - приоритет больше чем у равно больше меньше" бессмыслица
17 Ёхан Палыч
 
07.10.14
09:40
(16) да смех да и только, засомневался и прочел
http://src-code.net/logicheskie-operacii/
18 1dvd
 
07.10.14
09:44
(17) это восьмерка
19 Ёхан Палыч
 
07.10.14
09:45
(18) т.е. для восьмерки фраза
"у И НЕ ИЛИ - приоритет больше чем у равно больше меньше"
верна???????????????????
20 1dvd
 
07.10.14
09:47
(19) да. В 77 нет типа булево, как тебе уже говорили. Там выполняются сперва сравнения, а потом уже эти результаты перемножаются (логическое И), Складываются (логическое ИЛИ) и отрицаются (НЕ)
21 Зеленый пень
 
07.10.14
09:48
(19) Надо еще помнить, что 7.7 будет проверять все условия, даже если после первого логично прекратить проверку.
Т.е. если: спр.ЭтоГруппа() = 1, то всё равно будут проверены остальные условия.
22 Ёхан Палыч
 
07.10.14
09:50
ясно, ладно, скобки рулят в любом случае, так и будем кодить ))))
23 Torquader
 
07.10.14
16:39
(21) А что вы хотели - операторы над результатами логических выражений (НЕ И ИЛИ) начинают выполняться только тогда, когда все логические выражения уже вычислены.
Ошибка? Это не ошибка, это системная функция.