Имя: Пароль:
1C
1С v8
Мистика в запросе
0 hhhh
 
22.11.12
09:40
Вопрос-тест: какой результат получится после выполнения запроса

ВЫБРАТЬ РАЗЛИЧНЫЕ
   СчетНаОплатуПокупателюУслуги.Ссылка
ИЗ
   Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплатуПокупателюУслуги
ГДЕ
   СчетНаОплатуПокупателюУслуги.Ссылка >= &Дата

Запрос.УстановитьПараметр("Дата", ДобавитьМесяц(НачалоДня(ТекущаяДата()), -1));
1 Undefined vs NULL
 
22.11.12
09:41
куевый
2 mikecool
 
22.11.12
09:41
(1) +1
3 mikecool
 
22.11.12
09:41
(0) хвастаешься?
4 Спящая
 
22.11.12
09:42
СчетНаОплатуПокупателюУслуги.Ссылка >= &Дата - вот это понраилось.
5 vde69
 
22.11.12
09:43
читать про индексирование с доп упорядовачиением документов
6 Maxus43
 
22.11.12
09:47
пустой?
7 Бледно Золотистый
 
22.11.12
09:48
Все доки
8 hhhh
 
22.11.12
09:48
(6) не угадал
9 Reset
 
22.11.12
09:49
Выводит какой-то определенный набор, причем независимо от значения параметра.
10 Maxus43
 
22.11.12
09:49
(8) не приходило в голову сравнивать ссылку и дату просто. Ересь, сжечь на костре!
11 mikecool
 
22.11.12
09:50
(9) и в чем прикол? понятно, что в конечном итоге все сводится к сравнению строк...
12 mikecool
 
22.11.12
09:50
+11 но считаю , что результат должен быть либо пуст, либо ошибка
13 Reset
 
22.11.12
09:50
(11) Я не знаю в чем прикол. Не знал ответа вопрос ТСа, просто протестил
14 Maxus43
 
22.11.12
09:51
план запорса поглядите и всё станет понятно наеврно
15 Reset
 
22.11.12
09:52
наверное, (5) и (11)
16 hhhh
 
22.11.12
09:54
правильный ответ в (7). Выводятся все счета, где есть строки в таб части услуги.
17 Reset
 
22.11.12
09:55
(16) :))
Получается, ссылка всегда интерпретируется как больше чем дата
18 Maxus43
 
22.11.12
09:55
кто автор запроса то? сделал бред и спрашиваешь почему работает?)
19 Aprobator
 
22.11.12
09:56
ну и нафиг это надо?
20 Reset
 
22.11.12
09:56
+(17) Опять же в свете (5) логично.
21 hhhh
 
22.11.12
09:57
(18) да, но непонятно, почему не выдает ошибку в запросе?
22 Aprobator
 
22.11.12
09:57
интересно, почему запрос не выругался на несопоставимые типы?
23 Aprobator
 
22.11.12
09:57
(21) )
24 Reset
 
22.11.12
09:58
Попробовал число, другие ссылки. Не ругается.
25 Undefined vs NULL
 
22.11.12
09:59
справку конечно не читаем:

Если типы значений отличаются друг от друга, то отношения между значениями определяются на основании приоритета типов:

тип NULL (самый низший);
тип Булево;
тип ЧИСЛО;
тип ДАТА;
тип СТРОКА;
ссылочные типы.
Отношения между различными ссылочными типами определяются на основе внутренних ссылочных номеров таблиц, соответствующих тому или иному типу.
26 Reset
 
22.11.12
09:59
Теперь бы еще придумать, что из этого знания полезное извлечь :)
27 Aprobator
 
22.11.12
10:00
(25) и что из этого следует?
28 Maxus43
 
22.11.12
10:01
(25) что ссылка всегда больше строки, что строка всегда больше даты и т.д.
29 Maxus43
 
22.11.12
10:02
(28)>(27)
30 Undefined vs NULL
 
22.11.12
10:03
(27) что справку не читаем, а если читаем, то не понимаем
31 Maxus43
 
22.11.12
10:03
ну это понятно, когда например во встроенном языке сравнивать, но вот в запросе - неожиданно, ибо у него есть ошибка "нельзя сравнивать несовместимые типы..."
32 Aprobator
 
22.11.12
10:03
(31) так о чем и речь.
33 Aprobator
 
22.11.12
10:04
может запрос считает разными типами, только разные ссылочные типы?
34 Aprobator
 
22.11.12
10:05
1С - магия и шаманство. И уж только потом программирование.
35 Maxus43
 
22.11.12
10:06
(34) хорошо же, не все маги, потому и другую работу работают потенциальные конкуренты
36 Reset
 
22.11.12
10:06
(25) Разве из этого не следует, что можно сравнивать булево(и др. типы) и null? (косвенно указывают, что null всегда меньше)
;)
37 Aprobator
 
22.11.12
10:06
(35) я только за )
38 Aprobator
 
22.11.12
10:07
(36) он про себя уже высказался в (30). Очень точно попал.
39 Reset
 
22.11.12
10:08
(36) с др стороны в конце справки уточняется этот момент. А зачем тогда его в общий список "приоритета типов"
40 hhhh
 
22.11.12
10:09
(30) вам специально вопрос, что выдаст

ВЫБРАТЬ РАЗЛИЧНЫЕ
   СчетНаОплатуПокупателюУслуги.Ссылка
ИЗ
   Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплатуПокупателюУслуги
ГДЕ
   ""а"" >= 9
41 Aprobator
 
22.11.12
10:09
(39) см (34) )
42 Reset
 
22.11.12
10:10
(41) :)
43 Maxus43
 
22.11.12
10:10
(40) всё?
44 Reset
 
22.11.12
10:11
(40) Так оно укладывается в определение из (25)
45 ssh2006
 
22.11.12
10:13
(40) ничего
46 Undefined vs NULL
 
22.11.12
10:14
(40) там константы, видимо на момент "компиляции" анализатор отсекает такие моменты, в (0) определить нельзя заранее
47 ssh2006
 
22.11.12
10:14
хорошего
48 France
 
22.11.12
10:15
поучили бы паскаль, и не возникло бы желание х. с пальцем сравнивать...
49 hhhh
 
22.11.12
10:15
(43) опять не угадал. Выдает пусто. Значит, ундефайненд нам в (30) соврал. Или авторы справки из (25).
50 Undefined vs NULL
 
22.11.12
10:16
(49) брешишь
51 hhhh
 
22.11.12
10:16
что-то я запутался, а в каком случае она выдает "нельзя сравнивать несовместимые типы" ??
52 Undefined vs NULL
 
22.11.12
10:16
(38) пока лажи не вижу
53 Maxus43
 
22.11.12
10:17
(49) нельзя мне в казино играть, не угадываю. хотя щас даже подкреплено СП было)
54 Aprobator
 
22.11.12
10:18
(51) а хз. Может это применимо только к ссылочным типам? Гы - потом еще выяснится, что еще и от релиза платформы зависит )
55 Maxus43
 
22.11.12
10:18
(51) видимо когда ссылка со ссылкой, ну и строка неограниченой длинныы
56 Reset
 
22.11.12
10:18
Сообразил, когда МОЖНО другое сравнивать c NULL: при упорядочивании
57 Undefined vs NULL
 
22.11.12
10:19
(43) правильно
58 Maxus43
 
22.11.12
10:19
(57) а чо у него (49)?
59 Reset
 
22.11.12
10:19
(56) точнее, не можно, а это дает некий осмысленный результат
60 Undefined vs NULL
 
22.11.12
10:21
(58) я откуда знаю, что у него, у меня выдает всё
61 vde69
 
22.11.12
10:21
(49) попробуй не с документом а со справочником :)
62 Aprobator
 
22.11.12
10:23
короче - записываю новое заклинание из 1С и пора работать.
63 Reset
 
22.11.12
10:24
(60) Какой-то ты злой последнее время ;)
64 hhhh
 
22.11.12
10:25
(60) всё правильно, извиняюсь. Видимо, не тот запрос запустил.
65 Aprobator
 
22.11.12
10:25
(63) так его забанили же. Вот и буйствует )
66 Aprobator
 
22.11.12
10:25
короче по итогам ветки. В запросе можно сравнивать не только значения одного типа, но и иногда разную фигню )
67 ssh2006
 
22.11.12
10:26
все как обычно - СП рулит))
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.