| 
    
        
     
     | 
    
  | 
СКД (по неделям), надо рассчитать разницу Прибыли последней недели - пред. последней. КАК? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        SkillUp    
     21.01.21 
            ✎
    10:05 
 | 
         
        Здравствуйте, вывожу отчет СКД таблицу (по неделям). Надо добавить после всей таблицы колонку "ПрибыльРазница" - прибыль (последней недели) - прибыль (предпоследней недели).
 
        Т.Е. если схематично (взят для примера месяц): КОЛОНКИ: Неделя №1 Неделя №2 Неделя №3 Неделя №4 ПрибыльРазница 1 2 3 4 (4-3) Нет проблем добавить вычисляемое поле, после ТалицыСКД. Проблема как вычислять всегда вычисляемую колонку ("ПрибыльРазница"). Сегодня это разница колонки Колонки №4 - Колонка №3, завтра пользователь другой период выберет, там будет 7 недель (7-мь колонок).  | 
|||
| 
    1
    
        SkillUp    
     21.01.21 
            ✎
    11:52 
 | 
         
        Может кто-то будет искать:
 
        ВычислитьВыражение ("Сумма(СтоимостьОборот)", "ПериодМесяц","Группировка","Текущая","Текущая", "", "","") - ВычислитьВыражение ("Сумма(СтоимостьОборот)", "ПериодМесяц","Группировка","Предыдущая","Предыдущая", "", "","")  | 
|||
| 
    2
    
        toypaul    
     гуру 
    21.01.21 
            ✎
    12:04 
 | 
         
        текущая - предыдущая будет считать соот-но разницу между текущей и предыдущей. а не последней и предпоследней. и работать это будет только на группировке ПериодМесяц. то есть если добавить колонку "после всей таблицы". это работать не будет     
         | 
|||
| 
    3
    
        toypaul    
     гуру 
    21.01.21 
            ✎
    12:06 
 | 
         
        не уверен что в нашем курсе https://learn.programstore.ru/skd2-intensiv есть похожий пример, но "может кому интересно" - в нем целых два блока "подобных" примеров     
         | 
|||
| 
    4
    
        toypaul    
     гуру 
    21.01.21 
            ✎
    12:08 
 | 
         
        Вот вроде есть подобный пример http://prntscr.com/xctmib     
         | 
|||
| 
    5
    
        SkillUp    
     21.01.21 
            ✎
    14:03 
 | 
         
        (2) Это пример из интренета был...     
         | 
|||
| 
    6
    
        SkillUp    
     21.01.21 
            ✎
    14:23 
 | 
         
        (2) (3) (4)  СПАСИБО!!! ПОСЛЕ РАБОТЫ ГЛЯНУ, ЧТО ЗА КУРС!!!     
         | 
|||
| 
    7
    
        SkillUp    
     21.01.21 
            ✎
    14:34 
 | 
         
        Из видео так и не понял, как добраться до предпоследнего значения таблицы.     
         | 
|||
| 
    8
    
        SkillUp    
     21.01.21 
            ✎
    14:59 
 | 
         
        (2) (3) (4)  Пытаюсь так :
 
        Ладно, пусть будет колонка в общих итогах: ЕстьNULL(ВычислитьВыражение("Сумма(ВаловаяПрибыль)", "ПериодНеделя",,"Последняя", "Последняя"),0) - ЕстьNULL(ВычислитьВыражение("Сумма(ВаловаяПрибыль)", "ПериодНеделя",,"Последняя(1)", "Последняя(1)"),0) Но, что-то не правильно делаю.  | 
|||
| 
    9
    
        SkillUp    
     21.01.21 
            ✎
    14:59 
 | 
         
        "Последняя(1)" наверно смещение не правльно делаю. Если кто-то подскажет, буду благодарен.     
         | 
|||
| 
    10
    
        toypaul    
     гуру 
    21.01.21 
            ✎
    16:30 
 | 
         
        я видео рассказал что такой вариант не сработает. и в своем сообщении в (2) про это же написал. там показано другое решение     
         | 
|||
| 
    11
    
        SkillUp    
     21.01.21 
            ✎
    16:41 
 | 
         
        (10) ТА все понял, вот делаю:
 
        Сумма( ВЫБОР КОГДА ПериодНеделя = ВычислитьВыражение( "Максимум(ПериодНеделя)","НоменклатурнаяГруппа") ТОГДА ВаловаяПрибыль КОГДА ПериодНеделя = ВычислитьВыражение("МИНИМУМ(ПериодНеделя)","НоменклатурнаяГруппа") ТОГДА - ВаловаяПрибыль ИНАЧЕ 0 КОНЕЦ) Только мне надо, от последней - предпоследня. А в видео все просто, либо последняя либо первая. А как именно предпоследний период выбрать?  | 
|||
| 
    12
    
        SkillUp    
     21.01.21 
            ✎
    16:43 
 | 
         
        Может быть так? 
 
        ВычислитьВыражение("ДОБАВИТЬКДАТЕ("МАКСИМУМ (ПериодНеделя)", ДЕНЬ, -7))","НоменклатурнаяГруппа") ТОГДА - ВаловаяПрибыль ИНАЧЕ 0 КОНЕЦ)  | 
|||
| 
    13
    
        Cthulhu    
     21.01.21 
            ✎
    16:49 
 | 
         
        решение нарастающих итогов-убытков сиречь вычисление поля, в котором д.б. разница/сумма каких-то полей текущей записи и предыдущей - утяжеляет запрос (выполнение) неимоверно. я в сходной задаче уперся в геометрическое увеличение времени выполнения такого запроса - и переделал сам алгоритм следующим образом:
 
        1) запрос без значений этой расчетной дельты - выгрузил в ТЗ 2) проходом по ТЗ - в отдельной (добавленной) колонке рассчитал это поле за один проход ТЗ - ну и попутно кучу полей пересчитал более мощным инструментом, нежели возможности языка запросов ))) 3) слепил СКД уже по этой ТЗ. вышло намного проще и намноооого быстрее (+один проход по таблице вместо тета(?)-запроса)  | 
|||
| 
    14
    
        SkillUp    
     21.01.21 
            ✎
    16:54 
 | 
         
        (13) Спасибо.     
         | 
|||
| 
    15
    
        toypaul    
     гуру 
    21.01.21 
            ✎
    16:59 
 | 
         
        (11) тут думать надо. возможно что такой подход не подойдет. я где-то в курсе говорил что все эти мудреные функции довольно часто проще запросами решать. хотя знать как ими пользоваться тоже нужно     
         | 
|||
| 
    16
    
        SkillUp    
     21.01.21 
            ✎
    17:03 
 | 
         
        (15) Да, понял...     
         | 
|||
| 
    17
    
        Михаил Козлов    
     21.01.21 
            ✎
    17:16 
 | 
         
        Временная таблица в датами недель. 2 таблицы с прибылью. Соединить по разность дат в неделях = 1.
 
        Можно и как в (13).  | 
|||
| 
    18
    
        SkillUp    
     22.01.21 
            ✎
    14:29 
 | 
         
        (17) (15) (13) Ребят, спасибо ВАМ. Сделал.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |