| 
    
            
         
         | 
    
    
  | 
СКД. Вычисление выражения по нижестоящей группировке | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        vicof    
     14.03.14 
            ✎
    13:54 
 | 
         
        Пусть есть три группировки Контрагент, Договор, ПериодМесяц и ресурс ОДЗ.
 
        Хочется на уровне группировки по договору для ОДЗ видеть значение ОДЗ по последнему периоду. Пишу так: ВычислитьВыражение("СУММА(ОДЗ)", "ПериодМесяц", "Группировка", "Последняя", "Последняя") рассчитываю это выражение для Договора. Для остальных группировок просто СУММА(ОДЗ) В результате в поле ОДЗ для Договора ничего не попадает. В чем проблема?  | 
|||
| 
    1
    
        ИС-2    
     14.03.14 
            ✎
    14:06 
 | 
         
        у меня так и ничего не получилось
 
        v8: Вычисление ресурса группировки в СКД на основании другой группировки  | 
|||
| 
    2
    
        Armando    
     14.03.14 
            ✎
    14:07 
 | 
         
        (0) Может сортировку надо указать?     
         | 
|||
| 
    3
    
        vicof    
     14.03.14 
            ✎
    14:13 
 | 
         
        (2) Не, сортировка тут не нужна. Если для нижестоящих группировок или ПериодМесяц указывать мое выражение, то для них мое выражение считается нормально, а для вышестоящей не хочет, как у (1)     
         | 
|||
| 
    4
    
        vicof    
     14.03.14 
            ✎
    14:41 
 | 
         
        Призываю Железодемона и Дефендера :)     
         | 
|||
| 
    5
    
        fisher    
     14.03.14 
            ✎
    14:58 
 | 
         
        Проблема в том, что ВычислитьВыражение() не работает для нижестоящих группировок.     
         | 
|||
| 
    6
    
        vicof    
     14.03.14 
            ✎
    14:59 
 | 
         
        (5) Спасибо, тогда как можно поступить?     
         | 
|||
| 
    7
    
        ИС-2    
     14.03.14 
            ✎
    15:00 
 | 
         
        мне пришлось делать функцию в общем модуле и отправлять туда таблицу значений для расчета     
         | 
|||
| 
    8
    
        fisher    
     14.03.14 
            ✎
    15:04 
 | 
         
        (6) Честно говоря, плохо помню, чем закончились мои борения с аналогичной проблемой. Толи таки красиво решил, то ли выкрутился альтернативно. Попробуй "обернуть" это дело в формуле ресурса ВычислитьВыражениеСГруппировкойМассив(), чтобы "поднять" полученные данные на верхний уровень.     
         | 
|||
| 
    9
    
        fisher    
     14.03.14 
            ✎
    15:05 
 | 
         
        То бишь попробуй в формуле вычисляемого поля ВычислитьВыражение(), а в формуле ресурса по этому полю - ВычислитьВыражениеСГруппировкойМассив()     
         | 
|||
| 
    10
    
        vicof    
     14.03.14 
            ✎
    15:07 
 | 
         
        (9) щас, забацаю     
         | 
|||
| 
    11
    
        fisher    
     14.03.14 
            ✎
    15:08 
 | 
         
        Точно помню, что пробовал этот вариант. Но не могу вспомнить, успешно ли :)     
         | 
|||
| 
    12
    
        Necessitudo    
     14.03.14 
            ✎
    15:36 
 | 
         
        (11) Я пробовал неоднократно. Вполне успешно)     
         | 
|||
| 
    13
    
        Necessitudo    
     14.03.14 
            ✎
    15:39 
 | 
         
        только тут наверное нужно поднимать наверх ТЗ - ВычислитьВыражениеСГруппировкойТаблицаЗначений с колонками Период и ОДЗ - потом передавать эту тз во внешнюю функцию и там считать.     
         | 
|||
| 
    14
    
        vicof    
     14.03.14 
            ✎
    16:42 
 | 
         
        (13) Не хочу корежить модули. 
 
        (11) не получается. http://hkar.ru/qEbK http://hkar.ru/qEbM Ругается на то, что не может вычислить выражение Выражение не может быть вычислено "ОДЗ_ПДЗ.ОДЗ, ПериодМесяц"  | 
|||
| 
    15
    
        fisher    
     14.03.14 
            ✎
    17:05 
 | 
         
        Покажи полностью выражение ресурса. И почему "рассчитывать по" стоит "ПериодМесяц"? Вроде ж по договору считать собирался? На этапе экспериментов лучше поубирай везде "Рассчитывать по" и второй ресурс, чтобы не мешались.     
         | 
|||
| 
    16
    
        vicof    
     14.03.14 
            ✎
    17:14 
 | 
         
        И почему "рассчитывать по" стоит "ПериодМесяц"
 
        Это я экспериментирую :) ВычислитьВыражениеСГруппировкойМассив("Сумма(ОДЗ1)", "ПериодМесяц"), рассчитывать по ДоговорКонтрагента Остальные расчеты по ресурсам убрал, все равно также ругается, и я так подозреваю на вычисляемое поле.  | 
|||
| 
    17
    
        vicof    
     14.03.14 
            ✎
    17:23 
 | 
         
        "подозреваю на вычисляемое поле."
 
        зачеркнуть, написать без на  | 
|||
| 
    18
    
        ppdisk    
     14.03.14 
            ✎
    17:32 
 | 
         
        У меня в своё время получлось так: ВычислитьВыражение("Сумма(СуммаОборот)", "", "Группировка")     
         | 
|||
| 
    19
    
        vicof    
     14.03.14 
            ✎
    17:51 
 | 
         
        (18) Так считает, но после этого в ВычислитьВыражениеСГруппировкойМассив("Сумма(ОДЗ1)", "ПериодМесяц") появляются три строчки с нужными суммами за три месяца, как бы мне теперь их отсортироватьи отобрать только одну     
         | 
|||
| 
    20
    
        vicof    
     14.03.14 
            ✎
    18:52 
 | 
         
        (19) Отсортировал. Как получить одну сроку из таблицы?, [0] не катит     
         | 
|||
| 
    21
    
        echo77    
     14.03.14 
            ✎
    19:38 
 | 
         
        (20) Фильтрануть? Применить функцию Максимум()?     
         | 
|||
| 
    22
    
        vicof    
     14.03.14 
            ✎
    20:30 
 | 
         
        не получилось, написал "периодмесяц=максимум(периодмесяц)" в параметре     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |