Имя: Пароль:
1C
1С v8
Отчёт, Произвольная периодичность в параметрах виртуальной таблицы
,
0 newbling
 
12.08.16
11:23
Доброго времени суток. В параметрах виртуальных таблиц есть замечательная возможность указать периодичность. Например, день, месяц, год, и т.д. В силу специфики торговли, 'удобнее' всего для ABC и динамики анализа есть желание использовать годовую периодичность, но с марта по февраль, а ни с января по декабрь.

Так вот, есть ли какой-нибудь способ это сделать так же легко, как выставление той же годовой периодичности? Просто суть в том, что я считаю ABC по нарастающему итогу за период. И всё отлично срастается в группировке нарастающего итога по стандартным периодам.
1 newbling
 
12.08.16
11:25
Но вот как это автоматом группировать с произвольными периодичностями, я не представляю, кроме как плодить временные таблицы и использовать предопределённое количество периодов.
2 vicof
 
12.08.16
11:30
Тебе не нужен год, это просто дата начала и окончания, группировка месяц + итоги
3 newbling
 
12.08.16
11:36
Нарастающий итог для abc надо смотреть целиком за период, просто месяц не прокатит.
4 mistеr
 
12.08.16
13:41
Периодичность - месяц, затем отбор январь-февраль, затем группировка по году. Или я не понял специфики.
5 mistеr
 
12.08.16
13:44
(4) А, понял. Специфика "с марта по февраль".

Тогда вычисляемое поле ПериодГруппировки = Период – 3 месяца.
6 newbling
 
12.08.16
14:41
Я могу кинуть текст запроса, но там довольно много. Просто вкратце опишу суть.

Из регистра ВыручкаИСебестоимость достаём данные с группировкой по номенклатуре и Периоду(год).
Получается, например:

Номенклатура | Период | Доход
Ном1         | 2015   | 100
Ном2         | 2015   | 200
Ном1         | 2016   | 150
Ном2         | 2016   | 200

Потом высчитываем общий доход по периодам:

Период | Доход
2015   | 300
2016   | 350

Соединив первые 2 таблички по периодам, вычисляем долю дохода от общей суммы:

Номенклатура | Период | ДоляДохода
Ном1         | 2015   | 0.33
Ном2         | 2015   | 0.67
Ном1         | 2016   | 0.43
Ном2         | 2016   | 0.57

Соединяем табличку саму с собой по убыванию доли дохода чтобы вычислить нарастающий итог по периодам (нужно для ABC). Для упрощения отсортирую по возрастанию доли:

Номенклатура | Период | ДоляДоходаНарастающийИтог
Ном2         | 2015   | 0.66
Ном1         | 2015   | 1
Ном2         | 2016   | 0.57
Ном2         | 2016   | 1

Таким образом, то, что по доле <= пускай 0.8, будет в категории A, т.е. составляет 80% нашей прибыли и т.д.

Так вот, всё тут просто когда можно выставить периодичность Год в самом первом запросе. И всё замечательно группируется и считается. А нам надо не стандартный год (с 01.01.xxxx по 31.12.xxxx), а наш мартовский год (с 01.03.xxxx по 28/29.02.xxxx+1).
7 newbling
 
12.08.16
14:43
Пардон, последняя строка последней таблички Ном1.
8 newbling
 
12.08.16
14:45
(6) Вот именно из-за расчета нарастающего итога по перодам не прокатывает просто дополнением делать в скд, а надо именно в запросе как-то.
9 newbling
 
12.08.16
14:47
(5) Это как так? Вычисляемые поля же нельзя в периодичность виртуальной таблицы подставить вроде.
10 hhhh
 
12.08.16
15:33
(8) почему не прокатывает? в скд можно любой период задать, 10 месяцев, 12, 15, какая разница? Периодичность ставь не год, а Период. И всё.
11 newbling
 
12.08.16
15:37
(10) Когда периодичность Период, то там нет поля периода для группировки по нему.
http://prntscr.com/c4tl73
12 vicof
 
12.08.16
15:40
Авто поставь
13 hhhh
 
12.08.16
15:40
(11) пишешь

&ДатаНачала КАК МоеПолеДляГруппировкиПоПериоду

всё.
14 newbling
 
12.08.16
15:42
(13) где?
15 hhhh
 
12.08.16
15:46
(14) где тебе было нужно, там. Хотя непонятно, зачем оно тебе?
16 newbling
 
12.08.16
15:50
(15) Мне нужно вот тут
http://prntscr.com/c4tqk9
17 newbling
 
12.08.16
15:51
(15) я чуть выше описал как считаю нарастающий итог, тут шляпа в том, что он жёстко к периоду привязан.
18 mistеr
 
13.08.16
13:41
(17) Еще раз. В запросе к регистру ставишь периодичность Месяц. Далее вычисляешь ОтчетныйПериод = Год(Период - 3 мес.). Хоть в запросе, хоть в СКД, без разницы. Группируешь по нему. Доли и нарастающий итог СКД прекрасно считает сама, без лишних соединений.
19 newbling
 
15.08.16
09:46
(18) Доли и нарастающий итог СКД прекрасно считает сама, без лишних соединений

А можно подробнее?
20 newbling
 
15.08.16
09:47
Это про
ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Текущая")
речь?
21 newbling
 
15.08.16
09:47
хм, надо попробовтаь
22 newbling
 
16.08.16
09:43
ВычислитьВыражение("Сумма(Сумма)", , , "Первая", "Текущая")
работает, а вот с отчётным периодом я всё равно не понял. Пока сделал костыль с объединением по 2-м периодам.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой