|
Заезженная тема. Остатки на каждый месяц | ☑ | ||
---|---|---|---|---|
0
D_Sergeevich
23.02.20
✎
19:23
|
Всем привет и с праздником!
Не могу понять почему если в первом месяце в разрезе одной группы (Гр3) на конец периода остаток 0, то на остальные месяцы по этой группе записей уже нету. Например: https://yadi.sk/i/qyFaUnQjkxZDjA Помогите плиз, а то меня скоро сожрут.
|
|||
1
RomanYS
23.02.20
✎
20:09
|
(0) пипец ты там вложенных нагородил. Проще заново написать чем это прочитать.
|
|||
2
D_Sergeevich
23.02.20
✎
20:30
|
(1) это мне досталось по наследству. Переписать пробовал, не получается нужный результат.
|
|||
3
palsergeich
23.02.20
✎
20:40
|
Если надо по быстрому - СКД из коробки2мя способами умеет получать остатки на каджый день, даже если нет движений.
1) Расширение периода 2) связь через параметр |
|||
4
RomanYS
23.02.20
✎
20:41
|
(2) Надо себя заставить. Пытаться править то, что не понимаешь - только в закопаешься в этом г.
Примеров как это делается полно и там ничего сложного |
|||
5
RomanYS
23.02.20
✎
20:41
|
||||
6
palsergeich
23.02.20
✎
20:42
|
(5) Пока база маленькая - это будет работать.
Но при оборотистых базах - это смерть. Выхода 2 - или получать в цикле/скд. или хранить расчитанными |
|||
7
palsergeich
23.02.20
✎
20:43
|
(6) тетта соежинение на больших таблицах штука прожорливая
|
|||
8
RomanYS
23.02.20
✎
20:44
|
(5) хотя пример возможно не лучший
|
|||
9
RomanYS
23.02.20
✎
20:45
|
(7) у него месяцы. Месяцев обычно не больше 100, от соединения 100*100 ни одна база не умрет
|
|||
10
palsergeich
23.02.20
✎
20:45
|
(8) Пример то хороший, но последствия - как бомбу заложить. Рано или поздно рванет
|
|||
11
palsergeich
23.02.20
✎
20:46
|
(9) Ну если месяц, то да
|
|||
12
RomanYS
23.02.20
✎
20:49
|
(10) Оптимальнее наверное получить периоды действия остатков, а потом соединять с таблицей периодов. Тогда расчет суммы в группировке не нужен будет.
А пример хорош тем, что очень коротко) |
|||
13
RomanYS
23.02.20
✎
20:51
|
+(12) в примере по сути идет расчет нарастающего итога, а имея таблицу остатков без этого можно обойтись.
|
|||
14
D_Sergeevich
23.02.20
✎
21:21
|
(5) пытаюсь сделать по этому примеру, результат выходит странный, либо остаток суммируется (если делать сумма) за весь период либо он вообще какй то левый. Я не пойму как его группировать или нужно обороты прибавлять?
ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачПериода, МЕСЯЦ, Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1) КАК Период ПОМЕСТИТЬ ВТ_Календарь ИЗ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры2 ПО (Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&НачПериода, &КонПериода, МЕСЯЦ)) ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры3 ПО (Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&НачПериода, &КонПериода, МЕСЯЦ)) ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры4 ПО (Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&НачПериода, &КонПериода, МЕСЯЦ)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Движения.ИсточникКредитования КАК ИсточникКредитования, ВТ_Календарь.Период КАК Период, Движения.Период как ПериодДвиж, (Движения.СуммаВалКонечныйОстаток) КАК СуммаВалКонечныйОстаток //сумма(ВЫБОР //КОГДА Движения.Период = &НачПериода //ТОГДА Движения.СуммаВалКонечныйОстаток //ИНАЧЕ ВЫБОР //КОГДА Движения.Период <= ВТ_Календарь.Период //ТОГДА Движения.СуммаВалОборот //ИНАЧЕ 0 //КОНЕЦ //КОНЕЦ) КАК СуммаВалКонечныйОстаток ИЗ ВТ_Календарь КАК ВТ_Календарь ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты( &НачПериода, &КонПериода, МЕСЯЦ, , ИсточникКредитования.ЭтоГруппа = ЛОЖЬ И Валюта = &Валюта) КАК Движения ПО (Движения.Период <= ВТ_Календарь.Период) СГРУППИРОВАТЬ ПО Движения.ИсточникКредитования, ВТ_Календарь.Период, Движения.Период, Движения.СуммаВалКонечныйОстаток УПОРЯДОЧИТЬ ПО ИсточникКредитования, Период |
|||
15
D_Sergeevich
23.02.20
✎
21:29
|
(14) Коряво форматнулся
|
|||
16
RomanYS
23.02.20
✎
21:42
|
(14) конечно, там идёт расчет нарастающего итога: к начальному остатку добавляются обороты до даты.
В такой ситуации возможно корректнее брать отдельно таблицу остатков и отдельно оборотов |
|||
17
D_Sergeevich
23.02.20
✎
22:58
|
Вроде остаток на конец работает верно, а как сделать тоже самое только на НАЧАЛО ПЕРИОДА?
|
|||
18
RomanYS
23.02.20
✎
23:09
|
сумма(ВЫБОР
КОГДА Движения.Период = &НачПериода ТОГДА Движения.СуммаВалНачальныйОстаток КОГДА Движения.Период < ВТ_Календарь.Период ТОГДА Движения.СуммаВалОборот ИНАЧЕ 0 КОНЕЦ) КАК СуммаВалНачальныйОстаток |
|||
19
RomanYS
23.02.20
✎
23:11
|
(17) и засунь уже цифры в ВТ. Зачем их четыре раза собирать во вложенном, если можно один раз поместить и 4 раза использовать.
|
|||
20
D_Sergeevich
23.02.20
✎
23:32
|
(18) Я так уже делал, оно не верно. Получается на конец февраля по одной из групп остаток 0, значит на начало марта должно быть 0, а оно выводит то что было в начале января
|
|||
21
RomanYS
24.02.20
✎
00:03
|
(20) да, ошибка. Обороты первого периода теряются. Поэтому кстати и удобнее брать отдельно остатки и обороты
|
|||
22
D_Sergeevich
24.02.20
✎
00:10
|
(21) Есть примерчик? я не гуру в 1с поэтому сваять самому чет не выходит
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |