|
Сравнение двух таблиц дат и оплат | ☑ | ||
---|---|---|---|---|
0
Наська72
07.08.13
✎
13:05
|
На входе две таблицы, в одной дата по графику и сумма по графику, во второй дата фактической оплаты и суммы фактической оплаты.
Задача: найти по каждой строке количество дней просрочки и суммы просрочки. Платить могут хоть одной суммой: ДатаПоГрафику СуммаПоГрафику 01.01.2013 1000,00 02.02.2013 1000,00 03.03.2013 1000,00 ДатаФакт СуммаФакт 01.01.2013 3000,00 Хоть сто пятьсот раз: ДатаФакт СуммаФакт 01.01.2013 500,00 02.01.2013 500,00 03.01.2013 500,00 01.02.2013 500,00 02.02.2013 500,00 03.03.2013 500,00 Хоть в график, хоть с опозданием. Подскажите как оптимальнее это посчитать. Пока реализую сравнение двух таблиц по каждой строке. И накапливать в переменной сумму оплаты. |
|||
1
Наська72
07.08.13
✎
13:17
|
Не совсем ясно как обработать такое
по графику 05.01.2013 1000,00 01.02.2013 500,00 фактическ 01.01.2013 500,00 03.01.2013 500,00 01.02.2013 500,00 |
|||
2
Starhan
07.08.13
✎
13:25
|
(0)"Задача: найти по каждой строке"
У меня три варианта ответа. По каждой строке 1й таблицы По каждой строке 2й таблицы По каждой строке обоих таблиц. Прошу помощи зала. |
|||
3
exwill
07.08.13
✎
13:31
|
(0) Записывай таблицы в РН. Потом анализируй остатки на каждую дату.
|
|||
4
exwill
07.08.13
✎
13:34
|
+(3) Можно, конечно, и запросом. Но с регистром тебе будет проще.
|
|||
5
Starhan
07.08.13
✎
13:35
|
(3)
Теоретически: можно соединить таблицы дата 1й меньше или равно дата 2й. И наоборот. Сгруппировать для того что бы получить общую сумму долга по графику и общую сумму оплат на конкретное число (тут вопрос по датам какой таблицы нужна группировка) ну и вычесть из первого второе. |
|||
6
Peltzer
07.08.13
✎
13:36
|
СуммаСНачалаТаблицы = 0;
ТекДатаПросрочки = ПустоеЗначение; ТекСуммаПросрочки = 0; ТаблицаГрафика.ДобавитьКолонки("ДатаНачалаПросрочки", "СуммаПросрочки"); Для Каждого Строка Из ТаблицаГрафика Цикл СуммаСНачалаТаблицы = СуммаСНачалаТаблицы + Строка.Сумма; Если СуммаСНачалаТаблицы>НайтиОплаченноеНаДату(Строка.Дата) Тогда ТекДатаПросрочки = ?(ТекДатаПросрочки=ПустоеЗначение,Строка.Дата,ТекДатаПросрочки); ТекСуммаПросрочки = ТекСуммаПросрочки + Строка.Сумма; Иначе ТекСуммаПросрочки = 0; ТекДатаПросрочки = ПустоеЗначение; КонецЕсли; Строка.СуммаПросрочки = ТекСуммаПросрочки; Строка.ДатаПросрочки = ТекДатаПросрочки; КонецЦикла |
|||
7
exwill
07.08.13
✎
13:38
|
Очевидно, что группировка нужна по всем датам из диапазона.
|
|||
8
Starhan
07.08.13
✎
13:40
|
(7) а мне очевидно что только на дату графика :(
(6) черд я думал надо решить в рамках запроса. :( |
|||
9
exwill
07.08.13
✎
13:41
|
(8) "Количество дней просрочки" ни о чем не говорит?
|
|||
10
Peltzer
07.08.13
✎
13:42
|
Да вообще не понятно что и как решать :)
|
|||
11
exwill
07.08.13
✎
13:43
|
(10) Наоборот - достаточно стандартная задача на определение штрафных санкций.
|
|||
12
Peltzer
07.08.13
✎
13:46
|
Объединить таблицы, но вторую таблицу со знаком минус.
Затем считать сумму с начала до текущей даты и для всех ненулевых потом брать начало периода из предыдущей строки. |
|||
13
Peltzer
07.08.13
✎
13:47
|
Положительных.
|
|||
14
Наська72
07.08.13
✎
13:47
|
Это не запрос.
Регистр накопления использовать нельзя. Я пишу отчет, это будут две колонки, я решила рассчитывать их и передавать в скд таблицей-объектом. Потому как это все велось в табличной части и вперемешку, то это полный атас. Выделять думаю надо по датам графика, хотя хз, если дат оплаты будет больше графика |
|||
15
Наська72
07.08.13
✎
13:48
|
(11) может быть у Вас есть решение?
|
|||
16
Starhan
07.08.13
✎
13:48
|
(9) Тогда надо сначло найти все даты по графику на которые есть задолженность. А потом искать ближайшие даты в ноль.
(11) то есть если я на 01.02.2013 должен 1000 а на 01.03.2013 уже две мне отдельно впаяют за 2 месяца за 1000 и за 1 месяц за 2000? или за 1 месяц 1000 и за 1 месяц 2000 тысячи? |
|||
17
Конфигуратор1с
07.08.13
✎
13:49
|
(0) я так понимаю, обходим таблицу графика и смотрм когда она погашается. усе.
|
|||
18
Starhan
07.08.13
✎
13:51
|
(14) надо переделывать механизм учета на регистры накопления :)
|
|||
19
Конфигуратор1с
07.08.13
✎
13:51
|
(14) ну так Вам нужно обходить даты графика и смотреть на какую они погащаются дату. от нее и отнимать размер просрочки и так для каждой строки
|
|||
20
Peltzer
07.08.13
✎
13:52
|
(17) Если погашается частично, то нет.
|
|||
21
Конфигуратор1с
07.08.13
✎
13:52
|
(19) по идее мона запросом разрулить через накопление итога общей суммой
|
|||
22
Конфигуратор1с
07.08.13
✎
13:52
|
(20) почему нет? если брать дату погашения
|
|||
23
Конфигуратор1с
07.08.13
✎
13:53
|
||||
24
Конфигуратор1с
07.08.13
✎
13:54
|
(23) но тут извращаться придется сильно. Проще перебором
|
|||
25
Peltzer
07.08.13
✎
13:56
|
График
01.01 1000 рублей Оплата 02.01 500 рублей 03.01 500 рублей Результат 02.01 СуммаЗадолженности 1000 СрокЗадолженности 1 день 03.01 СуммаЗадолженности 500 СрокЗадолженности 1 день Либо 02.01 СуммаЗадолженности 500 СрокЗадолженности 1 день 03.01 СуммаЗадолженности 500 СрокЗадолженности 2 дня |
|||
26
Наська72
07.08.13
✎
13:58
|
(25)
02.01 СуммаЗадолженности 500 СрокЗадолженности 1 день 03.01 СуммаЗадолженности 500 СрокЗадолженности 2 дня |
|||
27
Наська72
07.08.13
✎
14:00
|
(18) еще раз повторю - это невозможно. База архивная. Редактированию не подлежит. Надо отчет по старым данным
|
|||
28
Леха Дум
07.08.13
✎
14:02
|
(0) вдруг поможет: http://yadi.sk/d/MvmNhLh57eYR2
там запрос на формирование пени на каждый день. Когда подобная хрень работала перебором за каждый день, документ проводился полчаса. Сейчас не больше 1 минуты |
|||
29
Smallrat
07.08.13
✎
14:03
|
(0) я где-то полгода назад делал похожий отчет - щас смотрю на него - без стакана не разобраться.
помню что ключевой момент - взять таблицу приходов и соединить саму с собой чтобы получить нарастающий итог. если надо - могу отчет кинуть, он написан для УТ (вот правда не помню - с доработками или нет). |
|||
30
exwill
07.08.13
✎
14:09
|
(27) Сделай промежуточную базу.
|
|||
31
Наська72
07.08.13
✎
14:15
|
(30) всё ради отчета?
|
|||
32
Леха Дум
07.08.13
✎
14:17
|
(31) скачала из (28) ?
|
|||
33
exwill
07.08.13
✎
14:18
|
(31) Почему нет?
|
|||
34
Наська72
07.08.13
✎
14:22
|
(32) Да, смотрю
|
|||
35
Наська72
07.08.13
✎
14:47
|
(32) не совсем там поняла
Что бы было понятнее вот файлик эксель с тем что нужно. Колонки с просрочкой то что нужно, остальное есть https://docs.google.com/file/d/0Bwa1kNXZy3nQX0FGTFJTNUV3cHc/edit?usp=sharing |
|||
36
Наська72
08.08.13
✎
12:55
|
Большое спасибо всем за помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |