Переключение на Главную Страницу Страницы: [1] 2 3 ... 5 ОтправитьПечать
Очень популярная тема (более 25 ответов) Нужен совет по организации данных (число прочтений - 12728 )
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Нужен совет по организации данных
18. Января 2011 :: 07:34
Печать  
  Есть подсистема учета выданных кредитов, которая должна обеспечивать расчет графиков платежей, учет платежей от заемщиков, учет остатков по платежам и просроченных платежей, начисления пени и штрафов и т.д.

  Сейчас это реализовано с помощью одного основного документа “График платежей”, в котором храниться вся информация. Это достаточно неудобно как с точки зрения удобства работы с данными - все сосредоточено в одном месте, код слишком перегружен, так с точки зрения модификации алгоритмов расчета, которые на текущий момент требуют серьезных изменений как по структуре хранения данных, так и по изменению кода.

  Поставлена задача переделать этот участок для более гибкой и удобной работы. Нужен совет, как бы можно было организовать хранение данных для решения поставленных задач.

На текущий момент вырисовывается следующая возможная схема

1. Данные хранить в 2-х регистрах (возможно больше):
   ТекущаяЗадолженность
       Измерения:
           - Заемщик
           - Тип  суммы (долг, проценты, пени и т.д.)
       Ресурсы
           - Сумма
   ПросроченнаяЗадолженность
       Измерения:
           - Заемщик
           - Тип  суммы (долг, проценты, пени и т.д.)
       Ресурсы
           - Сумма

2. Документ “Начисления”
   Его задача один раз в месяц (1-го числа) начислять текущую задолженность по платежам по заемщикам, данные пишутся в регистр “ТекущаяЗадолженность”

3. Документ “Закрытие месяца”
   Его задача один раз в месяц (в последний день месяца) переносить остатки по регистру “ТекущаяЗадолженность” в регистр “ПросроченнаяЗадолженность” и начислять пени и штрафы на просроченные платежи (где хранить пока не решил, возможно в регистре “ТекущаяЗадолженность”, возможно в отдельном.

4. Прочие документы, которые также могут влиять на остатки по регистрам (например “Фактические платежи”, “Досрочное погашение”, “Списание пени” и т.д.)

Для определения текущей задолженности по платежам складываем остатки по регистрам, начисляем текущие пени на остатки по регистру “ПросроченнаяЗадолженность”.

Вроде все хорошо, но есть одно но..
По каждому заемщику задолженность имеет сложную структуру, т.е состоит из нескольких частей (долг, проценты, просроченный долг, просроченные проценты, пени, штрафы и т.д.)

Таким образом, например, документ “Начисление” должен иметь структуру табличной части:
   Строка 1  -  Заемщик 1
           Вид платежа 1 - Сумма
           Вид платежа 2 - Сумма
           ..
           Вид платежа N - Сумма
   Строка 2  -  Заемщик 2
           Вид платежа 1 - Сумма
           Вид платежа 2 - Сумма
           ..
           Вид платежа N - Сумма

Данную структуру довольно сложно реализовывать 7.7 (хотя различные варианты конечно существуют).

Возникла мысль реализовать это в виде одного общего документа вида
   Строка 1 - Заемщик 1 - Начисление 1 (ссылка на документ)

И набора подчиненных документов вида
   Строка 1 - Вид платежа 1 - Сумма
   Строка 2 - Вид платежа 2 - Сумма
   ..
   Строка N - Вид платежа N - Сумма

Аналогичную структуру имеют остальные документы (“Закрытие месяца”, “Фактические платежи” и т.д.)

Но тогда получим очень большое кол-во документов (заемщиков около 3000, по каждому начисление, закрытие, платежи каждый месяц, итого в год грубо от 90000 документов).
Это конечно не такая уж и проблема, но журнал документов будет пухнуть со страшной силой.

Короче нужен совет, как бы это можно было еще организовать, думаю на этим уже 2-ю неделю, весь мозг сломал.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #1 - 18. Января 2011 :: 07:58
Печать  
Если правильно понял, то "задолжность" можно организовать в виде подчиненного справочника. Скорее всего примерно так: у справочника "Контрагенты/Клиенты есть подчиненный справочник Договоры (в нем есть основные реквизиты как этот контр попал на деньги, когда, на сколько и т.п.). Справочнику "Договоры" подчиняем справочник "Задолжности", в реквизитах которого будет вид задолжности. Т.е. один элемент справочника - это один вид задолжности. Далее в документах можно оперировать этими элементами. Можно, наверное, и текущий долг по этой задолжности хранить там же (или зделать его периодически, хотя через регистры будет скорее всего побыстрее и попроще)
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #2 - 18. Января 2011 :: 08:01
Печать  
Дело в том, что задолженность возникает регулярно каждый месяц, т.е. выдан кредит например на 180 месяцев, и каждый месяц возникает обязательство по погашению платежа, если до конца месяца не оплачен, платеж становится просроченным и переносится на  следующий месяц.

Думаю, что на справочниках такое сделать будет довольно сложно и не совсем удобно.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #3 - 18. Января 2011 :: 08:06
Печать  
Как раз и будет 180 элементов справочника "Задолжности" (наверное лучше его назвать "Обязательства"), в каждом из которых будет стоять свой срок и сумма, ну и флаг "Погашен"
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #4 - 18. Января 2011 :: 08:16
Печать  
А как получать текущую задолженность?
Суммировать суммы элементов справочника с определенным сроком погашения..

И как быть, если например, начисление отменено (изменен состав видов начисления)?
В ручную удалять созданные элементы справочника?
  
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: Нужен совет по организации данных
Ответ #5 - 18. Января 2011 :: 09:16
Печать  
Исходя из описания задачи просится использование компоненты "Расчет".
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #6 - 18. Января 2011 :: 09:18
Печать  
Была такая мысль, но мне кажется данная задача не совсем ложиться на механизмы, используемые в компоненте "Расчет"..
Хотя надо еще раз попробовать подумать в этом направлении..

Мне не очень понятно, как закрывать погашенные платежи..
И как получать текущие итоги по задолженности с учетом просрочек..
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #7 - 18. Января 2011 :: 09:19
Печать  
CaBaT писал(а) 18. Января 2011 :: 08:16:
А как получать текущую задолженность?
Суммировать суммы элементов справочника с определенным сроком погашения..

И как быть, если например, начисление отменено (изменен состав видов начисления)?
В ручную удалять созданные элементы справочника?

У тебя ж текущая задолжность будет храниться в регистре - оттуда и тащи.( Но в принципе можно и просуммировать и все элементы, у которых "Погашен"=0).

Начисление отменено - устанавливаешь флаг "погашен"=1 и создаешь новый элемент с новыми данными.
Ну тогда и этот флаг лучше переименовать в "Действует"
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #8 - 18. Января 2011 :: 09:21
Печать  
JohnyDeath писал(а) 18. Января 2011 :: 09:19:
У тебя ж текущая задолжность будет храниться в регистре - оттуда и тащи.( Но в принципе можно и просуммировать и все элементы, у которых "Погашен"=0).

С этого места поподробнее..
Т.е. предлагается реализовать некую комбинацию справочник-регистр?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #9 - 18. Января 2011 :: 09:39
Печать  
Ну да. схематично примерно так:
Есть регистр "Задолжности" с реквизитами: "Контрагент", "Обязательство"
и ресурсом "Сумма"

Есть документ "Начисление", который двигает регистр в плюс по соответствующим реквизитам на сумму, которую он должен выплатить.
Когда контрагент оплачивает свой долг, то документ РасходныйОрдер, Выписка (может еще какой) двигает на оплаченную сумму регистр в минус.
Остаток по этому регистру и есть Сумма, которую он вам еще торчит (ес-но можно будет посмотреть как общий долг конкретного Контра, так и с разворотом по Обязательствам)

Если меняются условия неким документом, то он также делает проводки в минус по старому Обязательству на сумму остатка по данному Обязательству и ставит ему флаг Действует = 0, затем двигает регистр в плюс по новому обязательству
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #10 - 18. Января 2011 :: 09:43
Печать  
А каким местом тут справочник на 180 элементов прикручен?
А структура, которую ты описал, вроде как совпадает с моей, описанной в самом начале? Улыбка
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #11 - 18. Января 2011 :: 09:55
Печать  
Справочник "Обязательства" содержит те самые 180 элементов
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #12 - 18. Января 2011 :: 10:00
Печать  
Видимо я тут что то недопонял..

Видов обязательств немного - штук 5-7
(долг, проценты по долгу, просроченный долг, просроченные проценты, пени за просрочку погашения долга, пени за просрочку погашения процентов, штраф - вот пожалуй все основные).

А вот процентных периодов - 180 (по кол-ву месяцев, на сколько выдан кредит)
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #13 - 18. Января 2011 :: 10:08
Печать  
В каждом элементе справочника "Обязательства" содержится как минимум:
1) Дата начала возникновения обязательства
2) Планируемая дата погашения обязательства
3) Сумма обязательства
4) Вид обязательства.

Т.е. будет что-то типа:
1) Элемент1:
1.1) 01.01.11
1.2) 31.01.11
1.3) 1000
1.4) Кредит

2)Элемент2
1.1) 01.02.11
1.2) 28.02.11
1.3) 900
1.4) Кредит

и т.д. все 180
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужен совет по организации данных
Ответ #14 - 18. Января 2011 :: 10:13
Печать  
да, видать и я не так сначала понял. Но всё равно вроде как можно уложиться в данную схему.

Я так понимаю, если Контр просрочил платеж, то у него возникает новое обязательство с видом "Просроченный долг". Если да, то добавляем ему новый элемент справочника "Обязательства" на соответствующую сумму.

Можно еще в этом же справочнике добавить реквизит "Источник", в котором будет ссылка на то Обязательство по которому он создал просрочку
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 5
ОтправитьПечать