Имя: Пароль:
1C
1С v8
Как в УТ 10.3 в РН "Взаиморасчеты с контрагентами" получить сальдо по Дт и Кт?
0 Prog111
 
29.08.16
06:28
Делаю отдельный отчет по взаиморасчетам с контрагентами в УТ 10.3. Если брать показатель из запроса "СуммаУпрКонечныйОстаток" - то этот показатель показывает только общее сальдо, например, если дебетовый остаток 10.000, а кредитовый - 7.000 - то покажет только сальдо 3.000 руб.

В запросе добавил конструкцию Выбор, чтобы различать дебетовые и кредитовые сальдо и выводить их затем отдельно каждый. Но в этом запросе показатели "СуммаУпрКонечныйОстатокДт" и "СуммаУпрКонечныйОстатокКт" выходят неверные, увеличенные в несколько раз.

Может, увидите своим профессиональным взглядом, где я совершаю ошибку?



|ВЫБРАТЬ
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация КАК Организация,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор,
|    ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток, 0) КАК СуммаУпрНачальныйОстаток,
|    ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход, 0) КАК СуммаУпрПриход,
|    ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход, 0) КАК СуммаУпрРасход,
|    ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток, 0) КАК СуммаУпрКонечныйОстаток,
|    ЕСТЬNULL(ВЫБОР
|            КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток, 0) > 0
|                ТОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток, 0)
|            ИНАЧЕ 0
|        КОНЕЦ, 0) КАК СуммаУпрКонечныйОстатокДт,
|    ЕСТЬNULL(ВЫБОР
|            КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток, 0) < 0
|                ТОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток, 0)
|            ИНАЧЕ 0
|        КОНЕЦ, 0) КАК СуммаУпрКонечныйОстатокКт
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачПериода, &КонПериода, Регистратор, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
|ГДЕ
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ВидДоговора = &ВидДоговора
|
|СГРУППИРОВАТЬ ПО
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток,
|    ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток, 0),
|    ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход, 0),
|    ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход, 0)
|
|УПОРЯДОЧИТЬ ПО
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация.Наименование,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент.Наименование,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.Наименование,
|    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор.Дата
|ИТОГИ
|    СУММА(СуммаУпрНачальныйОстаток),
|    СУММА(СуммаУпрПриход),
|    СУММА(СуммаУпрРасход),
|    СУММА(СуммаУпрКонечныйОстаток),
|    СУММА(СуммаУпрКонечныйОстатокДт),
|    СУММА(СуммаУпрКонечныйОстатокКт)
|ПО
|    ОБЩИЕ,
|    Организация,
|    Контрагент,
|    ДоговорКонтрагента
1 sFAQer
 
29.08.16
06:58
(0) Приглядись в группировки...
2 Prog111
 
29.08.16
07:03
(1) Если в "СГРУППИРОВАТЬ ПО" добавляю:

ЕСТЬNULL(ВЫБОР
            КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток, 0) > 0
                ТОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток, 0)
            ИНАЧЕ 0
        КОНЕЦ, 0),
    ЕСТЬNULL(ВЫБОР
            КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток, 0) < 0
                ТОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток, 0)
            ИНАЧЕ 0
        КОНЕЦ, 0),



То результат не изменяется.
3 Prog111
 
29.08.16
07:06
Вообще, тут пока не могу уложить в голове, как комбинируются и группируются записи из регистра, если это регистр оборотов. Ведь на конец записи регистра остаток может быть как плюс, так и минус... И суммировать остаток, пожалуй, не совсем верно. Но тогда почему "СуммаУпрКонечныйОстаток" показывает правильный результат?
4 hhhh
 
29.08.16
07:10
(3)  РегистрНакопления.ВзаиморасчетыСКонтрагентами - это не регистр оборотов.
5 Prog111
 
29.08.16
07:13
(4) Да, точно)
6 sFAQer
 
29.08.16
07:21
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс