Имя: Пароль:
1C
1С v8
СКД (по неделям), надо рассчитать разницу Прибыли последней недели - пред. последней. КАК?
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) Ребят, спасибо ВАМ. Сделал.
AdBlock убивает бесплатный контент. 1Сергей