Имя: Пароль:
1C
 
Документы с товарами из двух групп
0 Сотрудница
 
13.08.15
11:26
подскажите по запросу, плиз
нужно выбрать документы, у которых в тч есть товары из двух номенклатурных групп.
т.е. выбрать документы за день, например, если в документе есть товары из группы 1, то в поле время вывести 1, если товары из группы 2 то 2, а если есть товары из группы 1 и из группы 2, то вывести 3.
1 jsmith82
 
13.08.15
11:36
ВЫБРАТЬ
Товары.Ссылка КАК Ссылка,
ВЫБОР КОГДА Товары.Номенклатура.НоменклатурнаяГруппа = &НомГруппа1 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК Поле1,
ВЫБОР КОГДА Товары.Номенклатура.НоменклатурнаяГруппа = &НомГруппа2 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК Поле2
ПОМЕСТИТЬ Товары
ИЗ Документ.МойДокумент.Товары КАК Товары
ГДЕ Товары.Номенклатура.НоменклатурнаяГруппа = &НомГруппа1 ИЛИ Товары.Номенклатура.НоменклатурнаяГруппа = &НомГруппа2
;
/////////////
ВЫБРАТЬ
Товары.Ссылка КАК Ссылка,
СУММА(Поле1) КАК Поле1,
СУММА(Поле2) КАК Поле2
ПОМЕСТИТЬ Товары
ИЗ Товары КАК Товары
СГРУППИРОВАТЬ ПО
Товары.Ссылка;
/////////////
ВЫБРАТЬ
Товары.Ссылка,
ВЫБОР
КОГДА Товары.Поле1 > 0 И Товары.Поле2 = 0 ТОГДА 1
КОГДА Товары.Поле1 = 0 И Товары.Поле2 > 0 ТОГДА 2
КОГДА Товары.Поле1 > 0 И Товары.Поле2 > 0 ТОГДА 3
КОНЕЦ КАК Время
ИЗ Товары КАК Товары
2 Сотрудница
 
13.08.15
12:31
что-то в этом роде пыталась состряпать, проблема в том, что  группа не строго определена, нужно проверять на в иерархии, а ее в агрегатную функцию не запихать
3 jsmith82
 
13.08.15
12:32
ИЛИ .Родитель ИЛИ Родитель.Родитель ИЛИ Родитель.Родитель.Родитель
4 Сотрудница
 
13.08.15
12:43
6 уровней иерархии в справочнике... да и не кузяво как-то
5 Рэйв
 
13.08.15
12:45
Может проходили

...
ГДЕ Ляяля В Иерархии(&ХошСпивокХошГруппу)
6 mehfk
 
13.08.15
12:45
ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ вт_док
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
;

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

СГРУППИРОВАТЬ ПО
    Док.Ссылка

ОБЪЕДИНИТЬ ВСЕ

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

СГРУППИРОВАТЬ ПО
    Док.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Доки.Ссылка,
    СУММА(ВТ_Доки.Поле1) КАК Поле1
ИЗ
    ВТ_Доки КАК ВТ_Доки

СГРУППИРОВАТЬ ПО
    ВТ_Доки.Ссылка
7 mehfk
 
13.08.15
12:46
наоборот

ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ вт_док
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
;

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

СГРУППИРОВАТЬ ПО
    Док.Ссылка

ОБЪЕДИНИТЬ ВСЕ

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

СГРУППИРОВАТЬ ПО
    Док.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Доки.Ссылка,
    СУММА(ВТ_Доки.Поле1) КАК Поле1
ИЗ
    ВТ_Доки КАК ВТ_Доки

СГРУППИРОВАТЬ ПО
    ВТ_Доки.Ссылка
8 Рэйв
 
13.08.15
12:47
(6)(7)Херасе...Ну ты фанат :-))
9 Сотрудница
 
13.08.15
13:01
(5) это к чему вообще?