Имя: Пароль:
1C
1С v8
Отбор в виртуальной таблице
,
0 serg-lom89
 
15.09.14
10:16
есть витруальная таблица ПродажиОбороты
Есть измерение ДокументПродажи
мне нужно отобрать в запросе только те документы по которым склад не равен выбранному складу.если не делаю отбор по скалду то в консоли запросов показывает что есть такой склад,когда ставлю отбор,результата нету ввобще...

в Документы продажи учитываются документы
ВозвратТоваровОтПокупателя у него реквизит СкладОрдер
ОтчетКомиссионераОПродажах     реквизит    склад
ОтчетКомитентуОПродажах                   нету реквизита склад!
ОтчетОРозничныхПродажах            реквизит склад
РеализацияТоваровУслуг             реквизит

Вот и сам запрос

ВЫБРАТЬ
    ПродажиОбороты.Контрагент,
    ВЫБОР
        КОГДА (НЕ ПродажиОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя)
            ТОГДА ПродажиОбороты.СтоимостьОборот
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаПродажи,
    ВЫБОР
        КОГДА ПродажиОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя
            ТОГДА ПродажиОбороты.СтоимостьОборот
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаВозврата,
    ПродажиОбороты.Регистратор,
    ПродажиОбороты.ДокументПродажи.СкладОрдер,
    ПродажиОбороты.ДокументПродажи.Склад,
    ПродажиОбороты.ДокументПродажи.Склад КАК ДокументПродажиСклад1,
    ПродажиОбороты.ДокументПродажи.Склад КАК ДокументПродажиСклад2
ИЗ
    РегистрНакопления.Продажи.Обороты(
            &НачалоПериода,
            &КонецПериода,
            Регистратор,
            Организация = &Орг
                И ДокументПродажи.СкладОрдер = &Склад
                И ДокументПродажи.Склад = &Склад
                И ДокументПродажи.Склад = &Склад
                И ДокументПродажи.Склад = &Склад) КАК ПродажиОбороты


Подскажите,почему
1 serg-lom89
 
15.09.14
10:17
только в запросе я делал сейчас что бы был равен,данному складу,для проверки своей.первоначально конечно что бы не был равено)
2 Maxus43
 
15.09.14
10:20
И ДокументПродажи.Склад = &Склад
                И ДокументПродажи.Склад = &Склад
                И ДокументПродажи.Склад = &Склад)

Типа с первого раза СУБД не поймёт думаешь? надо 3 раза повторить обязательно?
3 Maxus43
 
15.09.14
10:21
И ДокументПродажи.СкладОрдер = &Склад
                И ДокументПродажи.Склад = &Склад

вот условие ключевое, ты в документы хоть зайди, есть ли такие вобще где ОБА склада одновременно одинаковые
4 Maxus43
 
15.09.14
10:21
ПродажиОбороты.ДокументПродажи.Склад,
    ПродажиОбороты.ДокументПродажи.Склад КАК ДокументПродажиСклад1,
    ПродажиОбороты.ДокументПродажи.Склад КАК ДокументПродажиСклад2

у тебя 3 - магическое число, или религиозное?
5 serg-lom89
 
15.09.14
10:26
(4) все понял..спасибо за объяснение))
еще вопрос..а как указать что бы склады не были равны складам в какой нить папке,в которой они находяться?
извиняюсь за тафтологию)
6 Maxus43
 
15.09.14
10:27
(5) Склад В ИЕРАРХИИ(&ГруппаСклада)
7 Timon1405
 
15.09.14
10:30
может быть примерно так

РегистрНакопления.Продажи.Обороты(
            ,
            ,
            ,
            ВЫБОР
                КОГДА ТИПЗНАЧЕНИЯ(ДокументПродажи) = ТИП(Документ.ВозвратТоваровОтПокупателя)
                    ТОГДА ДокументПродажи.СкладОрдер  = &Склад
                КОГДА ТИПЗНАЧЕНИЯ(ДокументПродажи) = ТИП(Документ.ОтчетКомитентуОПродажах)
                    ТОГДА ИСТИНА
                ИНАЧЕ ДокументПродажи.Склад = &Склад
            КОНЕЦ) КАК ПродажиОбороты
8 serg-lom89
 
15.09.14
10:47
получился результат запроска

Контрик  СуммаПродажи СуммаВозврата
Конт1         10000         5000
Конт2         230000         300
Конт5         123123        320
,,,,,,,,,,
а как теперь посчитать СуммаПродажи/СуммаВозврата?
9 serg-lom89
 
15.09.14
10:49
из запросах в шапке
10 serg-lom89
 
15.09.14
10:54
точнее вот из этого,переделаного

ВЫБРАТЬ
    ПродажиОбороты.Контрагент КАК Контрагент,
    СУММА(ВЫБОР
            КОГДА (НЕ ПродажиОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя)
                ТОГДА ПродажиОбороты.СтоимостьОборот
            ИНАЧЕ 0
        КОНЕЦ) КАК СуммаПродажи,
    СУММА(ВЫБОР
            КОГДА ПродажиОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя
                ТОГДА ПродажиОбороты.СтоимостьОборот * -1
            ИНАЧЕ 0
        КОНЕЦ) КАК СуммаВозврата
ИЗ
    РегистрНакопления.Продажи.Обороты(
            &НачалоПериода,
            &КонецПериода,
            Регистратор,
            Организация = &Орг
                И ДокументПродажи.Склад <> &Склад) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Контрагент

УПОРЯДОЧИТЬ ПО
    Контрагент