Имя: Пароль:
1C
1С v8
Условие запроса
0 altaykniga
 
13.04.14
16:11
Доброго времени суток, уважаемые! Как написать условие запроса, чтобы выбирались записи из регистра сведений, когда реквизит "ДатаУстановки" либо пустая , либо больше параметра &Дата
1 Wobland
 
13.04.14
16:11
пустая дата - это 1е января 1го года
2 Alex S D
 
13.04.14
16:11
датавремя юзай
3 altaykniga
 
13.04.14
16:17
(2) не могу сообразить, как условие написать
ВЫБРАТЬ
   *
ИЗ
...
  ГДЕ
    ДатаУстановки = ДатаВремя(1,1,1)
    ИЛИ ДатаУстановки > &Дата
4 Wobland
 
13.04.14
16:19
(3) это почеу?
5 altaykniga
 
13.04.14
16:20
(4) что почему?
6 Wobland
 
13.04.14
16:20
(5) почему не можешь сообразить?
7 Alex S D
 
13.04.14
16:20
опять же.. это скд?
8 altaykniga
 
13.04.14
16:23
(7) нет, не скд. Просто пробую в консоли запросов добиться нужного
9 altaykniga
 
13.04.14
16:25
(3) т.е. мне нужно выводить записи с пустыми датамиУстановки или, если датаУстановки не пустая, то должна быть больше &дата
10 Alex S D
 
13.04.14
16:26
попробуй использовать "ВЫБОР"
11 Wobland
 
13.04.14
16:28
(9) как насчёт этого?
ГДЕ
    ДатаУстановки = ДатаВремя(1,1,1)
    ИЛИ ДатаУстановки > &Дата
12 Alex S D
 
13.04.14
16:29
(11) хоре троллить , он тебя не поймет)
13 altaykniga
 
13.04.14
16:31
(11) выбираются записи только с пустыми ДатаУстановки, второе условие не срабатывает
14 Wobland
 
13.04.14
16:31
а я вот не прочь понять ТС
15 Wobland
 
13.04.14
16:31
(13) врёшь
16 altaykniga
 
13.04.14
16:39
(15) вру, извиняюсь. Получается мой текст в (3) был верный
17 altaykniga
 
13.04.14
16:39
тема закрыта, всем спасибо за участие
18 vi0
 
13.04.14
16:53
(3) Такой запрос может быть выполнен неоптимально т.к. есть ИЛИ как минимум. Лучше разбить его на два, но проверить нужно конечно.

ВЫБРАТЬ * ИЗ ..
ГДЕ ДатаУстановки = ДатаВремя(1,1,1)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ * ИЗ ..
ГДЕ ДатаУстановки > &Дата
19 vi0
 
13.04.14
16:55
+(18) при условии, что это первое измерение регистра или это поле индексировано, иначе без разницы - можно и как в (3)
20 Torquader
 
13.04.14
17:08
(18) (19) Им ещё рано знать про оптимизацию, так как запросы писать не научились.
21 ilyavorobyev
 
13.04.14
17:13
(18) а если через виртуальную таблицу? объединить больше съест или таблица?
22 Wobland
 
13.04.14
17:20
(18) правильно. и так с каждым ИЛИ
23 Torquader
 
13.04.14
17:22
(22) Не с каждым, а только с тем, которые по индексу выбирают.
Если без индекса, то разбиением запроса на два мы получим вместо одного полного сканирования - два - а оно нам надо ?
24 Wobland
 
13.04.14
17:44
(23) я думаю, СУБД писали не самые глупые люди. и это уже дело СУБД - дать мне быстро и точно, не хочу ей мешать ;)
25 Torquader
 
13.04.14
17:47
(24) К сожалению, даже не глупые люди не могут "подстелить соломки" на все случаи жизни.
По крайней мере, создатели конфигураций для 1С очень часто вгоняют "умный" сервер в ступор даже простыми запросами.