8.х вывести сгруппированный список из 2 таблиц

Тема в разделе "Система компоновки данных (СКД)", создана пользователем timerxan, 27 авг 2019.

  1. TopicStarter Overlay
    timerxan
    Offline

    timerxan

    Регистрация:
    27 авг 2019
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    день добрый.
    Конфигурация не типовая, суть вот в чем:
    в СКД из регистра накоплений Остатки и Обороты поднимаю таблицу с начальным, конечным остатком, отгрузками, корректировками.
    Нужно добавить сюда же колонку Возвраты.

    а т.к. возвраты автором сторнируются, то в этом регистре их нет.
    беру из регистра сведений (статусыОтгрузок) СрезПоследних.

    все хорошо, но вот как корректно связать таблицы эти?

    Таблица1
    Регистратор
    Номенклатура
    Нач.Остаток
    Кон.Остаток
    Приход
    Расход
    ...

    Таблица2
    Регистратор
    Номенклатура
    Возврат

    Если соединить по номенклатуре, то возвраты из таб.2 сложатся с каждым упоминанием Номенклатуры в таб.1
    Если Сравнивать по Регистратору и Номенклатуре, тогда вылезет отдельной строкой вторая таблица.

    а вот как ее по номенклатурам раскидать?

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

    Вложения:

  2. xaysnet
    Offline

    xaysnet Опытный в 1С

    Регистрация:
    3 июн 2019
    Сообщения:
    77
    Симпатии:
    2
    Баллы:
    29
    Какие строки второй таблицы???
  3. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.457
    Симпатии:
    50
    Баллы:
    54
    Добрый день.
    Так Вы сначала форму таблицы нарисуйте чтобы логику понять, а потом СКД ковыряйте.
    Как Вы предполагаете представить эти данные в плоском виде при наличии документов движения?