Имя: Пароль:
1C
1С v8
Запрос по таблицам с разным количеством измерений
0 maxipunchik
 
09.04.18
15:26
Есть 2 регистра накопления. В одном 3 измерения (номенклатура, организация, склад) и 1 ресурс (стоимость) в другом 2 измерения (номенклатура, склад) и 1 измерение (количество)

В итоге нужно получить таблицу "Номенклатура, склад, Организация" с ресурсами "количество и сумма".

Не получается соединить таблицы, при добавлении организации из первой таблицы, стали дублироваться строки и увеличилось общее количество
Последнее к чему пришел - это этот код:

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

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Склад
;

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

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

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

СГРУППИРОВАТЬ ПО
    ВТ2.Номенклатура,
    ВТ2.Склад,
    вт.склад,
    вт.ДокументОприходованияОрганизация

УПОРЯДОЧИТЬ ПО
    Номенклатура1
ИТОГИ
    СУММА(СтоимостьОстаток),
    СУММА(КоличествоОстаток)
ПО
    Поле1
1 YaFedor
 
09.04.18
15:30
По одному набору Номенклатура1, Склад1 есть во втором регистре количество 40

По этому же набору в первом регистре по Организация 1 - 100, по Организация 2 - 250

Внимание вопрос:

Какое количество будет в твоей таблице по набору: Номенклатура1, Склад1, Организация2


Как только ответишь на вопрос, так сразу и решиш задачу.
2 youalex
 
09.04.18
15:52
(0) жесть какая-то)  Зачем это всё нужно?
3 maxipunchik
 
09.04.18
16:18
(1) такое же будет количество, по левой таблице найдет 2 совпаления, поэтому образуется 2 строки с разным правым значением и одинаковым левым. Только в решении пока что мне это не помогло
4 Сияющий в темноте
 
09.04.18
19:58
Если количество к организации не привязано,то что будет в графе количество у конкретной организации-понятно,что пусто,количество будет только на следующем уровне группировки,где уже организация не важна,но там не будет стоимости,т.к.она привязана к организации
вопрос-вам это нужно?
если нет,то задача решения не имеет
5 youalex
 
09.04.18
20:01
Я сильно подозреваю, что этот вопрос вырван из контекста, а конкретно, из задачи на Спеца, где стоимость не учитывается в разрезе Организаций, а Остатки - учитываются...
6 Сияющий в темноте
 
10.04.18
09:18
Здесь,скорее,наоборот,но сути не меняет