| 
    
            
         
         | 
    
    
  | 
СКД. Разность группировок одного уровня в верхнюю группировку. Как? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        NastiaVlasenko    
     18.02.16 
            ✎
    13:43 
 | 
         
        Добрый день. Как на СКД можно получить итог по группировке для ресурса как разность итогов по другой группировке. Т.е. есть приход денежных средств, есть расход, в верхнюю группировку хочу получить приход минус расход. Через функции общего модуля не нравится, т.к. потом проблемы по Общим итогам. Думаю, что поможет выражение в ресурсе, но не получается прописать.
 
        На скрине все гораздо понятней, чем я смогла описать в тексте. http://i-fotki.info/19/bff9d6f1f25b00f0c9aa5853fa62003ec16925238451868.png.html  | 
|||
| 
    1
    
        asady    
     18.02.16 
            ✎
    13:58 
 | 
         
        (0) в вычисляемые поля добавь поле и формулу     
         | 
|||
| 
    2
    
        also    
     18.02.16 
            ✎
    14:12 
 | 
         
        Не очень понял, куда этот результат нужно запихнуть? На вышестоящую группировку?     
         | 
|||
| 
    3
    
        NastiaVlasenko    
     18.02.16 
            ✎
    14:13 
 | 
         
        (2) Да     
         | 
|||
| 
    4
    
        NastiaVlasenko    
     18.02.16 
            ✎
    14:14 
 | 
         
        (1) В формуле у меня проблема, не получается ее написать     
         | 
|||
| 
    5
    
        also    
     18.02.16 
            ✎
    14:15 
 | 
         
        (3) Приход/Расход - это одна группировка?     
         | 
|||
| 
    6
    
        NastiaVlasenko    
     18.02.16 
            ✎
    14:16 
 | 
         
        (5) Да     
         | 
|||
| 
    7
    
        also    
     18.02.16 
            ✎
    14:19 
 | 
         
        Конечно не знаю Вашу структуру и как у вас приход от расхода отличается, но попробуйте примерно так:
 
        Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(План)", "ПриходРасход", "ПриходРасход = ""Приход""")) - Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(План)", "ПриходРасход", "ПриходРасход = ""Расход"""))  | 
|||
| 
    8
    
        NastiaVlasenko    
     18.02.16 
            ✎
    14:29 
 | 
         
        (7) Пробую, пока не вышло, и не ругается и не считает, постараюсь понять, что нужно поменять для меня.     
         | 
|||
| 
    9
    
        also    
     18.02.16 
            ✎
    14:31 
 | 
         
        (8) ну третий параметр надо сделать корректный. Там надо указать корректный отбор записей.     
         | 
|||
| 
    10
    
        NastiaVlasenko    
     18.02.16 
            ✎
    14:37 
 | 
         
        (9) "ПриходРасход = ""Приход""" - значит, что вычисляем выражение для всех группировок "ПриходРасход" с наименованием "Приход"? если так, то все правильно     
         | 
|||
| 
    11
    
        also    
     18.02.16 
            ✎
    14:39 
 | 
         
        (10) Нет, это я просто из головы взял условие отбора. А Вам нужно реальное условие для того, чтобы отобобрать все записи с типом Приход. Я не знаю, что у Вас такое ПриходРасход (какого типа). Может перечисление, может еще чего     
         | 
|||
| 
    12
    
        asady    
     18.02.16 
            ✎
    14:48 
 | 
         
        (10)
 
        1. в вычисляемых полях добавляй поле "Дельта" 2 в ресурсах добавь поле дельта и формулу к Сумма("Приход") - Сумма("Расход")  | 
|||
| 
    13
    
        NastiaVlasenko    
     18.02.16 
            ✎
    14:58 
 | 
         
        (11) Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(План)", "ПриходРасход", "ПриходРасход = "ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)")) - 
 
        Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(План)", "ПриходРасход", "ПриходРасход = "ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)")) , пробую так, но ругается на использование агрегатных функций  | 
|||
| 
    14
    
        also    
     18.02.16 
            ✎
    15:05 
 | 
         
        (13) ну если у тебя простая сумма в формулах, то реально проще сделать как (12). А так ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход) нельзя писать. Можно сделать параметр &Приход недоступный для пользователя и заполнять его значением перечисления. и написать "ПриходРасход = &Приход"     
         | 
|||
| 
    15
    
        NastiaVlasenko    
     18.02.16 
            ✎
    15:09 
 | 
         
        Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(СуммаПлан)", "ПриходРасход", "ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)")) -
 
        Сумма(ВычислитьВыражениеСГруппировкойМассив("Сумма(СуммаПлан)", "ПриходРасход", "ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)")) Получилось вот так, огромное спасибо, надо разбираться мне с Вычислить выражение с группировкой массив...  | 
|||
| 
    16
    
        also    
     18.02.16 
            ✎
    15:10 
 | 
         
        (15) эээ.. ну значит можно ;)     
         | 
|||
| 
    17
    
        NastiaVlasenko    
     18.02.16 
            ✎
    15:13 
 | 
         
        (16) я выше просто "ЗНАЧЕНИЕ..." в ковычки брала, из-за этого видимо.., спасибо Вам большое..     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |