Имя: Пароль:
1C
1С v8
Полное соединение в запросе
0 DYS2012
 
15.01.15
09:15
Добрый день, гуру 1С!!!
Есть запрос по регистру бухгатерии:

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

результат выводится, счет в иерархии как надо
https://cloud.mail.ru/public/fccc92f7af1e/Безымянный2.png

Пытаюсь сделать полное соединение с аналогичным регистром

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

СГРУППИРОВАТЬ ПО
    ЕСТЬNULL(ОстаткиИОбороты.Счет, УправленческийОстаткиИОбороты.Счет),
    ЕСТЬNULL(ОстаткиИОбороты.Счет.Код, УправленческийОстаткиИОбороты.Счет.Код),
    ЕСТЬNULL(ОстаткиИОбороты.Счет.Наименование, УправленческийОстаткиИОбороты.Счет.Наименование),
    ЕСТЬNULL(ОстаткиИОбороты.Счет.Представление, УправленческийОстаткиИОбороты.Счет.Представление),
    ЕСТЬNULL(ОстаткиИОбороты.Счет.Забалансовый, УправленческийОстаткиИОбороты.Счет.Забалансовый)
ИТОГИ
    СУММА(СуммаНачальныйОстатокДт),
    СУММА(СуммаУпрНачальныйОстатокДт),
    СУММА(СуммаНачальныйОстатокКт),
    СУММА(СуммаУпрНачальныйОстатокКт),
    СУММА(СуммаОборотДт),
    СУММА(СуммаУпрОборотДт),
    СУММА(СуммаОборотКт),
    СУММА(СуммаУпрОборотКт),
    СУММА(СуммаКонечныйОстатокДт),
    СУММА(СуммаУпрКонечныйОстатокДт),
    СУММА(СуммаКонечныйОстатокКт),
    СУММА(СуммаУпрКонечныйОстатокКт)
ПО
    Счет  ИЕРАРХИЯ
АВТОУПОРЯДОЧИВАНИЕ

Результат таков -
https://cloud.mail.ru/public/5f2bcb70c3de/Безымянный.png

т.е. нет иерархии счетов и выводит незаполненные строки

Что не так? Или при соединении не срабатывает иерархия???
1 Maxus43
 
15.01.15
09:25
Счета одинаковых планов счетов?
по валюте зачем соединение?

З.ы. при чем тут иерархия? у тебя соединяет криво
2 Maxus43
 
15.01.15
09:26
Судя по цифрам дублирующимся - рвёт строки, имхо из-за валюты, если счета одинаковые
3 DYS2012
 
15.01.15
09:27
да валюта тут лишняя, но без нее такой же результат
4 Maxus43
 
15.01.15
09:28
Планы счетов разные поди
5 DYS2012
 
15.01.15
09:29
план счетов один
6 Maxus43
 
15.01.15
09:31
это чего за ересь?
    СУММА(ВЫБОР
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт ЕСТЬ NULL
                ТОГДА 0
            ИНАЧЕ ОстаткиИОбороты.СуммаНачальныйОстатокДт
        КОНЕЦ) КАК СуммаНачальныйОстатокДт,

просто
ЕСТЬNULL(ОстаткиИОбороты.СуммаНачальныйОстатокДт,0)
7 shuhard
 
15.01.15
09:32
(0) замени полное соединение на объединить всё и будет тебе счастье
8 DYS2012
 
15.01.15
09:33
(6) - спасибо за совет
9 DYS2012
 
15.01.15
09:33
(7) нет счастья такой же вывод