Имя: Пароль:
1C
 
ЕСТЬNULL
0 apprentice
 
27.09.17
14:31
День добрый!

Есть такой запрос:
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПродажаТоваровТовары.Номенклатура КАК Номенклатура,
        |    СУММА(ПродажаТоваровТовары.Количество) КАК Количество,
        |    ПродажаТоваровТовары.Ссылка.Склад КАК Склад
        |ПОМЕСТИТЬ ТабДок
        |ИЗ
        |    Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары
        |ГДЕ
        |    ПродажаТоваровТовары.Ссылка = &Ссылка
        |    И ПродажаТоваровТовары.Номенклатура.ВидНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ВидыТоваров.Услуга)
        |
        |СГРУППИРОВАТЬ ПО
        |    ПродажаТоваровТовары.Номенклатура,
        |    ПродажаТоваровТовары.Ссылка.Склад
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура,
        |    Склад
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ТабДок.Номенклатура КАК Номенклатура,
        |    ТабДок.Количество КАК Количество,
        |    ТабДок.Склад КАК Склад,
        |    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
        |    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
        |    ОстаткиНоменклатурыОстатки.Партия,
        |    ОстаткиНоменклатурыОстатки.Партия.Дата КАК ПартияДата,
        |    ЕСТЬNULL(БронированиеТоваровОстатки.КоличествоЗабронированногоОстаток, 0) КАК КоличествоЗабронированногоОстаток
        |ИЗ
        |    ТабДок КАК ТабДок
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
        |                &Момент,
        |                (Номенклатура, Склад) В
        |                    (ВЫБРАТЬ
        |                        ТабДок.Номенклатура,
        |                        ТабДок.Склад
        |                    ИЗ
        |                        ТабДок КАК ТабДок)) КАК ОстаткиНоменклатурыОстатки
        |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.БронированиеТоваров.Остатки КАК БронированиеТоваровОстатки
        |            ПО ОстаткиНоменклатурыОстатки.Номенклатура = БронированиеТоваровОстатки.Номенклатура
        |        ПО ТабДок.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
        |
        |УПОРЯДОЧИТЬ ПО
        |    Номенклатура,
        |    ПартияДата
        |ИТОГИ
        |    МАКСИМУМ(Количество),
        |    МАКСИМУМ(Склад),
        |    СУММА(КоличествоОстаток),
        |    СУММА(СуммаОстаток)
        |ПО
        |    Номенклатура";
    
Потом делаю выборку:
ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
И все замечательно, только в ВыборкаНоменклатура.КоличествоЗабронированногоОстаток лежит null, несмотря на то, что по идее должно было замениться на 0. Сделал по аналогии с полями КоличествоОстаток и СуммаОстаток, там все отрабатывает на ура. Что не так?
1 rabbidX
 
27.09.17
14:32
(0) Конфигурацию БД не обновил?
2 1dvd
 
27.09.17
14:34
Включи в итоги КоличествоЗабронированногоОстаток
3 Господин ПЖ
 
27.09.17
14:35
итоги бредовые
4 apprentice
 
27.09.17
14:39
(0) - обновил

        |ИТОГИ
        |    МАКСИМУМ(Количество),
        |    МАКСИМУМ(Склад),
        |    СУММА(КоличествоОстаток),
        |    СУММА(СуммаОстаток),
        |    СУММА(КоличествоЗабронированногоОстаток)

Так тоже не робит
5 Масянька
 
27.09.17
14:40
(0) Щас придет Ненавижу 1С и объяснит тебе, что есть NULL...
6 apprentice
 
27.09.17
14:41
Тьфу, все работает
Забыл дописать естьnull)
7 apprentice
 
27.09.17
14:42
1dvd и Господин ПЖ - Спасибо
Программист всегда исправляет последнюю ошибку.