Имя: Пароль:
1C
1С v8
Посоветуйте с запросом
,
0 John83
 
06.10.17
10:43
УПП 1.3
Задача: вывести количество затрат на единицу продукции.
Через объединение достаю данные из ЗатратыНаВыпуск и ВыпускПродукции. В итогах кол-во затрат делю на кол-во выпуска, но данные получаются только в группировке с продукцией.
Можно ли как-то получить нужные данные через ОБЪЕДИНИТЬ или тут только соединение использовать?
1 John83
 
06.10.17
10:44
сам запрос

ВЫБРАТЬ
    ВЗ.Подразделение,
    ВЗ.Продукция,
    ВЗ.Спецификация,
    ВЗ.ДокументВыпуска,
    ВЗ.Затрата,
    ВЗ.КоличествоПродукции КАК КоличествоПродукции,
    ВЗ.СтоимостьПродукции КАК СтоимостьПродукции,
    ВЗ.КоличествоЗатрат КАК КоличествоЗатрат,
    ВЗ.СуммаЗатрат КАК СуммаЗатрат,
    0 КАК КоличествоНаЕдиницуПродукции
ИЗ
    (ВЫБРАТЬ
        ВыпускПродукцииОбороты.Подразделение КАК Подразделение,
        ВыпускПродукцииОбороты.Продукция КАК Продукция,
        ВыпускПродукцииОбороты.Спецификация КАК Спецификация,
        ВыпускПродукцииОбороты.ДокументВыпуска КАК ДокументВыпуска,
        НЕОПРЕДЕЛЕНО КАК Затрата,
        ВыпускПродукцииОбороты.КоличествоОборот КАК КоличествоПродукции,
        ВыпускПродукцииОбороты.СтоимостьОборот КАК СтоимостьПродукции,
        0 КАК КоличествоЗатрат,
        0 КАК СуммаЗатрат
    ИЗ
        РегистрНакопления.ВыпускПродукции.Обороты(&ДатаНач, &ДатаКон, , ) КАК ВыпускПродукцииОбороты
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ЗатратыНаВыпускПродукцииОбороты.Подразделение,
        ЗатратыНаВыпускПродукцииОбороты.Продукция,
        ЗатратыНаВыпускПродукцииОбороты.Спецификация,
        ЗатратыНаВыпускПродукцииОбороты.ДокументВыпуска,
        ЗатратыНаВыпускПродукцииОбороты.Затрата,
        0,
        0,
        ЗатратыНаВыпускПродукцииОбороты.КоличествоОборот,
        ЗатратыНаВыпускПродукцииОбороты.СуммаОборот
    ИЗ
        РегистрНакопления.ЗатратыНаВыпускПродукции.Обороты(&ДатаНач, &ДатаКон, , ) КАК ЗатратыНаВыпускПродукцииОбороты) КАК ВЗ
ИТОГИ
    СУММА(КоличествоПродукции),
    СУММА(СтоимостьПродукции),
    СУММА(КоличествоЗатрат),
    СУММА(СуммаЗатрат),
    ВЫБОР
        КОГДА СУММА(КоличествоПродукции) <> 0
            ТОГДА СУММА(КоличествоЗатрат) / СУММА(КоличествоПродукции)
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоНаЕдиницуПродукции
ПО
    ОБЩИЕ
2 Ненавижу 1С
 
гуру
06.10.17
11:02
используй помимо итогов также обычные СГРУППИРОВАТЬ также
3 John83
 
06.10.17
11:31
(2) что-то не пойму, что в группировке сделать..
ВЫБОР
        КОГДА СУММА(КоличествоПродукции) <> 0
            ТОГДА СУММА(КоличествоЗатрат) / СУММА(КоличествоПродукции)

туда не добавить
если просто группировки добавить, то результат не меняется
4 D3O
 
06.10.17
11:38
так сначала объединение запихни во временную и уже потом из нее считай суммы и итоговые функции.

так получается он в каждом запросе объединения независимо считает
5 John83
 
06.10.17
11:47
(4) какая разница?
один фиг, что во вложенный запрос запихивать, что во временную
6 John83
 
06.10.17
11:49
конечно же можно сделать еще одну таблицу, в которой будет кол-во продукции без затрат и потом уже делать соединение
но хочется по-красивше
7 Ненавижу 1С
 
гуру
06.10.17
13:13
(3) именно такую конструкцию и добавить, но не в СГРУППИРОВАТЬ конечно
8 D3O
 
06.10.17
13:33
(5) в данном случае - никакой. в ситуации, когда надо потом соединяться с временной таблицей или соединяться с вложенным запросом разница огромная )
9 John83
 
06.10.17
14:30
(7) моя твоя не понимать..
куда добавить-то?
10 Ненавижу 1С
 
гуру
06.10.17
14:56
ВЫБРАТЬ
    ВЗ.Подразделение,
    ВЗ.Продукция,
    ВЗ.Спецификация,
    ВЗ.ДокументВыпуска,
    ВЗ.Затрата,
    СУММА(КоличествоПродукции),
    СУММА(СтоимостьПродукции),
    СУММА(КоличествоЗатрат),
    СУММА(СуммаЗатрат),
    ВЫБОР
        КОГДА СУММА(КоличествоПродукции) <> 0
            ТОГДА СУММА(КоличествоЗатрат) / СУММА(КоличествоПродукции)
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоНаЕдиницуПродукции
ИЗ
    (ВЫБРАТЬ
        ВыпускПродукцииОбороты.Подразделение КАК Подразделение,
        ВыпускПродукцииОбороты.Продукция КАК Продукция,
        ВыпускПродукцииОбороты.Спецификация КАК Спецификация,
        ВыпускПродукцииОбороты.ДокументВыпуска КАК ДокументВыпуска,
        НЕОПРЕДЕЛЕНО КАК Затрата,
        ВыпускПродукцииОбороты.КоличествоОборот КАК КоличествоПродукции,
        ВыпускПродукцииОбороты.СтоимостьОборот КАК СтоимостьПродукции,
        0 КАК КоличествоЗатрат,
        0 КАК СуммаЗатрат
    ИЗ
        РегистрНакопления.ВыпускПродукции.Обороты(&ДатаНач, &ДатаКон, , ) КАК ВыпускПродукцииОбороты
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ЗатратыНаВыпускПродукцииОбороты.Подразделение,
        ЗатратыНаВыпускПродукцииОбороты.Продукция,
        ЗатратыНаВыпускПродукцииОбороты.Спецификация,
        ЗатратыНаВыпускПродукцииОбороты.ДокументВыпуска,
        ЗатратыНаВыпускПродукцииОбороты.Затрата,
        0,
        0,
        ЗатратыНаВыпускПродукцииОбороты.КоличествоОборот,
        ЗатратыНаВыпускПродукцииОбороты.СуммаОборот
    ИЗ
        РегистрНакопления.ЗатратыНаВыпускПродукции.Обороты(&ДатаНач, &ДатаКон, , ) КАК ЗатратыНаВыпускПродукцииОбороты) КАК ВЗ
СГРУППИРОВАТЬ ПО
ВЗ.Подразделение,
    ВЗ.Продукция,
    ВЗ.Спецификация,
    ВЗ.ДокументВыпуска,
    ВЗ.Затрата
ИТОГИ
    СУММА(КоличествоПродукции),
    СУММА(СтоимостьПродукции),
    СУММА(КоличествоЗатрат),
    СУММА(СуммаЗатрат),
    ВЫБОР
        КОГДА СУММА(КоличествоПродукции) <> 0
            ТОГДА СУММА(КоличествоЗатрат) / СУММА(КоличествоПродукции)
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоНаЕдиницуПродукции
ПО
    ОБЩИЕ
11 John83
 
06.10.17
15:18
(10) не работает так
да и я бы несколько удивился, если бы заработало
12 Ненавижу 1С
 
гуру
06.10.17
15:24
(11) что значит НЕ работает?
13 D3O
 
06.10.17
16:14
(9) вот как в (10) тоже можно. и это ДОЛЖНО работать
14 John83
 
06.10.17
16:46
(12) КоличествоНаЕдиницуПродукции выводится только с группировкой (итогом) по продукции, а на затрате 0
http://s019.radikal.ru/i628/1710/4d/c9bdc5461e0f.png
15 Ненавижу 1С
 
гуру
07.10.17
04:55
(0) нужен принцип распределения затрат