Имя: Пароль:
1C
1С v8
ОБЪЕДИНИТЬ в запросе
0 trv5
 
01.10.13
13:12
Есть следующий текст запроса

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Контрагент,
    ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Договор,
    &СтавкаНДС20 КАК СтавкаНДС,
    ВЫБОР
        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто2.ВедениеВзаиморасчетов = &ПоДоговору
            ТОГДА ""
        ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто3
    КОНЕЦ КАК ДокументРасчетов,
    СУММА(ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Счет361
                ТОГДА ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт
            ИНАЧЕ 0
        КОНЕЦ) КАК СуммаОтгрузки,
    СУММА(ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Счет361
                ТОГДА ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт
            ИНАЧЕ 0
        КОНЕЦ) КАК СуммаОплаты,
    СУММА(ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Счет6431
                ТОГДА ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт
            ИНАЧЕ 0
        КОНЕЦ) КАК НДСОплаты,
    СУММА(ВЫБОР
            КОГДА ХозрасчетныйОстаткиИОбороты.Счет = &Счет361
                ТОГДА ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт / 6
            ИНАЧЕ 0
        КОНЕЦ) КАК НДСОтгрузки,
    0 КАК СуммаОтгрузкиПродажи,
    0 КАК СуммаОплатыПродажи,
    0 КАК НДСОплатыПродажи,
    0 КАК НДСОтгрузкиПродажи
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачДата, &КонДата, , , Счет В (&СписокСчетов), &ВидыСубконто, ) КАК ХозрасчетныйОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстаткиИОбороты.Субконто1,
    ХозрасчетныйОстаткиИОбороты.Субконто2,
    ВЫБОР
        КОГДА ХозрасчетныйОстаткиИОбороты.Субконто2.ВедениеВзаиморасчетов = &ПоДоговору
            ТОГДА ""
        ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто3
    КОНЕЦ

ОБЪЕДИНИТЬ

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

УПОРЯДОЧИТЬ ПО
    Контрагент,
    Договор,
    ДокументРасчетов


Результат получается в виде
Договор    20%    Документ расчетов с контрагентом (ручной учет) ЛНА-000046 от 17.07.2012 0:00:00                    70 000            11 666,67
Договор    20%    Документ расчетов с контрагентом (ручной учет) ЛНА-000046 от 17.07.2012 0:00:00    70 000            11 666,666667                
Договор ТБК-Ю/зб/2010 (05.07.2010)    20%                            144 000    24 000    
Договор ТБК-Ю/зб/2010 (05.07.2010)    20%            144 000    24 000        

А Надо бы в виде

Договор    20%    Документ расчетов с контрагентом (ручной учет) ЛНА-000046 от 17.07.2012 0:00:00    70 000            11 666,666667    70 000            11 666,67
Договор ТБК-Ю/зб/2010 (05.07.2010)    20%            144 000    24 000            144 000    24 000
1 trv5
 
01.10.13
13:13
Плохо получилось... картинки не получается вставлять....

Строчки дублируются для одинакового Контрагента, договора, ставки НДС и Документа Расчетов, а хотелось бы в одной строчке получать
2 Галахад
 
гуру
01.10.13
13:15
Сгруппировать надо после объединения.
3 GANR
 
01.10.13
13:17
(0) Так надо сгруппировать после объединения. И ОБЪЕДИНИТЬ, скорее всего, желательно заменить на ОБЪЕДИНИТЬ ВСЕ (почитай про особенности той и иной конструкции).
4 GANR
 
01.10.13
13:18
А слово РАЗЛИЧНЫЕ зачем нужно в этом запросе - только суммы оно, скорее всего, выкинет и все.
5 trv5
 
01.10.13
13:21
(4) а как сгруппировать в конце?
ОБЪЕДИНИТЬ ВСЕ дает точно такой же результат
6 GANR
 
01.10.13
13:32
(5) При наличии одинаковых строк РАЗЛИЧНЫЕ точно приведет к непопаданию суммы в конечный результат.

1. Убрать РАЗЛИЧНЫЕ из обоих запросов
2. Обернуть (0) во вложенный запрос, либо поместить во временную таблицу.
3. Потом результат п.2 сгруппировать по Контрагент, Договор, Ставка НДС, Документ расчетов и взять агрегатные функции СУММА по остальным полям, имеющим числовое значение.
7 GANR
 
01.10.13
13:34
(0) Понятно зачем нужны временные таблицы и вложенные запросы???
8 trv5
 
01.10.13
13:48
(7) Спасибо!!!! Все получилось...
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.