Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

СКД Суммирование в группировке

СКД Суммирование в группировке
Я
   QWarLockQ
 
25.10.16 - 07:03
Доброго времени суток.
Пытаюсь побороть СКД. Есть отчет по заказам покупателя, к заказу привязаны счет на оплату (доход) и заказ поставщику (расход), группировка по заказам покупателя. Проблема состоит в том, что при суммировании всех доходов или расходов происходит следующее: к счету на оплату (колонка доход) привязывается колонка расход, хотя она должна быть пустая (см. скрин: http://s8.hostingkartinok.com/uploads/images/2016/10/178b4a430700bf3636e19f2d477febb5.png). В итоге сумма дохода или расхода считается по всем полям колонки, вне зависимости от того это счет на оплату или заказ поставщику. Вообще в идеале должно быть так: http://s8.hostingkartinok.com/uploads/images/2016/10/eeba80779022708aee92bedc9a9c6d8f.png, только чтобы сумма ещё считалась в полях заказа покупателя. Подскажите как сумму вывести пожалуйста :)
 
 
   Грызлик
 
1 - 25.10.16 - 07:34
(0) Нужно смотреть, что у тебя в запросе. С первого взгляда можно решить так.

Или два объединяющих запроса, где 0, Доход - первый запрос. И Расход, 0 - второй запрос.

НУ или через выборку.
Поле доход рассчитываем 

Выбор
   Когда Ргестратор.СчетНаОплату
    Тогда СуммаСчетаНаОплату
    Иначе 0 
КОНЕЦ

А скд уже все сама сделает
   QWarLockQ
 
2 - 25.10.16 - 07:38
Вот так запрос выглядит:

ВЫБРАТЬ
    ДокЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    ЗаказПоставщику.СуммаДокумента КАК Расход,
    ЗаказПоставщику.Ссылка КАК ЗаказПоставщику,
    СчетНаОплату.Ссылка КАК СчетНаОплату,
    СчетНаОплату.СуммаДокумента КАК Доход,
    ДокЗаказПокупателя.СостояниеЗаказа.Наименование,
    ДокЗаказПокупателя.Контрагент
ИЗ
    Документ.ЗаказПоставщику КАК ЗаказПоставщику
        ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ДокЗаказПокупателя
            ПОЛНОЕ СОЕДИНЕНИЕ Документ.СчетНаОплату КАК СчетНаОплату
            ПО (СчетНаОплату.ДокументОснование.Ссылка = ДокЗаказПокупателя.Ссылка)
        ПО ЗаказПоставщику.ЗаказПокупателя.Ссылка = ДокЗаказПокупателя.Ссылка
ГДЕ
    ДокЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И ВЫБОР
            КОГДА &СостояниеЗаказа = НЕОПРЕДЕЛЕНО
                    ИЛИ &СостояниеЗаказа = ""
                ТОГДА ИСТИНА
            ИНАЧЕ ДокЗаказПокупателя.СостояниеЗаказа.Наименование = &СостояниеЗаказа
        КОНЕЦ
   iceman2112
 
3 - 25.10.16 - 08:37
ОБЪЕДИНЕНИТЬ
   QWarLockQ
 
4 - 25.10.16 - 08:52
(3) Можно подробней, пожалуйста?
   Грызлик
 
5 - 25.10.16 - 09:16
Если грубо. То примерно так 

ВЫБРАТЬ
    ЗаказПокупателя.Ссылка,
    ЗаказПоставщику.СуммаДокумента КАК Приход,
    0 КАК Расход
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
        ПО ЗаказПокупателя.Ссылка = ЗаказПоставщику.ОсновнойДокументЗаказа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЗаказПокупателя.Ссылка,
    0,
    СчетНаОплатуПокупателю.СуммаДокумента
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ПО ЗаказПокупателя.ДокументОснование = СчетНаОплатуПокупателю.Ссылка
   QWarLockQ
 
6 - 25.10.16 - 11:43
(5) Получилось почти хорошо, спасибо ) Только вот: http://s8.hostingkartinok.com/uploads/images/2016/10/b2b5fe8903beb3cadfe265756a84082d.png

Можно как-то пустые строки убрать?
   QWarLockQ
 
7 - 26.10.16 - 07:21
В итоге запрос такой получился:

ВЫБРАТЬ
    ЗаказПоставщику.ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    ЗаказПоставщику.СуммаДокумента КАК Расход,
    0 КАК Приход,
    ЗаказПоставщику.Ссылка КАК ЗаказПоставщику,
    0 КАК СчетНаОплату,
    ДокЗаказПокупателя.Дата,
    ДокЗаказПокупателя.СостояниеЗаказа.Наименование,
    ДокЗаказПокупателя.Контрагент
ИЗ
    Документ.ЗаказПокупателя КАК ДокЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
        ПО (ЗаказПоставщику.ЗаказПокупателя.Ссылка = ДокЗаказПокупателя.Ссылка)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ДокЗаказПокупателя.Ссылка,
    0,
    СчетНаОплату.СуммаДокумента,
    0,
    СчетНаОплату.Ссылка,
    ДокЗаказПокупателя.Дата,
    ДокЗаказПокупателя.СостояниеЗаказа.Наименование,
    ДокЗаказПокупателя.Контрагент
ИЗ
    Документ.ЗаказПокупателя КАК ДокЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплату КАК СчетНаОплату
        ПО (СчетНаОплату.ДокументОснование.Ссылка = ДокЗаказПокупателя.Ссылка)
   QWarLockQ
 
8 - 26.10.16 - 07:23
(7) Но появилась за этим ещё одна проблема. При добавлении параметров для фильтра (дата или состояние заказа), колонка Расход не выводит вообще ничего.
   aleks_default
 
9 - 26.10.16 - 09:21
(7) запрос гуано
ЗаказПоставщику.ЗаказПокупателя.Ссылка КАК ЗаказПокупателя

ПО (СчетНаОплату.ДокументОснование.Ссылка = ДокЗаказПокупателя.Ссылка)

ДокЗаказПокупателя.СостояниеЗаказа.Наименование,
   QWarLockQ
 
10 - 26.10.16 - 10:09
(9) Если я брать буду заказ покупателя из заказа поставщику, то выберутся не все заказы покупателя которые есть, так как в каждом заказе поставщику есть заказ покупателя, но не в каждом заказе покупателя есть заказ поставщику
 
 Рекламное место пустует
   aleks_default
 
11 - 26.10.16 - 10:12
(10) я вообще то про лишние поля через точку, но и на это отвечу - тогда нужно использовать не ЛЕВОЕ а ВНУТРЕННЕЕ соединение
   QWarLockQ
 
12 - 26.10.16 - 10:30
(11) Заметил кстати косяк по вашему замечанию ) сам выводил заказы покупателя через поставщика.
Только по (9) всё равно не понял, можно полностью запрос куда это вставлять, пожалуйста?
   iceman2112
 
13 - 26.10.16 - 10:47
[1с]
ЗаказПоставщику.ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,

....

  Документ.ЗаказПокупателя КАК ДокЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
[/1с]

Вообще огонь

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует