Расчет остатков в СКД - как сделать правильно? #689884


#0 by xaozai
Запрос: Настройки: Результат: Запрос 2: Настройки такие же. Результат: Вопрос: как сделать, чтобы во втором случае остатки вывелись правильно?
#1 by xaozai
up
#2 by xaozai
В реальности запрос примерно такой: Т.е., в отчете собираются данные из регистра и некоторых документов, которые не пишут в этот регистр.
#3 by Veliar_s
А в ресурсах прописать не пробовал.
#4 by xaozai
В ресурсах есть все суммы: приход, расход, остатки...
#5 by Veliar_s
Суммы есть а "Расчитывать по.." - "Общий итог" везде стоит?
#6 by xaozai
"Рассчитывать по" вообще нигде не стоит. По-умолчанию оно должно для всего рассчитывать. Попробовал поставить только что все галочки для всех сумм  - тот же результат. Остаток по группировке "Договор контрагента" и итоговый не считаются.
#7 by grayshadow
СКД, ОстаткиИОбороты и Объединить - хреново совместимы, лучше левым соединением попробовать по месяцу должно быть легко
#8 by xaozai
Левое соединение к чему? Очевидно, что во второй таблице есть период, которого нет в первой и следовательно при левом соединении данные, которых нет в первой таблице не попадут вообще. Всё, сделал. Во втором подзапросе вместо выбора нулей выбрал значения из дописанного левого соединения с тем же регистром по договору и периоду.
#9 by xaozai
Хотя, не, не прокатило - та же фигня.
#10 by grayshadow
я прально поняла, что из 2й таблицы надо только сумма?
#11 by xaozai
Да, из второй таблицы только сумма берется. В общем, сделал так: Получил остатки на каждый, так, как описано здесь: ; Только там берется на каждый день, я сделал на начало каждого месяца. Объединил со второй таблицей, и еще одно объединение с оборотами, т.к., метод получения остатков на каждый день не позволяет сразу получить и обороты.
#12 by grayshadow
нафига по дням, если периодичность РН - месяц? ВЫБРАТЬ всё из РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(, , Месяц,) левое соединение (выбрать все доки МойДокумент, сгруппировать по договору и началу месяца) как ВложенныйЗапрос ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента = ВложенныйЗапрос.ДоговорКонтрагента             И ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период = ВложенныйЗапрос.Период
#13 by xaozai
см. (я сделал остатки на начало каждого мес.) и В твоём запросе не будет декабрьских данных, т.к., в регистре нет оборотов за декабрь.
#14 by grayshadow
тогда сделать таблицу "начал месяцев" из календаря и к ней левым соединением присобачить остальные
#15 by grayshadow
или совсем красиво - НачалаМесяцевИзРН объединить НачалМесяцевИзДокументов и к ней присобачить
#16 by xaozai
Предлагаю попробовать. В первых сообщениях запросы простые и легко подифицируются под конкретную базу.
#17 by xaozai
P.S.: Сам офигеваю от того, каким в результате запрос получился )
#18 by grayshadow
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход,     ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход,     ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток,     ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.Владелец КАК ДоговорКонтрагентаВладелец
#19 by grayshadow
потрачено не час, а 10 минут:)
#20 by xaozai
И что даст внутреннее соединение регистра с документами по периоду, когда в регистре нет такого периода, как в документах?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С