Имя: Пароль:
1C
1С v8
Может кто объяснит такое поведение запросов
0 AlecoZAV
 
04.09.12
06:42
Есть запрос:

ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(Касса.Период, ДЕНЬ) КАК Период,
   Склады.Ссылка КАК Склад,
   Касса.Сумма КАК Сумма,
   Касса.Регистратор
ИЗ
   Справочник.Склады КАК Склады
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Касса КАК Касса
       ПО Склады.Ссылка = Касса.Склад
ГДЕ
   Касса.Период МЕЖДУ &НачалоПериода И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)

Должен выдавать соответственно ВСЕ склады и суммы из регистра, но выдает только те строки, в которых сумма есть, склады с нулевыми движениями в списке отсутствуют

А такой запрос:

ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(Касса.Период, ДЕНЬ) КАК Период,
   Касса.Сумма КАК Сумма,
   Касса.Склад КАК Склад,
   Касса.Регистратор
ПОМЕСТИТЬ вт
ИЗ
   РегистрНакопления.Касса КАК Касса
ГДЕ
   Касса.Период МЕЖДУ &НачалоПериода И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ);
//////
ВЫБРАТЬ
   Склады.Ссылка КАК Склад,
   вт.Период КАК Период,
   ЕстьNULL(вт.Сумма, 0),
   вт.Регистратор
ИЗ
   Справочник.Склады КАК Склады
       ЛЕВОЕ СОЕДИНЕНИЕ вт КАК вт
       ПО Склады.Ссылка = вт.Склад


Выдает все как положено, не могу понят, где в первом запросе ошибка...
Может кто что подскажет?
1 Rie
 
04.09.12
06:44
(0) С какого горя должен выдавать все склады, если ты в ГДЕ склады без движений ловко отфильтровываешь?
2 lopus
 
04.09.12
06:44
Где
3 Rie
 
04.09.12
06:44
+(1) NULL - штука хитрая...
4 AlecoZAV
 
04.09.12
06:48
(1) Все, понял, дурак я))) спасибо
5 Rie
 
04.09.12
07:00
(4) Замени ГДЕ на И - и будет счастье :-)