LINUX.ORG.RU

История изменений

Исправление NitroJunkie, (текущая версия) :

Так а все-таки. Код из примера:

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

СКД оптимизирует в:

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

Или нет?

Исходная версия NitroJunkie, :

Так а все-таки. Код из примера:

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

СКД оптимизирует в:

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

Или нет?