|
Получить из месячных записей недельные |
☑ |
0
cons24
28.09.18
✎
15:14
|
Добрый день.
План продаж введен помесячно (регистр накопления. обороты).
Как запросом получить величину плана на каждую неделю?
|
|
1
Cool_Profi
28.09.18
✎
15:18
|
Выдели недели из месяца и раскида пропорционально
|
|
2
cons24
28.09.18
✎
15:19
|
(1) немного подробнее пожалуйста
|
|
3
Cool_Profi
28.09.18
✎
15:22
|
Куда подробней?
Разбиваешь месяц на недели. Относишь количество дней в неделе (а недель может быть больше 4х) к количеству дней в месяце и перемножаешь
|
|
4
Вафель
28.09.18
✎
15:22
|
количество за нелелю = колчество / 4.5
|
|
5
Cool_Profi
28.09.18
✎
15:24
|
(4) А почему февраль ты так обидель?
|
|
6
cons24
28.09.18
✎
15:30
|
Может я не так выразился.
Дано:
01.08 А 10
01.09 А 20
анализируемый период 01.08-06.09
Надо получить таблицу:
01.08 А 10/31*5
06.08 А 10/31*7
13.08 А 10/31*7
20.08 А 10/31*7
27.08 А 10/31*5
...
03.09 А 20/31*4
т.е. 10(план на месяц)/31(дней в месяце)*5(дней в неделе)
|
|
7
cons24
28.09.18
✎
15:31
|
(3) как в запросе разбить месяц на недели?
|
|
8
Вафель
28.09.18
✎
15:38
|
нужно соеденить с таблицей недель
|
|
9
cons24
28.09.18
✎
16:31
|
(8) а таблицу недель откуда взять?
|
|
10
DmitrO
28.09.18
✎
16:44
|
Предлагаю записи по месяцам пропорционально распределить по дням этого месяца (можно кстати по рабочим только).
После этого получившуюся таблицу с днями свернуть по неделям.
Для этого надо завести на сервере таблицу с днями (подходит основной производственный календарь, например), иначе придется закидывать ее на сервер при каждом формировании отчета.
|
|
11
DmitrO
28.09.18
✎
16:45
|
если честно, задачка походит на тестовую на собеседовании или экзамене каком-то :)
|
|
12
palsergeich
29.09.18
✎
00:22
|
в стандартном конструкторе запросов подсказка: все функции которые там есть.Есть такая функция как НачалоПериода, КонецПериода и РазностьДат. этого достаточно что бы решить эту задачу.
hint сначала для каждого месяца попадающего в отчетный период вычисляем количество дней. 1/количество дней - вес одного дня в плане. Для быстрого решения - могу сказать сразу: Максимально возможное количество недель в месяце - 6. Остальное делается теми 3мя функциями
|
|
13
palsergeich
29.09.18
✎
00:24
|
(12) А еще есть функция ДеньНедели, с ее помощью все становится совсем тривиально (если задача подразумевает привязку к дням недели, то есть реальный календарь, а не все месяцы начинаются с понедельника)
|
|
14
palsergeich
29.09.18
✎
00:29
|
А можно зачитерить, если это не запрещено в условии задачи - воспользоватся регистром сведений ДанныеПроизводственногоКалендаря (в последних конфах он называется чуть по другому)
|
|