![]() |
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 | |||
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 |
|
Список тем форума |