Bankir.Ru
10 декабря, суббота 21:39

Объявление

Свернуть
Пока нет объявлений.

5NT - Начисления

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • 5NT - Начисления

    Возможно-ли обойти запрет на создание более одного начисления одного вида за один и тот-же период ???

    Задача:
    - Есть начисление для рассчета комиссии, которое выполняется 1 раз в месяц по всем клиентам.
    - Есть клиент, который закрывет счет в середине месяца и хочет рассчитаться
    .
    Хочется сделеать рассчет за часть месяца только для этого клиента используя уже имеющееся начисление.
    Однако, если сделать это начисление, то в конце месяца Диас не даст сделать начисление за весь месяц ...

    P.S.
    В голову лезут мысли о привязке рассчета комиссий к депозитарным операциям (б-р-р-р-р-р !!!)

  • #2
    Посмотри настройки при создании начисления:
    "Контроль пересечения диапазонов"
    "Не отменять действия по протоколу при переначислении"

    Комментарий


    • #3
      А лучше, сделай 2 разных начисления .

      Комментарий


      • #4
        2 kvit Что-то нет у меня галочки "Контроль пересечения диапазонов" .


        Версия 3.5.4

        Комментарий


        • #5
          RedPank
          у меня 3.5.9 , но появилось это по моему в 3.5.6

          Комментарий


          • #6
            У меня такая задача реализована сл. образом.
            Начисление одно. Объект начисления - аналитические признаки (вытаскиваются портфели). В параметрах - дата и портфель. Если конкретный портфель не указать, то идет начисление по всем, если указать - только по нему. В структуре начисления контролируется факт, что за рассчитываемый месяц уже были такие начисления и соответсвующие портфели не учитываются.
            Таким образом, можно в середние месяца рассчитать клиента без последствий для общего ежемесячного начисления.
            Не знаю как на 3.5. но на 3.3 все работает.

            Комментарий


            • #7
              2 Unregistered
              Можно поподробнее.

              В "Структуре финансовых операций" в начислениях задаем "Объект начисления" (допустим "Группа пользователей").
              Что надо сделать, что-бы начисление работало. А то после добавления ругается: "Нет данных для рассчета"

              Комментарий


              • #8
                "Нет данных..." - это не связано с типом "Объекта начисления" - это значит что запрос создающий список (в "Структура начислений") по которым будет произведено начисление - возвращает пустой набор данных.
                С уважением, Максаев Андрей.

                Комментарий


                • #9
                  Пост Unregistered - мой. Пароль не помнил - давно здесь не был.

                  Как я понял, задача заключается в том, чтобы можно было одним начислением и рассчитать клиента внутри месяца, и провести ежмесячные начисления по всем клиентам.
                  Самое просто, что для этого нужно - сделать объектом начисления ту сущность, которая идентифицирует клиента/счет. У меня это портфель (объект - аналитические признаки. Группа полльзователей в дланном случае не подойдет). Портфели так же используются в качестве входного параметра. Указываешь конкретный портфель - начисление работает только по нему, не указываешь - по всем портфелям, которым начисляется комиссия.

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

                  Комментарий


                  • #10
                    SVP Это в общем ясно.
                    Не ясно, что и где должно измениться в описании начисления (в SQL запросе, в параментрах, ...) когда указывешь "Объект начисления" ?

                    Можно пояснить в "формате"
                    1. ....
                    2. ....
                    N. ....

                    Комментарий


                    • #11
                      RedPank
                      Объект начисления - это ID, который ты передаешь в результативном запросе, как поле ObjectID, ID.

                      1. В структуре ФО в начислении указываешь объект начисления (допустим это портфели)
                      2. В запросе в ObjectID вытаскиваешь конкретные портфели.

                      -- Результативный select

                      select dp.DepartmentID ObjectID,
                      dp.DepartmentID ID,
                      ........
                      ........
                      from .........
                      join tDepartment dp
                      ........
                      where dp.SubcontoType = 1
                      ........

                      3. Внимательно смотришь на проводки - как определяются счета, субконто, отрабатывают формулы условий и т.д. Потому, что они могут использовать поля ObjectID и ID, возвращаемые начислением, а ты их поменял.

                      Комментарий


                      • #12
                        По существу вопроса, уже был ответ от Kvit - это настройка "Не отменять действия по протоколу при переначислении"

                        - Есть начисление для рассчета комиссии, которое выполняется 1 раз в месяц по всем клиентам.
                        - Запуск начисления за последнее число месяца, с пустым клиентом

                        - Есть клиент, который закрывет счет в середине месяца и хочет рассчитаться
                        - запуск начисления за любую другую дату, с указанным клиентом

                        Вопрос по всем или по указанному, необходимо решить в запросе в "Структура начисления" - тоесть запросить клиента у пользователя. Например:
                        exec My_Super_Select @DateCalc = ateEnd, @InstitutionID = %InstOwnerID!
                        а в My_Super_Select - реализовать логику, указан @InstitutionID - расчет по нему, не указан по всем. (Параметр %InstOwnerID! - должен разрешать пусто)
                        Тогда при запуске начисления появится и окошко для ввода клиента (или любого другого настроенного параметра)

                        Ну у меня обычно начисления возвращают вот такой обязательный набор полей
                        select
                        ... DealID,
                        ... ObjectID, -- вот собственно ссылка на "Объект начисления"
                        ... ID, -- просто уникальный ид для строки, иначе для строк с одинаковым числом и для одинакового ObjectID, будут кэшировать передаваемые в постобработку данные, если для каждой строки вызываются внутренние функции Диа (а они вызываются всегда)
                        ... DealType,
                        ... TransactType,
                        ... DealDate,
                        ... Date,
                        ... FixDate,
                        ... FixCourse,
                        ... DealTransactID,
                        ... Confirmed,
                        ... Num,
                        ... CmsSum,
                        --- и добавить любой набор собственных полей, которые можно использовать как входные параметры для пост-обработки

                        Если поле (например DealID, DealType) не важно - возвращайте 0 (ноль), для даты convert(datetime, '19000101')

                        Удачи
                        С уважением, Максаев Андрей.

                        Комментарий


                        • #13
                          Спасибо, попробую ...

                          Комментарий

                          Пользователи, просматривающие эту тему

                          Свернуть

                          Присутствует 1. Участников: 0, гостей: 1.

                          Обработка...
                          X