Имя: Пароль:
1C
1С v8
Запрос и хитрая группировка. Помогите
0 nordbox
 
06.12.14
08:40
Прошу, объясните пожалуйста группировки или если не трудно помогите пожалуйста замученному бедолаге
Есть запрос:
Запрос=новый Запрос;
Запрос.Текст="
|    ВЫБРАТЬ
|    ДвижениеДенежныхСредствПроект.Проект,
|    ДвижениеДенежныхСредствПроект.ВидРасход,
|    ДвижениеДенежныхСредствПроект.Расходы,
|    ДвижениеДенежныхСредствПроект.ВидДоход,
| ДвижениеДенежныхСредствПроект.Доходы
|ИЗ
|    РегистрСведений.ДвижениеДенежныхСредствПроект КАК ДвижениеДенежныхСредствПроект
и вот тут нужен совет или помощь.
Какие группировки использовать что бы получить следующую структуру:
ПРОЕКТ-1
ВидРасход
Расходы
-------------
ВидДоход
Доходы
-------------
ПРОЕКТ-2
ВидРасход
Расходы
-------------
ВидДоход
Доходы
-------------
и т.д.
Перечитал и перепробовал все, по отдельности Расходы и Доходы делается бес проблем, а вот вместе что было, мозгов не хватает
1 Amfiaray
 
06.12.14
09:59
Регистр самописный? что там измерения, что ресурсы?
2 ramir
 
06.12.14
10:10
Дергай одним запросом Проект, ВидРасхода, Расход, группируй по Проект и ВидРасхода.
Другим запросом Проект, ВидДохода, Доход, группируй по Проект и ВидДохода. Затем соединяй результаты этих запросов по Проект.
3 Amfiaray
 
06.12.14
10:15
Можешь так, накидал примерно, в консоли посмотри:

ВЫБРАТЬ
    ДвижениеДенежныхСредствПроект.Проект,
    ВЫБОР
        КОГДА ДвижениеДенежныхСредствПроект.ВидРасход <> NULL
            ТОГДА "Расход"
        ИНАЧЕ "Доход"
    КОНЕЦ КАК ВидДвижения,
    ВЫБОР
        КОГДА ДвижениеДенежныхСредствПроект.ВидРасход <> NULL
            ТОГДА ДвижениеДенежныхСредствПроект.ВидРасход
        ИНАЧЕ ДвижениеДенежныхСредствПроект.ВидДоход
    КОНЕЦ КАК ВидРасходаДохода,
    СУММА(ВЫБОР
            КОГДА ДвижениеДенежныхСредствПроект.ВидРасход <> NULL
                ТОГДА ДвижениеДенежныхСредствПроект.Расходы
            ИНАЧЕ ДвижениеДенежныхСредствПроект.Доходы
        КОНЕЦ) КАК Сумма
ИЗ
    РегистрСведений.ДвижениеДенежныхСредствПроект КАК ДвижениеДенежныхСредствПроект

СГРУППИРОВАТЬ ПО
    ДвижениеДенежныхСредствПроект.Проект,
    ВЫБОР
        КОГДА ДвижениеДенежныхСредствПроект.ВидРасход <> NULL
            ТОГДА "Расход"
        ИНАЧЕ "Доход"
    КОНЕЦ,
    ВЫБОР
        КОГДА ДвижениеДенежныхСредствПроект.ВидРасход <> NULL
            ТОГДА ДвижениеДенежныхСредствПроект.ВидРасход
        ИНАЧЕ ДвижениеДенежныхСредствПроект.ВидДоход
    КОНЕЦ
4 wertyu
 
06.12.14
10:40
(0) предлагаю сделать другую структуру регистра:
Проект, ВидДоходовРасходов, Сумма
5 wertyu
 
06.12.14
10:40
+(4) и использовать регистр накопления, а не сведений
6 Amfiaray
 
06.12.14
10:42
ТС потерялся куда то
7 nordbox
 
06.12.14
10:48
Amfiaray, тут я, я всю ночь эксперементировал
если честно не совсем понял твой код((
8 nordbox
 
06.12.14
10:51
wertyu, я могу сделать любую структуру
такая какую ты предлагаешь у меня есть
9 Amfiaray
 
06.12.14
10:57
(8) Ну так делай как в (4) и будет счастье, если уже не переделать, то делай как в (3)
10 Amfiaray
 
06.12.14
10:58
(7) закинь в консоль отчетов, не должен ругаться, проверь реботу
11 nordbox
 
06.12.14
11:05
Amfiaray, я же говорю что у меня есть структура как в (4) и как дальше то делать? вопрос то от этого не решается, проблема та же самая(или я уже туплю)
12 Amfiaray
 
06.12.14
11:09
|    ВЫБРАТЬ
|    ДвижениеДенежныхСредствПроект.Проект,
|    ДвижениеДенежныхСредствПроект.ВидДоходаРасходаРасход КАК ВидДвижения,
|    СУМММА(ДвижениеДенежныхСредствПроект.Сумма) КАК Сумма,
|ИЗ
|    РегистрСведений.ДвижениеДенежныхСредствПроект КАК ДвижениеДенежныхСредствПроект
|СГРУППИРОВАТЬ ПО
|    ДвижениеДенежныхСредствПроект.Проект,
|    ДвижениеДенежныхСредствПроект.ВидДоходаРасходаРасход
13 nordbox
 
06.12.14
11:26
Спасибо, попробую, может выйдет что нибудь
14 nordbox
 
06.12.14
13:58
Сделал как в (4) но Ткните носом пожалуйста, вот запрос, при группировках ошибка, а потом еще целая куча, не могу понять(ну тупой я)
    Запрос=новый Запрос;
    Запрос.Текст="
    |    ВЫБРАТЬ
    |    ДвижениеДДС.Проект,
    |    ДвижениеДДС.ВидДвижения,
    |    ДвижениеДДС.Ресурс,
    |    ДвижениеДДС.ДатаРес,
    |
    |   СУММА(ДвижениеДДС.СуммаДоходаПлан) КАК СуммаДоходаПлан,
    |   СУММА(ДвижениеДДС.СуммаДоходаФакт) КАК СуммаДоходаФакт,
    |   СУММА(ДвижениеДДС.СуммаРасходаПлан) КАК СуммаРасходаПлан,
    |   СУММА(ДвижениеДДС.СуммаРасходаФакт) КАК СуммаРасходаФакт,
    |
    |   СУММА(ДвижениеДДС.СуммаДоходаПланУУ) КАК СуммаДоходаПланУУ,
    |   СУММА(ДвижениеДДС.СуммаДоходаФактУУ) КАК СуммаДоходаФактУУ,
    |   СУММА(ДвижениеДДС.СуммаРасходаПланУУ) КАК СуммаРасходаПланУУ,
    |   СУММА(ДвижениеДДС.СуммаРасходаФактУУ) КАК СуммаРасходаФактУУ
    |
    |ИЗ
    |    РегистрСведений.ДвижениеДДС КАК ДвижениеДДС
    |ГДЕ
    |  ДвижениеДДС.ДатаРес>=&ДатаНач И
    |  ДвижениеДДС.ДатаРес<=&ДатаКон
    |ИТОГИ ПО Проект,ВидДвижения,Ресурс
    |";

А вот ошибка, где ее искать?
{Форма.ФормаОтчета.Форма(37)}: Ошибка при вызове метода контекста (Выполнить)
    Результат = Запрос.Выполнить();
по причине:
{(3, 2)}: Поле не входит в группу "ДвижениеДДС.Проект"
<<?>>ДвижениеДДС.Проект,
15 vicof
 
06.12.14
14:04
(14) Нужно в запрос добавить группировочные поля, по которых ты считаешь суммы
16 nordbox
 
06.12.14
14:10
(15) Не помогает, или я не так делаю,
может покажешь если не затруднит?
17 vicof
 
06.12.14
14:19
СГРУППИРОВАТЬ ПО
ДвижениеДДС.Проект,
    |    ДвижениеДДС.ВидДвижения,
    |    ДвижениеДДС.Ресурс,
    |    ДвижениеДДС.ДатаРес
18 vicof
 
06.12.14
14:20
(16) А книжки читать пробовал?
19 nordbox
 
06.12.14
14:26
Дело в том что пробовал и книжки читать и прочее. Пробовал через СГРУППИРОВАТЬ, тоже ошибка, но другая
20 nordbox
 
06.12.14
14:28
а вот это работает
    Запрос=новый Запрос;
    Запрос.Текст="
    
    |    ВЫБРАТЬ
    |    ДвижениеДДС.Проект,
    |    ДвижениеДДС.ВидДвижения,
    |    ДвижениеДДС.Ресурс
    |ИЗ
    |    РегистрСведений.ДвижениеДДС КАК ДвижениеДДС
    |ИТОГИ ПО Проект,ВидДвижения,Ресурс
    |";
В чем отличие?
21 nordbox
 
06.12.14
14:43
путем экспериментов выяснилось: как только в запрос добавляется функция суммирования то появляется названная ошибка:|   СУММА(ДвижениеДДС.СуммаДоходаПлан) КАК СуммаДоходаПлан
22 vicof
 
06.12.14
14:48
(19) Видимо, плохо пробовал. Может быть, метлу в руки?)
(21) Задай себе вопрос, что такое группы, зачем они нужны, зачем агрегатные функции в запросе, видео от Чистова посмотри по запросам.
23 nordbox
 
06.12.14
15:01
(22) Не хочу хамить, но не надо умничать, я попросил помощи, а не лекций "умненьких"
24 Redkiy
 
06.12.14
15:24
(0) если я правильно понял требуемую структуру полей, то два запроса (доходы и расходы отдельно) связь через ОБЪЕДИНИТЬ ВСЕ