Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

СКД (по неделям), надо рассчитать разницу Прибыли последней недели - пред. последней. КАК?

СКД (по неделям), надо рассчитать разницу Прибыли последней недели - пред. последней. КАК?
Я
   SkillUp
 
21.01.21 - 10:05
Здравствуйте, вывожу отчет СКД таблицу (по неделям). Надо добавить после всей таблицы колонку "ПрибыльРазница" - прибыль (последней недели) - прибыль (предпоследней недели).

Т.Е. если схематично (взят для примера месяц):

КОЛОНКИ: Неделя №1  Неделя №2   Неделя №3    Неделя №4    ПрибыльРазница

           1           2           3          4              (4-3)

Нет проблем добавить вычисляемое поле, после ТалицыСКД. Проблема как вычислять всегда вычисляемую колонку ("ПрибыльРазница"). Сегодня это разница колонки Колонки №4 - Колонка №3, завтра пользователь другой период выберет, там будет 7 недель (7-мь колонок).
   SkillUp
 
1 - 21.01.21 - 11:52
Может кто-то будет искать:

ВычислитьВыражение ("Сумма(СтоимостьОборот)", "ПериодМесяц","Группировка","Текущая","Текущая", "", "","") - ВычислитьВыражение ("Сумма(СтоимостьОборот)", "ПериодМесяц","Группировка","Предыдущая","Предыдущая", "", "","")
   toypaul
 
2 - 21.01.21 - 12:04
текущая - предыдущая будет считать соот-но разницу между текущей и предыдущей. а не последней и предпоследней. и работать это будет только на группировке ПериодМесяц. то есть если добавить колонку "после всей таблицы". это работать не будет
   toypaul
 
3 - 21.01.21 - 12:06
не уверен что в нашем курсе https://learn.programstore.ru/skd2-intensiv есть похожий пример, но "может кому интересно" - в нем целых два блока "подобных" примеров
   toypaul
 
4 - 21.01.21 - 12:08
Вот вроде есть подобный пример http://prntscr.com/xctmib
   SkillUp
 
5 - 21.01.21 - 14:03
(2) Это пример из интренета был...
   SkillUp
 
6 - 21.01.21 - 14:23
(2) (3) (4)  СПАСИБО!!! ПОСЛЕ РАБОТЫ ГЛЯНУ, ЧТО ЗА КУРС!!!
   SkillUp
 
7 - 21.01.21 - 14:34
Из видео так и не понял, как добраться до предпоследнего значения таблицы.
   SkillUp
 
8 - 21.01.21 - 14:59
(2) (3) (4)  Пытаюсь так :
Ладно, пусть будет колонка в общих итогах:

ЕстьNULL(ВычислитьВыражение("Сумма(ВаловаяПрибыль)", "ПериодНеделя",,"Последняя", "Последняя"),0) - ЕстьNULL(ВычислитьВыражение("Сумма(ВаловаяПрибыль)", "ПериодНеделя",,"Последняя(1)", "Последняя(1)"),0)

Но, что-то не правильно делаю.
   SkillUp
 
9 - 21.01.21 - 14:59
"Последняя(1)" наверно смещение не правльно делаю. Если кто-то подскажет, буду благодарен.
   toypaul
 
10 - 21.01.21 - 16:30
я видео рассказал что такой вариант не сработает. и в своем сообщении в (2) про это же написал. там показано другое решение
   SkillUp
 
11 - 21.01.21 - 16:41
(10) ТА все понял, вот делаю:

Сумма( ВЫБОР КОГДА ПериодНеделя = ВычислитьВыражение( "Максимум(ПериодНеделя)","НоменклатурнаяГруппа") ТОГДА ВаловаяПрибыль  КОГДА ПериодНеделя = ВычислитьВыражение("МИНИМУМ(ПериодНеделя)","НоменклатурнаяГруппа") ТОГДА  - ВаловаяПрибыль ИНАЧЕ 0 КОНЕЦ)

Только мне надо, от последней  - предпоследня. А в видео все просто, либо последняя либо первая. А как именно предпоследний период выбрать?
   SkillUp
 
12 - 21.01.21 - 16:43
Может быть так?

ВычислитьВыражение("ДОБАВИТЬКДАТЕ("МАКСИМУМ (ПериодНеделя)", ДЕНЬ, -7))","НоменклатурнаяГруппа") ТОГДА  - ВаловаяПрибыль ИНАЧЕ 0 КОНЕЦ)
   Cthulhu
 
13 - 21.01.21 - 16:49
решение нарастающих итогов-убытков сиречь вычисление поля, в котором д.б. разница/сумма каких-то полей текущей записи и предыдущей - утяжеляет запрос (выполнение) неимоверно. я в сходной задаче уперся в геометрическое увеличение времени выполнения такого запроса - и переделал сам алгоритм следующим образом:
1) запрос без значений этой расчетной дельты - выгрузил в ТЗ
2) проходом по ТЗ - в отдельной (добавленной) колонке рассчитал это поле за один проход ТЗ - ну и попутно кучу полей пересчитал более мощным инструментом, нежели возможности языка запросов )))
3) слепил СКД уже по этой ТЗ.
вышло намного проще и намноооого быстрее (+один проход по таблице вместо тета(?)-запроса)
   SkillUp
 
14 - 21.01.21 - 16:54
(13) Спасибо.
   toypaul
 
15 - 21.01.21 - 16:59
(11) тут думать надо. возможно что такой подход не подойдет. я где-то в курсе говорил что все эти мудреные функции довольно часто проще запросами решать. хотя знать как ими пользоваться тоже нужно
   SkillUp
 
16 - 21.01.21 - 17:03
(15) Да, понял...
   Михаил Козлов
 
17 - 21.01.21 - 17:16
Временная таблица в датами недель. 2 таблицы с прибылью. Соединить по разность дат в неделях = 1.
Можно и как в (13).
   SkillUp
 
18 - 22.01.21 - 14:29
(17) (15) (13) Ребят, спасибо ВАМ. Сделал.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.