Имя: Пароль:
1C
1С v8
запрос. как заставить выводить нулевые значения?
0 WF72
 
17.10.11
17:13
Коллеги, помогите плз.
Сделал следующий запрос:
       "ВЫБРАТЬ
       |    Оплата.Субконто1 КАК Контрагент,
       |    Оплата.СуммаОборотКт КАК Оборот62Кт,
       |    Оплата.СуммаКонечныйОстатокКт КАК Остаток62Кт,
       |    Аванс.СуммаОборотДт КАК Оборот76Дт,
       |    Аванс.СуммаКонечныйОстатокДт КАК Остаток76Дт,
       |    Оплата.СуммаКонечныйОстатокКт * 18 / 118 - Аванс.СуммаКонечныйОстатокДт КАК Разница
       |ИЗ
       |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачДата, &КонДата, Период, , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамПолученным), , Организация = &Организация) КАК Оплата
       |        ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачДата, &КонДата, Период, , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НДСпоАвансамИПредоплатам), , Организация = &Организация) КАК Аванс
       |        ПО Оплата.Субконто1 = Аванс.Субконто1
       |ГДЕ
       |    ((ВЫРАЗИТЬ(Оплата.СуммаКонечныйОстатокКт * 18 / 118 - Аванс.СуммаКонечныйОстатокДт КАК ЧИСЛО(10, 2))) > 0.02
       |            ИЛИ (ВЫРАЗИТЬ(Оплата.СуммаКонечныйОстатокКт * 18 / 118 - Аванс.СуммаКонечныйОстатокДт КАК ЧИСЛО(10, 2))) < -0.02)
       |УПОРЯДОЧИТЬ ПО
       |    Контрагент
       |АВТОУПОРЯДОЧИВАНИЕ";


Но в него не попадают данные по оплате (сч.62.02), если их нет. Что нужно поменять в запросе, чтобы вытаскивались ВСЕ данные для полного соединения, даже если там нет остатков?
1 mikecool
 
17.10.11
17:14
слева привязать таблицу, в которой что то будет
2 WF72
 
17.10.11
17:21
То есть не полное соединение, а левое? Разве? Прошу пардону, запутался...
3 WF72
 
17.10.11
17:25
Нужно вытащить остатки и по авансам и по оплате. Но почему-то запрос ориентируется только на авансы :(
4 WF72
 
17.10.11
17:26
Черт, хотел сказать, ориентируется только на оплату. На 62.02.
5 НЕА123
 
17.10.11
17:27
ЕСТЬNULL(Оплата.СуммаКонечныйОстатокКт,0)
6 Axel2009
 
17.10.11
17:27
потому что ГДЕ фильтрует все NULL. там и так есть данные
7 НЕА123
 
17.10.11
17:28
с авансами аналогично
8 WF72
 
17.10.11
17:46
То есть вот так:
       "ВЫБРАТЬ
       |    Оплата.Субконто1 КАК Контрагент,
       |    Оплата.СуммаОборотКт КАК Оборот62Кт,
       |    ЕСТЬNULL(Оплата.СуммаКонечныйОстатокКт,0) КАК Остаток62Кт,
       |    Аванс.СуммаОборотДт КАК Оборот76Дт,
       |    ЕСТЬNULL(Аванс.СуммаКонечныйОстатокДт,0) КАК Остаток76Дт,
       |    Оплата.СуммаКонечныйОстатокКт * 18 / 118 - Аванс.СуммаКонечныйОстатокДт КАК Разница
       |ИЗ
       |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачДата, &КонДата, Период, , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамПолученным), , Организация = &Организация) КАК Оплата
       |        ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачДата, &КонДата, Период, , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.НДСпоАвансамИПредоплатам), , Организация = &Организация) КАК Аванс
       |        ПО Оплата.Субконто1 = Аванс.Субконто1
       |ГДЕ
       |    ((ВЫРАЗИТЬ(Оплата.СуммаКонечныйОстатокКт * 18 / 118 - Аванс.СуммаКонечныйОстатокДт КАК ЧИСЛО(10, 2))) > 0.03
       |            ИЛИ (ВЫРАЗИТЬ(Оплата.СуммаКонечныйОстатокКт * 18 / 118 - Аванс.СуммаКонечныйОстатокДт КАК ЧИСЛО(10, 2))) < -0.03)
       |УПОРЯДОЧИТЬ ПО
       |    Контрагент
       |АВТОУПОРЯДОЧИВАНИЕ";

странно, не срабатывает :(
9 НЕА123
 
17.10.11
17:48
(8)
ЕстьNULL() надо везде.
10 Axel2009
 
17.10.11
18:09
(8) самое главное в ГДЕ
11 WF72
 
18.10.11
11:14
Огромное спасибо за советы, уважаемые коллеги! Как оказалось, для результата достаточно добавить ЕСТЬNULL только для оплаты в ГДЕ; при добавлении его во все остальные параметры запроса ничего не меняется.
Но однако, появился второй подводный камень: хотя теперь стала выдаваться сумма, но не выдается контрагент, на его месте пустота. Пробовал добавлять ЕСТЬNULL во все параметры - ничего не меняется... подскажите плз, можно ли тут как-то исхитриться?
12 НЕА123
 
18.10.11
11:15
ВЫБОР КОГДА


?
13 WF72
 
18.10.11
12:10
Просто гигантское спасибо! Заработало!!! (ц) Матроскин
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.