Имя: Пароль:
1C
1С v8
странно работает запрос
0 m_roose
 
11.12.14
13:06
Ребят, у меня есть нулевые остатки по заказу. Когда пишу запрос в таком виде:

ВЫБРАТЬ
    РасчетыСКонтрагентамиОстатки.СуммаУпрОстаток
    
ИЗ
    РегистрНакопления.РасчетыСКонтрагентами.Остатки(, Сделка = &Заказ) КАК РасчетыСКонтрагентамиОстатки

то запрос выводит все правильно, одну запись, что остаток 0

когда в запрос добавляю хотя бы одно любое измерение на вывод:

ВЫБРАТЬ
    РасчетыСКонтрагентамиОстатки.Сделка,
    РасчетыСКонтрагентамиОстатки.СуммаУпрОстаток    
ИЗ
    РегистрНакопления.РасчетыСКонтрагентами.Остатки(, Сделка = &Заказ) КАК РасчетыСКонтрагентамиОстатки

то запрос ничего не возращает, ни одной записи

в чем может быть дело? кто подскажет? причем такая фигня только с нулевыми остатками, если остаток не 0, то записи выводит в любом случае
1 m_roose
 
11.12.14
13:11
кто нибудь!! помогите, пожалуйста
2 User_Agronom
 
11.12.14
13:12
(0) Напиши цель исследования этого вопроса
3 Maxus43
 
11.12.14
13:13
дык первый запрос то не правильный, правильный когда измерения тащишь, и правильно что если остатка нет то результат запроса пустой
4 m_roose
 
11.12.14
13:14
(2) мне нужно соединить другую таблицу с этой по полю сделка, а получается так, что если это поле выводить, то записи он не получает..
5 m_roose
 
11.12.14
13:15
(3) так а как тогда можно получиь результат запроса с нулевым значением остатка вместе с измерениями?
6 User_Agronom
 
11.12.14
13:15
(4) Значит, где не нашёл будет NULL
Сравнивать нужно фразой "ЕСТЬ NULL"
7 kortun
 
11.12.14
13:15
Делай так
ЕстьNull(СделкаСоединение.Сделка, 0)
8 m_roose
 
11.12.14
13:16
(6) да я так и делала, но получается что он не выводит ни NULL, ничего
9 kortun
 
11.12.14
13:16
(8)пока весь запрос
10 m_roose
 
11.12.14
13:16
(7) так тоже не работает, ни одной записи не выводит
11 Maxus43
 
11.12.14
13:17
(8) к первой таблице соединяй таблицу остатков, а не наоборот
12 Defender aka LINN
 
11.12.14
13:17
(0) Да, это так ©
Рекомендую с этим смириться
13 User_Agronom
 
11.12.14
13:17
Покажи соединяешь как
14 m_roose
 
11.12.14
13:19
(13) до соединения еще не дошла, этот то кусок уже не работает, чего дальше соединять..
15 m_roose
 
11.12.14
13:19
(13) ну вообще вот так было

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

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

|   УНИЧТОЖИТЬ СуммаЗаказов"
16 User_Agronom
 
11.12.14
13:21
>>ЕСТЬNULL(СуммаЗаказов.ЗаказПокупателя
Гм..... Меня терзают смутные сомнения...
17 palpetrovich
 
11.12.14
13:23
если нужны и "нулевые", то надо примерно так:

ВЫБРАТЬ
    ЗаказПокупателя.Ссылка КАК Ссылка,
    ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпрОстаток
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки КАК ВзаиморасчетыСКонтрагентамиОстатки
        ПО ЗаказПокупателя.Ссылка = ВзаиморасчетыСКонтрагентамиОстатки.Сделка
18 User_Agronom
 
11.12.14
13:24
(15) http://i.stack.imgur.com/sKS1u.jpg
Внутреннее inner join вроде бы как
19 palpetrovich
 
11.12.14
13:24
+(17) ВНУТРЕННЕЕ заменить на ЛЕВОЕ :)
20 m_roose
 
11.12.14
13:25
(19) алилуя!! с левым сработало)) спасибо) а что за фигня то такая
21 Бубка Гоп
 
11.12.14
13:26
(20) Могу подсказать что сделать чтобы все сразу получалось. Добавьте фотку в профиль :)
22 Maxus43
 
11.12.14
13:26
(20) всё правильно
23 m_roose
 
11.12.14
13:26
(21) ну без этого то никак)
24 palpetrovich
 
11.12.14
13:28
(20) поизучай (18), очень познавательно :)
25 m_roose
 
11.12.14
13:29
(24) да я вообще в курсе соединений. интересовало почему запрос так странно работает с выводом\невыводом строк
26 Maxus43
 
11.12.14
13:31
(25) внутреннее соединение отсекает эту пустую строку
27 Maxus43
 
11.12.14
13:32
(25) ну а сам запрос из (0) и должен так работать, и это надо иметь ввиду при клацаньи по кнопкам
28 m_roose
 
11.12.14
13:33
(26) это понятно
(27) хорошо, приму на веру