Имя: Пароль:
1C
1С v8
запрос по неотгруженным заказам и остаткам номенклатуры
0 rassigor
 
20.02.16
09:43
Делаю Динамический список, в нем мне нужны заказы покупателей не отгруженные, но при этом с номенклатурой которая есть на остатках.
Те если хоть одна номенклатура есть на остатках.

В динамическом списке пишу, как мне добавить в него отбор по Остаткам (Регистр ЗапасыНаСкладах)

ВЫБРАТЬ
    ВЫБОР
        КОГДА ДокументЗаказПокупателя.Проведен
                И ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Открыт)
            ТОГДА ВЫБОР
                    КОГДА ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                            И ГрафикВыполненияПлан.Заказ ЕСТЬ NULL
                        ТОГДА ВЫБОР
                                КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                        И ДокументЗаказПокупателя.Закрыт
                                    ТОГДА 2
                                ИНАЧЕ 0
                            КОНЕЦ
                    ИНАЧЕ ВЫБОР
                            КОГДА ЕСТЬNULL(ГрафикВыполненияФакт.Выполнено, 0) = 0
                                    И ЕСТЬNULL(ГрафикВыполненияПлан.Выполнено, 0) = 0
                                ТОГДА ВЫБОР
                                        КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                                И НЕ ДокументЗаказПокупателя.Закрыт
                                            ТОГДА ВЫБОР
                                                    КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                                И ДокументЗаказПокупателя.Финиш < &АкутальнаяДатаВремяСеанса
                                                            ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                                И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                                И ГрафикВыполненияФакт.Период < &АкутальнаяДатаСеанса
                                                        ТОГДА 6
                                                    КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                                И ДокументЗаказПокупателя.Старт <= &АкутальнаяДатаСеанса
                                                                И ДокументЗаказПокупателя.Финиш >= &АкутальнаяДатаВремяСеанса
                                                            ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                                И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                                И ГрафикВыполненияФакт.Период = &АкутальнаяДатаСеанса
                                                        ТОГДА 4
                                                    ИНАЧЕ 2
                                                КОНЕЦ
                                        ИНАЧЕ 2
                                    КОНЕЦ
                            ИНАЧЕ ВЫБОР
                                    КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                            И НЕ ДокументЗаказПокупателя.Закрыт
                                        ТОГДА ВЫБОР
                                                КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                            И ДокументЗаказПокупателя.Финиш < &АкутальнаяДатаВремяСеанса
                                                        ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                            И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                            И ГрафикВыполненияФакт.Период < &АкутальнаяДатаСеанса
                                                    ТОГДА 5
                                                КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                            И ДокументЗаказПокупателя.Старт <= &АкутальнаяДатаСеанса
                                                            И ДокументЗаказПокупателя.Финиш >= &АкутальнаяДатаВремяСеанса
                                                        ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                            И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                            И ГрафикВыполненияФакт.Период = &АкутальнаяДатаСеанса
                                                    ТОГДА 3
                                                ИНАЧЕ 1
                                            КОНЕЦ
                                    ИНАЧЕ 1
                                КОНЕЦ
                        КОНЕЦ
                КОНЕЦ
        ИНАЧЕ 2
    КОНЕЦ КАК НомерКартинкиОтгрузки,
    ВЫБОР
        КОГДА ДокументЗаказПокупателя.Проведен
            ТОГДА ВЫБОР
                    КОГДА (ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Открыт)
                            ИЛИ ЕСТЬNULL(ФактОплаты.Сумма, 0) <> 0)
                            И ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0) = 0
                        ТОГДА ВЫБОР
                                КОГДА ДокументЗаказПокупателя.ЗапланироватьОплату
                                        И ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                        И НЕ ДокументЗаказПокупателя.Закрыт
                                        И НЕ ГрафикОплаты.СчетНаОплату ЕСТЬ NULL
                                    ТОГДА ВЫБОР
                                            КОГДА ГрафикОплаты.Период < &АкутальнаяДатаСеанса
                                                ТОГДА 6
                                            КОГДА ГрафикОплаты.Период = &АкутальнаяДатаСеанса
                                                ТОГДА 4
                                            ИНАЧЕ 2
                                        КОНЕЦ
                                ИНАЧЕ 2
                            КОНЕЦ
                    КОГДА ЕСТЬNULL(ФактОплаты.Сумма, 0) <= ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0)
                        ТОГДА ВЫБОР
                                КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                        И ДокументЗаказПокупателя.Закрыт
                                    ТОГДА 2
                                ИНАЧЕ 0
                            КОНЕЦ
                    ИНАЧЕ ВЫБОР
                            КОГДА ДокументЗаказПокупателя.ЗапланироватьОплату
                                    И ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                    И НЕ ДокументЗаказПокупателя.Закрыт
                                    И НЕ ГрафикОплаты.СчетНаОплату ЕСТЬ NULL
                                ТОГДА ВЫБОР
                                        КОГДА ГрафикОплаты.Период < &АкутальнаяДатаСеанса
                                            ТОГДА 5
                                        КОГДА ГрафикОплаты.Период = &АкутальнаяДатаСеанса
                                            ТОГДА 3
                                        ИНАЧЕ 1
                                    КОНЕЦ
                            ИНАЧЕ 1
                        КОНЕЦ
                КОНЕЦ
        ИНАЧЕ 2
    КОНЕЦ КАК НомерКартинкиОплаты,
    ДокументЗаказПокупателя.Ссылка,
    ДокументЗаказПокупателя.Номер,
    ДокументЗаказПокупателя.Дата,
    ДокументЗаказПокупателя.Автор,
    ДокументЗаказПокупателя.ВалютаДокумента,
    ДокументЗаказПокупателя.ДатаОтгрузки,
    ДокументЗаказПокупателя.Договор,
    ДокументЗаказПокупателя.Комментарий,
    ДокументЗаказПокупателя.Контрагент,
    ДокументЗаказПокупателя.Организация,
    ДокументЗаказПокупателя.Ответственный,
    ДокументЗаказПокупателя.СостояниеЗаказа,
    ВЫБОР
        КОГДА (ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Открыт)
                ИЛИ ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе))
                И НЕ ДокументЗаказПокупателя.Закрыт
            ТОГДА "В работе"
        ИНАЧЕ ВЫБОР
                КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Выполнен)
                    ТОГДА "Выполнен"
                ИНАЧЕ "Отменен"
            КОНЕЦ
    КОНЕЦ КАК СтатусЗаказа,
    ДокументЗаказПокупателя.Старт,
    ДокументЗаказПокупателя.СтруктурнаяЕдиницаПродажи,
    ДокументЗаказПокупателя.СтруктурнаяЕдиницаРезерв,
    ДокументЗаказПокупателя.СуммаДокумента,
    ДокументЗаказПокупателя.Финиш,
    ДокументЗаказПокупателя.Ячейка,
    ВЫБОР
        КОГДА ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                И ГрафикВыполненияПлан.Заказ ЕСТЬ NULL
            ТОГДА 0
        ИНАЧЕ 1
    КОНЕЦ КАК КОтгрузке,
    ЕСТЬNULL(ФактОплаты.Сумма, 0) - ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) - ЕСТЬNULL(ФактОплаты.СуммаАванса, 0) КАК КОплате,
    ВЫБОР
        КОГДА ДокументЗаказПокупателя.Проведен
                И ДокументЗаказПокупателя.СуммаДокумента > 0
            ТОГДА ВЫРАЗИТЬ((ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0)) * 100 / ДокументЗаказПокупателя.СуммаДокумента КАК ЧИСЛО(15, 2))
        ИНАЧЕ 0
    КОНЕЦ КАК ПроцентОплаты,
    ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0) КАК Оплачено,
    ДокументЗаказПокупателя.Контрагент.КонтактноеЛицо КАК КонтактноеЛицо,
    СостоянияЭД.СостояниеВерсииЭД
ИЗ
    РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(
            ,
            ,
            Авто,
            ,
            ЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаПродажу)
                И (Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
                    ИЛИ Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга))) КАК ЗаказыПокупателейОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ДокументЗаказПокупателя
        ПО ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = ДокументЗаказПокупателя.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикВыполненияЗаказов КАК ГрафикВыполнения
        ПО (ДокументЗаказПокупателя.Ссылка = ГрафикВыполнения.Заказ)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикВыполненияЗаказов КАК ГрафикВыполненияФакт
        ПО (ДокументЗаказПокупателя.Ссылка = ГрафикВыполненияФакт.Заказ)
            И (ГрафикВыполненияФакт.Период <= &АкутальнаяДатаСеанса)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикВыполненияЗаказов КАК ГрафикВыполненияПлан
        ПО (ДокументЗаказПокупателя.Ссылка = ГрафикВыполненияПлан.Заказ)
            И (ГрафикВыполненияПлан.Период > &АкутальнаяДатаСеанса)
        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикОплатыЗаказов КАК ГрафикОплаты
        ПО (ДокументЗаказПокупателя.Ссылка = ГрафикОплаты.СчетНаОплату)
            И (ГрафикОплаты.Период <= &АкутальнаяДатаСеанса)}
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФактОплатыЗаказов КАК ФактОплаты
        ПО (ДокументЗаказПокупателя.Ссылка = ФактОплаты.СчетНаОплату)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
        ПО (ДокументЗаказПокупателя.Ссылка = СостоянияЭД.СсылкаНаОбъект)
ГДЕ
    (НЕ ГрафикВыполнения.Заказ ЕСТЬ NULL
            ИЛИ ДокументЗаказПокупателя.Ссылка В (&СписокЗаказов))
    И НЕ ДокументЗаказПокупателя.Закрыт
    И ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаПродажу)
1 rassigor
 
20.02.16
09:45
УНФ 1.6.3.11
2 rassigor
 
24.02.16
08:17
апну
3 samozvanec
 
24.02.16
08:32
ctrl+A -> Delete
4 HeKrendel
 
24.02.16
08:35
(3) Плюсану, постановка задачи ацтой

(0) У тебя там 3 тысячи заказов, что такой отчет актуален?
5 rassigor
 
24.02.16
08:42
заказов мало, поэтому и постановка задача такая
6 samozvanec
 
24.02.16
08:43
фу какой запрос. а потом жалуются, что 1с тормозит. не надо такое в ДС, сделай отчетом
7 rassigor
 
24.02.16
08:46
Это ТИПОВОЙ ЗАПРОС, который стоит в динамическом списке в УНФ, нужно его модифицировать, не я его писал.
8 samozvanec
 
24.02.16
08:57
(7) см. (3)  :)
9 samozvanec
 
24.02.16
09:24
в поддержку моего мнения
"Это ТИПОВОЙ ЗАПРОС" "ГрафикВыполненияПлан.Период > &АкутальнаяДатаСеанса"
что за "Акутальная" дата такая? проф сленг?
10 rassigor
 
24.02.16
09:30
(9)Ага
но суть не в этом, суть в том, что надо сравнить с Остатками все это в запросе, и выводить те заказы, товары в которых есть на остатках на определенном складе, чтобы нажать кнопку отгрузить и они списались по остаткам
11 samozvanec
 
24.02.16
09:33
(10) хитрый какой. что не получается? с остатками соедини и отбери
12 Dmitry1c
 
24.02.16
09:53
Оффтоп, а нет ли возможности на мисте указать кусок кода, чтобы было по-человечески? типа [code]Код[/code]
13 Качели
 
24.02.16
09:56


14 Качели
 
24.02.16
09:56
ы "

"
15 Качели
 
24.02.16
09:56
16 rassigor
 
24.02.16
14:18
[code]
ВЫБРАТЬ
   ВЫБОР
       КОГДА ДокументЗаказПокупателя.Проведен
               И ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Открыт)
           ТОГДА ВЫБОР
                   КОГДА ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                           И ГрафикВыполненияПлан.Заказ ЕСТЬ NULL
                       ТОГДА ВЫБОР
                               КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                       И ДокументЗаказПокупателя.Закрыт
                                   ТОГДА 2
                               ИНАЧЕ 0
                           КОНЕЦ
                   ИНАЧЕ ВЫБОР
                           КОГДА ЕСТЬNULL(ГрафикВыполненияФакт.Выполнено, 0) = 0
                                   И ЕСТЬNULL(ГрафикВыполненияПлан.Выполнено, 0) = 0
                               ТОГДА ВЫБОР
                                       КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                               И НЕ ДокументЗаказПокупателя.Закрыт
                                           ТОГДА ВЫБОР
                                                   КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                               И ДокументЗаказПокупателя.Финиш < &АкутальнаяДатаВремяСеанса
                                                           ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                               И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                               И ГрафикВыполненияФакт.Период < &АкутальнаяДатаСеанса
                                                       ТОГДА 6
                                                   КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                               И ДокументЗаказПокупателя.Старт <= &АкутальнаяДатаСеанса
                                                               И ДокументЗаказПокупателя.Финиш >= &АкутальнаяДатаВремяСеанса
                                                           ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                               И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                               И ГрафикВыполненияФакт.Период = &АкутальнаяДатаСеанса
                                                       ТОГДА 4
                                                   ИНАЧЕ 2
                                               КОНЕЦ
                                       ИНАЧЕ 2
                                   КОНЕЦ
                           ИНАЧЕ ВЫБОР
                                   КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                           И НЕ ДокументЗаказПокупателя.Закрыт
                                       ТОГДА ВЫБОР
                                               КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                           И ДокументЗаказПокупателя.Финиш < &АкутальнаяДатаВремяСеанса
                                                       ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                           И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                           И ГрафикВыполненияФакт.Период < &АкутальнаяДатаСеанса
                                                   ТОГДА 5
                                               КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                           И ДокументЗаказПокупателя.Старт <= &АкутальнаяДатаСеанса
                                                           И ДокументЗаказПокупателя.Финиш >= &АкутальнаяДатаВремяСеанса
                                                       ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                           И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                           И ГрафикВыполненияФакт.Период = &АкутальнаяДатаСеанса
                                                   ТОГДА 3
                                               ИНАЧЕ 1
                                           КОНЕЦ
                                   ИНАЧЕ 1
                               КОНЕЦ
                       КОНЕЦ
               КОНЕЦ
       ИНАЧЕ 2
   КОНЕЦ КАК НомерКартинкиОтгрузки,
   ВЫБОР
       КОГДА ДокументЗаказПокупателя.Проведен
           ТОГДА ВЫБОР
                   КОГДА (ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Открыт)
                           ИЛИ ЕСТЬNULL(ФактОплаты.Сумма, 0) <> 0)
                           И ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0) = 0
                       ТОГДА ВЫБОР
                               КОГДА ДокументЗаказПокупателя.ЗапланироватьОплату
                                       И ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                       И НЕ ДокументЗаказПокупателя.Закрыт
                                       И НЕ ГрафикОплаты.СчетНаОплату ЕСТЬ NULL
                                   ТОГДА ВЫБОР
                                           КОГДА ГрафикОплаты.Период < &АкутальнаяДатаСеанса
                                               ТОГДА 6
                                           КОГДА ГрафикОплаты.Период = &АкутальнаяДатаСеанса
                                               ТОГДА 4
                                           ИНАЧЕ 2
                                       КОНЕЦ
                               ИНАЧЕ 2
                           КОНЕЦ
                   КОГДА ЕСТЬNULL(ФактОплаты.Сумма, 0) <= ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0)
                       ТОГДА ВЫБОР
                               КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                       И ДокументЗаказПокупателя.Закрыт
                                   ТОГДА 2
                               ИНАЧЕ 0
                           КОНЕЦ
                   ИНАЧЕ ВЫБОР
                           КОГДА ДокументЗаказПокупателя.ЗапланироватьОплату
                                   И ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                   И НЕ ДокументЗаказПокупателя.Закрыт
                                   И НЕ ГрафикОплаты.СчетНаОплату ЕСТЬ NULL
                               ТОГДА ВЫБОР
                                       КОГДА ГрафикОплаты.Период < &АкутальнаяДатаСеанса
                                           ТОГДА 5
                                       КОГДА ГрафикОплаты.Период = &АкутальнаяДатаСеанса
                                           ТОГДА 3
                                       ИНАЧЕ 1
                                   КОНЕЦ
                           ИНАЧЕ 1
                       КОНЕЦ
               КОНЕЦ
       ИНАЧЕ 2
   КОНЕЦ КАК НомерКартинкиОплаты,
   ДокументЗаказПокупателя.Ссылка,
   ДокументЗаказПокупателя.Номер,
   ДокументЗаказПокупателя.Дата,
   ДокументЗаказПокупателя.Автор,
   ДокументЗаказПокупателя.ВалютаДокумента,
   ДокументЗаказПокупателя.ДатаОтгрузки,
   ДокументЗаказПокупателя.Договор,
   ДокументЗаказПокупателя.Комментарий,
   ДокументЗаказПокупателя.Контрагент,
   ДокументЗаказПокупателя.Организация,
   ДокументЗаказПокупателя.Ответственный,
   ДокументЗаказПокупателя.СостояниеЗаказа,
   ВЫБОР
       КОГДА (ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Открыт)
               ИЛИ ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе))
               И НЕ ДокументЗаказПокупателя.Закрыт
           ТОГДА "В работе"
       ИНАЧЕ ВЫБОР
               КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Выполнен)
                   ТОГДА "Выполнен"
               ИНАЧЕ "Отменен"
           КОНЕЦ
   КОНЕЦ КАК СтатусЗаказа,
   ДокументЗаказПокупателя.Старт,
   ДокументЗаказПокупателя.СтруктурнаяЕдиницаПродажи,
   ДокументЗаказПокупателя.СтруктурнаяЕдиницаРезерв,
   ДокументЗаказПокупателя.СуммаДокумента,
   ДокументЗаказПокупателя.Финиш,
   ДокументЗаказПокупателя.Ячейка,
   ВЫБОР
       КОГДА ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
               И ГрафикВыполненияПлан.Заказ ЕСТЬ NULL
           ТОГДА 0
       ИНАЧЕ 1
   КОНЕЦ КАК КОтгрузке,
   ЕСТЬNULL(ФактОплаты.Сумма, 0) - ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) - ЕСТЬNULL(ФактОплаты.СуммаАванса, 0) КАК КОплате,
   ВЫБОР
       КОГДА ДокументЗаказПокупателя.Проведен
               И ДокументЗаказПокупателя.СуммаДокумента > 0
           ТОГДА ВЫРАЗИТЬ((ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0)) * 100 / ДокументЗаказПокупателя.СуммаДокумента КАК ЧИСЛО(15, 2))
       ИНАЧЕ 0
   КОНЕЦ КАК ПроцентОплаты,
   ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0) КАК Оплачено,
   ДокументЗаказПокупателя.Контрагент.КонтактноеЛицо КАК КонтактноеЛицо,
   СостоянияЭД.СостояниеВерсииЭД
ИЗ
   РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(
           ,
           ,
           Авто,
           ,
           ЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаПродажу)
               И (Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
                   ИЛИ Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга))) КАК ЗаказыПокупателейОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ДокументЗаказПокупателя
       ПО ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = ДокументЗаказПокупателя.Ссылка
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикВыполненияЗаказов КАК ГрафикВыполнения
       ПО (ДокументЗаказПокупателя.Ссылка = ГрафикВыполнения.Заказ)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикВыполненияЗаказов КАК ГрафикВыполненияФакт
       ПО (ДокументЗаказПокупателя.Ссылка = ГрафикВыполненияФакт.Заказ)
           И (ГрафикВыполненияФакт.Период <= &АкутальнаяДатаСеанса)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикВыполненияЗаказов КАК ГрафикВыполненияПлан
       ПО (ДокументЗаказПокупателя.Ссылка = ГрафикВыполненияПлан.Заказ)
           И (ГрафикВыполненияПлан.Период > &АкутальнаяДатаСеанса)
       {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикОплатыЗаказов КАК ГрафикОплаты
       ПО (ДокументЗаказПокупателя.Ссылка = ГрафикОплаты.СчетНаОплату)
           И (ГрафикОплаты.Период <= &АкутальнаяДатаСеанса)}
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФактОплатыЗаказов КАК ФактОплаты
       ПО (ДокументЗаказПокупателя.Ссылка = ФактОплаты.СчетНаОплату)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
       ПО (ДокументЗаказПокупателя.Ссылка = СостоянияЭД.СсылкаНаОбъект)
ГДЕ
   (НЕ ГрафикВыполнения.Заказ ЕСТЬ NULL
           ИЛИ ДокументЗаказПокупателя.Ссылка В (&СписокЗаказов))
   И НЕ ДокументЗаказПокупателя.Закрыт
   И ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаПродажу)
[/code]
17 rassigor
 
24.02.16
14:19

ВЫБРАТЬ
   ВЫБОР
       КОГДА ДокументЗаказПокупателя.Проведен
               И ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Открыт)
           ТОГДА ВЫБОР
                   КОГДА ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                           И ГрафикВыполненияПлан.Заказ ЕСТЬ NULL
                       ТОГДА ВЫБОР
                               КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                       И ДокументЗаказПокупателя.Закрыт
                                   ТОГДА 2
                               ИНАЧЕ 0
                           КОНЕЦ
                   ИНАЧЕ ВЫБОР
                           КОГДА ЕСТЬNULL(ГрафикВыполненияФакт.Выполнено, 0) = 0
                                   И ЕСТЬNULL(ГрафикВыполненияПлан.Выполнено, 0) = 0
                               ТОГДА ВЫБОР
                                       КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                               И НЕ ДокументЗаказПокупателя.Закрыт
                                           ТОГДА ВЫБОР
                                                   КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                               И ДокументЗаказПокупателя.Финиш < &АкутальнаяДатаВремяСеанса
                                                           ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                               И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                               И ГрафикВыполненияФакт.Период < &АкутальнаяДатаСеанса
                                                       ТОГДА 6
                                                   КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                               И ДокументЗаказПокупателя.Старт <= &АкутальнаяДатаСеанса
                                                               И ДокументЗаказПокупателя.Финиш >= &АкутальнаяДатаВремяСеанса
                                                           ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                               И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                               И ГрафикВыполненияФакт.Период = &АкутальнаяДатаСеанса
                                                       ТОГДА 4
                                                   ИНАЧЕ 2
                                               КОНЕЦ
                                       ИНАЧЕ 2
                                   КОНЕЦ
                           ИНАЧЕ ВЫБОР
                                   КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                           И НЕ ДокументЗаказПокупателя.Закрыт
                                       ТОГДА ВЫБОР
                                               КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                           И ДокументЗаказПокупателя.Финиш < &АкутальнаяДатаВремяСеанса
                                                       ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                           И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                           И ГрафикВыполненияФакт.Период < &АкутальнаяДатаСеанса
                                                   ТОГДА 5
                                               КОГДА ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                           И ДокументЗаказПокупателя.Старт <= &АкутальнаяДатаСеанса
                                                           И ДокументЗаказПокупателя.Финиш >= &АкутальнаяДатаВремяСеанса
                                                       ИЛИ ДокументЗаказПокупателя.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаряд)
                                                           И НЕ ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
                                                           И ГрафикВыполненияФакт.Период = &АкутальнаяДатаСеанса
                                                   ТОГДА 3
                                               ИНАЧЕ 1
                                           КОНЕЦ
                                   ИНАЧЕ 1
                               КОНЕЦ
                       КОНЕЦ
               КОНЕЦ
       ИНАЧЕ 2
   КОНЕЦ КАК НомерКартинкиОтгрузки,
   ВЫБОР
       КОГДА ДокументЗаказПокупателя.Проведен
           ТОГДА ВЫБОР
                   КОГДА (ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Открыт)
                           ИЛИ ЕСТЬNULL(ФактОплаты.Сумма, 0) <> 0)
                           И ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0) = 0
                       ТОГДА ВЫБОР
                               КОГДА ДокументЗаказПокупателя.ЗапланироватьОплату
                                       И ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                       И НЕ ДокументЗаказПокупателя.Закрыт
                                       И НЕ ГрафикОплаты.СчетНаОплату ЕСТЬ NULL
                                   ТОГДА ВЫБОР
                                           КОГДА ГрафикОплаты.Период < &АкутальнаяДатаСеанса
                                               ТОГДА 6
                                           КОГДА ГрафикОплаты.Период = &АкутальнаяДатаСеанса
                                               ТОГДА 4
                                           ИНАЧЕ 2
                                       КОНЕЦ
                               ИНАЧЕ 2
                           КОНЕЦ
                   КОГДА ЕСТЬNULL(ФактОплаты.Сумма, 0) <= ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0)
                       ТОГДА ВЫБОР
                               КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                       И ДокументЗаказПокупателя.Закрыт
                                   ТОГДА 2
                               ИНАЧЕ 0
                           КОНЕЦ
                   ИНАЧЕ ВЫБОР
                           КОГДА ДокументЗаказПокупателя.ЗапланироватьОплату
                                   И ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе)
                                   И НЕ ДокументЗаказПокупателя.Закрыт
                                   И НЕ ГрафикОплаты.СчетНаОплату ЕСТЬ NULL
                               ТОГДА ВЫБОР
                                       КОГДА ГрафикОплаты.Период < &АкутальнаяДатаСеанса
                                           ТОГДА 5
                                       КОГДА ГрафикОплаты.Период = &АкутальнаяДатаСеанса
                                           ТОГДА 3
                                       ИНАЧЕ 1
                                   КОНЕЦ
                           ИНАЧЕ 1
                       КОНЕЦ
               КОНЕЦ
       ИНАЧЕ 2
   КОНЕЦ КАК НомерКартинкиОплаты,
   ДокументЗаказПокупателя.Ссылка,
   ДокументЗаказПокупателя.Номер,
   ДокументЗаказПокупателя.Дата,
   ДокументЗаказПокупателя.Автор,
   ДокументЗаказПокупателя.ВалютаДокумента,
   ДокументЗаказПокупателя.ДатаОтгрузки,
   ДокументЗаказПокупателя.Договор,
   ДокументЗаказПокупателя.Комментарий,
   ДокументЗаказПокупателя.Контрагент,
   ДокументЗаказПокупателя.Организация,
   ДокументЗаказПокупателя.Ответственный,
   ДокументЗаказПокупателя.СостояниеЗаказа,
   ВЫБОР
       КОГДА (ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Открыт)
               ИЛИ ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВРаботе))
               И НЕ ДокументЗаказПокупателя.Закрыт
           ТОГДА "В работе"
       ИНАЧЕ ВЫБОР
               КОГДА ДокументЗаказПокупателя.СостояниеЗаказа.СтатусЗаказа = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Выполнен)
                   ТОГДА "Выполнен"
               ИНАЧЕ "Отменен"
           КОНЕЦ
   КОНЕЦ КАК СтатусЗаказа,
   ДокументЗаказПокупателя.Старт,
   ДокументЗаказПокупателя.СтруктурнаяЕдиницаПродажи,
   ДокументЗаказПокупателя.СтруктурнаяЕдиницаРезерв,
   ДокументЗаказПокупателя.СуммаДокумента,
   ДокументЗаказПокупателя.Финиш,
   ДокументЗаказПокупателя.Ячейка,
   ВЫБОР
       КОГДА ГрафикВыполненияФакт.Заказ ЕСТЬ NULL
               И ГрафикВыполненияПлан.Заказ ЕСТЬ NULL
           ТОГДА 0
       ИНАЧЕ 1
   КОНЕЦ КАК КОтгрузке,
   ЕСТЬNULL(ФактОплаты.Сумма, 0) - ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) - ЕСТЬNULL(ФактОплаты.СуммаАванса, 0) КАК КОплате,
   ВЫБОР
       КОГДА ДокументЗаказПокупателя.Проведен
               И ДокументЗаказПокупателя.СуммаДокумента > 0
           ТОГДА ВЫРАЗИТЬ((ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0)) * 100 / ДокументЗаказПокупателя.СуммаДокумента КАК ЧИСЛО(15, 2))
       ИНАЧЕ 0
   КОНЕЦ КАК ПроцентОплаты,
   ЕСТЬNULL(ФактОплаты.СуммаОплаты, 0) + ЕСТЬNULL(ФактОплаты.СуммаАванса, 0) КАК Оплачено,
   ДокументЗаказПокупателя.Контрагент.КонтактноеЛицо КАК КонтактноеЛицо,
   СостоянияЭД.СостояниеВерсииЭД
ИЗ
   РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(
           ,
           ,
           Авто,
           ,
           ЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаПродажу)
               И (Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
                   ИЛИ Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга))) КАК ЗаказыПокупателейОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ДокументЗаказПокупателя
       ПО ЗаказыПокупателейОстаткиИОбороты.ЗаказПокупателя = ДокументЗаказПокупателя.Ссылка
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикВыполненияЗаказов КАК ГрафикВыполнения
       ПО (ДокументЗаказПокупателя.Ссылка = ГрафикВыполнения.Заказ)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикВыполненияЗаказов КАК ГрафикВыполненияФакт
       ПО (ДокументЗаказПокупателя.Ссылка = ГрафикВыполненияФакт.Заказ)
           И (ГрафикВыполненияФакт.Период <= &АкутальнаяДатаСеанса)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикВыполненияЗаказов КАК ГрафикВыполненияПлан
       ПО (ДокументЗаказПокупателя.Ссылка = ГрафикВыполненияПлан.Заказ)
           И (ГрафикВыполненияПлан.Период > &АкутальнаяДатаСеанса)
       {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикОплатыЗаказов КАК ГрафикОплаты
       ПО (ДокументЗаказПокупателя.Ссылка = ГрафикОплаты.СчетНаОплату)
           И (ГрафикОплаты.Период <= &АкутальнаяДатаСеанса)}
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФактОплатыЗаказов КАК ФактОплаты
       ПО (ДокументЗаказПокупателя.Ссылка = ФактОплаты.СчетНаОплату)
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
       ПО (ДокументЗаказПокупателя.Ссылка = СостоянияЭД.СсылкаНаОбъект)
ГДЕ
   (НЕ ГрафикВыполнения.Заказ ЕСТЬ NULL
           ИЛИ ДокументЗаказПокупателя.Ссылка В (&СписокЗаказов))
   И НЕ ДокументЗаказПокупателя.Закрыт
   И ДокументЗаказПокупателя.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЗаказПокупателя.ЗаказНаПродажу)
18 rassigor
 
24.02.16
14:19
простите за прошлый косяк) теперь указал правильно
19 rassigor
 
24.02.16
14:48
Внутреннее соединение
Используя внутреннее соединение мы говорим системе, что в результате хотим видеть только те записи, которые удовлетворяют условию связи как из правой таблицы, так и из левой. Таким образом, количество результирующих записей будет меньше или равно количеству записей самой "короткой таблицы", участвующей в соединении. Применим внутреннее соединение к полям Товар и Цвет наших таблиц:



Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Товар,
    |    Номенклатура.Цвет,
    |    Остатки.Количество КАК Количество
    |ИЗ
    |    Номенклатура КАК Номенклатура
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Остатки КАК Остатки
    |        ПО Номенклатура.Товар = Остатки.Товар
    |            И Номенклатура.Цвет = Остатки.Цвет";

Правильно ли я понел, что мне нужно внутренним соединением связать

Заказы и остатки
чтобы остались только те заказы, в которых есть остатки
20 rassigor
 
24.02.16
14:58
вот так?


    "ВЫБРАТЬ
        |    ЗаказыПокупателейОстатки.ЗаказПокупателя,
        |    ЗаказыПокупателейОстатки.Номенклатура,
        |    ЗаказыПокупателейОстатки.Характеристика,
        |    ЗаказыПокупателейОстатки.КоличествоОстаток,
        |    ЗапасыОстатки.СтруктурнаяЕдиница,
        |    ЗапасыОстатки.Номенклатура КАК Номенклатура1,
        |    ЗапасыОстатки.Характеристика КАК Характеристика1,
        |    ЗапасыОстатки.КоличествоОстаток КАК КоличествоОстаток1,
        |    ЗапасыОстатки.ЗаказПокупателя КАК ЗаказПокупателя2
        |ИЗ
        |    РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Запасы.Остатки КАК ЗапасыОстатки
        |        ПО (ЗаказыПокупателейОстатки.Номенклатура = ЗапасыОстатки.Номенклатура)
        |            И (ЗаказыПокупателейОстатки.Характеристика = ЗапасыОстатки.Характеристика)
        |
        |СГРУППИРОВАТЬ ПО
        |    ЗаказыПокупателейОстатки.ЗаказПокупателя,
        |    ЗаказыПокупателейОстатки.Номенклатура