Имя: Пароль:
1C
1С v8
Соединить две таблицы - продажи этот месяц и прошлый
0 Patrio_
O_Muerte
 
17.11.13
20:20
Добрый вечер.
Есть задача - получить в одном отчете данные о продажах по номенклатуре по месяцам в двух разных колонках.

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

СГРУППИРОВАТЬ ПО
    ПродажиОборотыПрошлыйМесяц.КоличествоОборот,
    ПродажиОборотыПрошлыйМесяц.СтоимостьОборот,
    ПродажиОборотыЭтотМесяц.КоличествоОборот,
    ПродажиОборотыЭтотМесяц.СтоимостьОборот,
    ВЫБОР
        КОГДА ПродажиОборотыЭтотМесяц.Контрагент = Неопределено
            ТОГДА ПродажиОборотыПрошлыйМесяц.Контрагент
        ИНАЧЕ ПродажиОборотыЭтотМесяц.Контрагент
    КОНЕЦ,
    ВЫБОР
        КОГДА ПродажиОборотыЭтотМесяц.Номенклатура = Неопределено
            ТОГДА ПродажиОборотыПрошлыйМесяц.Номенклатура
        ИНАЧЕ ПродажиОборотыЭтотМесяц.Номенклатура
    КОНЕЦ

УПОРЯДОЧИТЬ ПО
    Контрагент
ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(СтоимостьОборот),
    СУММА(КоличествоОборот1),
    СУММА(СтоимостьОборот1)
ПО
    ОБЩИЕ,
    Контрагент

Мопед не катиться - ересь какая то.
Будьте любезны, подскажите где я неправ.
ЗЫЖ Пытался с NULL-ем - тоже фигня.
1 zak555
 
17.11.13
20:23
isnull
2 User_Agronom
 
17.11.13
20:24
СГРУППИРОВАТЬ ПО
Нафига? Не вижу ни одной агрегатной функции...
3 Patrio_
O_Muerte
 
17.11.13
20:28
ВЫБОР
        КОГДА ПродажиОборотыЭтотМесяц.Контрагент = NULL
            ТОГДА ПродажиОборотыПрошлыйМесяц.Контрагент
        ИНАЧЕ ПродажиОборотыЭтотМесяц.Контрагент
    КОНЕЦ КАК Контрагент,


(1)Такая конструкция не устроит? Я такую пробовал толку ноль
4 КонецЕсли
 
17.11.13
20:38
контрагентов и номенклатуру получить из таблицы продаж за оба месяца. левым содинением к ней присоденить цифры продаж за один месяц и другой, используя конструкцию естьнулл
5 hhhh
 
17.11.13
20:40
(3) КОГДА ПродажиОборотыЭтотМесяц.Контрагент ЕСТЬ NULL

ну когда вы уже запомните?
6 РазДва
 
17.11.13
21:48
Если месяца подряд, то зачем соединение? группировки по периоду достаточно.
7 РазДва
 
17.11.13
21:51
(6) Да и если не подряд, то объединить и сгруппировать, никаких соединений.
8 Ненавижу 1С
 
гуру
17.11.13
21:55
замените

ВЫБОР
        КОГДА ПродажиОборотыЭтотМесяц.Контрагент = Неопределено
            ТОГДА ПродажиОборотыПрошлыйМесяц.Контрагент
        ИНАЧЕ ПродажиОборотыЭтотМесяц.Контрагент
    КОНЕЦ КАК Контрагент

на

ЕСТЬNULL(ПродажиОборотыЭтотМесяц.Контрагент,ПродажиОборотыПрошлыйМесяц.Контрагент) КАК Контрагент
9 Patrio_
O_Muerte
 
18.11.13
11:14
Благодарю