Bankir.Ru
8 декабря, четверг 03:10

Объявление

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

Округление 101 формы.

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

  • Округление 101 формы.

    Господином Izumrud в разделе "Отчетность" ставился вопрос об округлении 101 формы в тыс. Меня тоже интересует эта тема, и, думаю, что лучше обсудить ее здесь.
    - Существует ли у Вас такая проблема;
    - Всегда ли корректо происходит округление в вашей АБС (какой АБС);
    - Сложен ли Ваш алгоритм округления, в чем его основная суть (слышал про какие-то матрицы). Может подскажете публикации.

    Привожу текст письма уважаемого Izumrud

    Привет всем! Я делаю в excele, шаблончик там у меня, много ручной работы, но если руку набить все очень даже легко получается. примерно вот так: копирую на лист данные из АБС (отчет в виде оборотной ведомости по счетам 2-го порядка в копейках, у нас формат *.sdf, но это не принципиально) по головной организации, на другом листе все данные в ячейках округляются, баланс конечно не идет, сравниваю с округленными исходящими за предыдущий месяц (чтобы расхождений не было)и, если надо, поправляю входящие остатки за отчетный, а затем в течение 15-20 минут подгоняю оборотами сначала горизонтальный контроль (входящий + - обороты = исходящий)и, когда все будет ОК , подгоняю вертикальный контроль - собственно баланс. ну это можно сделать только с поправлением "мусорных" счетов: 474, в крайнем случае 603, 408. ну вот и все. зачем пишу: работать-то все работает, но лень этой творческой работой заниматься . может есть любители писать макросы на VBA в excele (тоже клепаю, но времени не всегда хватает), которые изъявят желание помочь, так давайте родим плод коллективного разума, позволяющий не отвлекаться от собственно работы на всякие технологические ухищрения, снизим, так сказать, человеческий фактор до минимума при формировании такой важной формы как округленная оборотка. Жду конкретных предложений.


  • #2
    Если кратко ответить на вопрос (пусть даже я не представитель разработчиков каких-либо АБС), то суть моего ответа в следующем.
    Отдел автоматизации (или как там еще) решит Вашу проблему достаточно быстро, если Вы корректно сформулируете задачу не на каком-то специфическом программистком языке, а примерно так, как Вы описываете проблему здесь, только поподробнее.
    Я уверен, что отдел автоматизации Вашего банка может самостоятельно решить Вашу проблему по практически полной автоматизации этого процесса.
    Господин Izumrud практически полностью описал модель, которой надо следовать при описании Вашей проблемы Вашему отделу АСУ.
    Но тем не менее, вот кратко постановка задачи.

    Необходимо выпустить форму 101 в тысячах.
    Для этого надо
    1. взять исходящие, округленные в тысячи за предыдущий месяц;
    2. подставить их входящими в сооружаемую форму;
    3. Все остальное берется из текущих данных;
    4. провести округление в тысячи оборотов по дебету - кредиту и исходящих (текущие данные);
    5. Вычислить разницу;
    6. поправить оборотами до нужных округленных значений;
    7. используя строго определенный перечень счетов (407, 603 и т.п. - в каждом банке свое), откорректировать итоговые значения. Возможно, здесь нужно будет предоставить возможность бухгалтеру вмешаться;
    8. сохранить данные для проведения последующих округлений.
    Примерно так. Может, что-то забыл? Или не точно описал? Поправьте.

    Хотел бы заметить, что, в частности, эта задача была решена в том банке, где я ранее работал, достаточно быстро. Мы писали собственный модуль для нашей АБС. В том банке был RS-Bank. Кстати, RS-Bank имеет модуль "Отчеты ЦБ", где эта вещь делается. Да, но насколько я помню, можно 101-ю в тысячах получить в RS-Bank'е и в модуле "Отчеты банка". Там надо только выбрать правильные параметры для самого отчета и однажды, кажется в bank.ini, убрать комментарии в строках тех счетов, которыми будет выполняться корректировка.
    Другие системы: еще в одном знакомом мне банке сейчас используется Диасофт, там тоже все работает.
    Еще один имеет продукт от ЦФТ - мои знакомые сказали, что проблемы такой нет.

    Но здесь есть и более компетентные люди. Они точно могут ответить о возможностях конкретных систем.

    С уважением,
    Сергей

    Комментарий


    • #3
      И потом, чтобы узнать, что такое матрица, посмотрите в книжечке по высшей математике.
      Но вот конкретный Вам пример матрицы.
      С точки зрения математика, баланс банка - это есть не что иное, как матрица, а вычисление баланса банка - есть операция умножения двух матриц.

      С уважением,
      Сергей

      Комментарий


      • #4
        2MARK_S
        Пункты 1-3 вашего алгоритма мне очень понравились.
        А вот 4-6 можно изложить гораздо короче: "Не надо мучиться. Просто берете и округляете. И все OK!". Чувствуется RSтайловская закалка.

        2ALL!!!
        А вообще-то интересует не то, что где-то там у кого работало, или что кто-то где-то от кого-то слышал. Напишите просто и конкретно: "Работем на такой-то АБС. У нас всегда все хорошо округляется, или не всегда, и что Вы делаете тогда". Чего стесняться-то. А алгоритм можно и не выдавать. А если намекнете будем благодарны.

        -------------
        Всем спасибо. Надеюсь услышать ещё чьи-то мнения. Многим ведь еще интересно.

        Комментарий


        • #5
          Работаем на Бисквите
          Как правило, округляется.
          Если не округляетя (давно не было) - добавляем счета в настроечный параметр.
          Отсюда вывод - алгоритм очень схожий с вышеописанным.
          Чем больше связей, тем меньше степеней свободы.

          Комментарий


          • #6
            Работаем на "Гефесте" Програм-Банка. Все замечательно работает, но насчет алгоритма говорить не буду - все делали ПБ-шники, это с ними выяснять надо.

            Комментарий


            • #7
              2 sdan.
              Пояснение к вышесказанному.
              Я работал начальником отдела автоматизации в том другом банке.
              Мы решали эти задачи сначала в Excel, потому что сотрудник соответствующего отдела был достаточно продвинутый пользователь и написал соответствующую программку под VBA.
              Потом он ушел и ни о какой поддержке этой его программки больше речи не шло.
              Поэтому мы реализовали эту задачку на RSL прямо внутри RS-Bank'а.
              Вся процедура подготовки этих отчетов занимала несколько минут.
              То есть мы средствами RS-Bank'а решили эту проблему быстро и хорошо, но и стандартная процедура, имеющаяся в RS-Bank'е давала нормальный результат (101-я форма в тысячах).
              Причем пункты 4 и 5 автоматизированы, а вот по пункту 6 требовалось не существенное вмешательство бухгалтера (и это устранимо).
              Кстати, это лишь образец постановки задачи, чем то напоминающий реальную постановку. Но поскольку было это давно уже, года два назад, то всех деталей я не помню, а теперь мне это и не нужно, так как я больше не автоматизаторщик.
              Все остальное в Вашем сообщении - лирика. Она уже обсуждалась в других конференциях, все больше у автоматизаторщиков.

              С уважением,
              Сергей

              Комментарий


              • #8
                sdan, а какая у Вас-то АБС?

                Комментарий


                • #9
                  2 MARK_S
                  Вообще-то я округлять умею и алгоритм знаю. Просто хотел поболтать о самом алгоритме и о том, как обстоят дела с этим в других АБС. Суть алгоритма можно сформулировать одним предложением.
                  Работаю я на старом ПрограмБанке, но не очень давно. Там с этим есть проблемы. Поэтому и написал программку на FoxPro, уж как умею. Входящие остатки беру из основного .dbf, который формируется в программе ЦБ balance.exe(за предыдущий период исходящие). Еще беру там файл plan.dbf, из которого тяну характеристику счета(А/П). Ну а уж оборотку беру точную, которая формируется в опер дне. И усё. Секунды 4 идет нарезка текстовика точной оборотки и 1 секунду, максимум, само округление. Горизонтальная и вертикальная сходимость идет железно. Но правда пока, по собственной лени, не дописал один момент, чтобы итого исходящих моих была равна итого исходящих точных(если их округлить). Поэтому "итого" поднимаю или опускаю руками, заодно проверяю как работает алгоритм. На выходе программы получаю текстовик в формате загрузки в программу balance.exe.

                  Для того, чтобы рассказать алгоритм, пока не созрел. Программка немного заточена под нас, а для переделки ее в ширпотреб пока нет времени.

                  Раньше работал в Диасофте. Но этим алгоритмом тогда не интересовался, но по-моему, по сути он похож на Ваш. И с округлением там не все в порядке. У меня совсем другой (если я конечно Ваш правильно понял). Никакого перемножения матриц, боже упаси, я уж и забыл как это делается. Это я так, для того чтобы погонять ляпнул, просто от кого-то слышал нечто такое наукообразное по теме округления.

                  Комментарий


                  • #10
                    2 sdan.
                    1. Да не обижайся ты, я ведь и не обижал.
                    Вообще ты молодец. Только вот мы никогда не ориентировались на данные, забитые в ЦБ-шные программы. Все делали под RS. А потом уже готовые данные загоняли в ЦБ-шную программку (хоть какое-то описание структуры файла для закачки в этой программке ЦБ-шной существует).
                    2. Матрицы. К сожалению, в RSL нет прямых операторов, позволяющих производить операции над матрицами. Были бы - алгоритм выглядел бы более понятно и просто.
                    3. Окончательного алгоритма все-таки дать не смогу (объяснение в давности задачи, а также в том, что я уже не занимаюсь этими делами).
                    4. У тебя все получится. Дел осталось немного.
                    Да, дополнение.
                    Попробуй пойти от противного.
                    Возьми исходящие от предыдущего округления, поставь входящими в сооружаемый отчет.
                    Подставь обороты и исходящие, округленные по правилам математического округления. Поправь оборотами округленные исходящие по всем счетам, кроме мусорных.
                    По правилам же округли итоги.
                    Теперь, считая округленные итоги цифрой корректной и не изменяемой, считай, как надо поправить обороты по "мусорным" счетам пока не получится верных округленных значений в итогах.
                    В самом крайнем случае останется написать сопроводиловку, что ошибка по одному из счетов (не по итогам) на 1 вызвана ошибкой округления.
                    Задача решена.

                    С уважением,
                    Сергей

                    Комментарий


                    • #11
                      2 MARK_S & 2 ALL
                      Многим представителям со стороны АБС может быть не очень понятно, о какой такой программе balance.exe я говорю (не сочтите за наезд).
                      Объясню все по порядку, чтобы разговаривать на одном языке.
                      Есть программа ЦБ balance.exe, которая формирует файл месячной отчетности, его-то и сдают в ЦБ. Файл этот представляет собой хитровыделанный текстовик, с расширением .k31.
                      Последовательность действий такая

                      bal_ts.txt --> balance.exe --> xxxx0001.k31

                      где bal_ts.txt - это текстовый файл в формате загрузки (его-то и надо сформировать самому; наименование произвольное)
                      Формат его такой(только все в строчку):
                      NAME LENGTH(символов)
                      ------------------------
                      NБал. счета 5
                      Вх. остаток рубли 11
                      Вх. остаток валюта 11
                      Вх. остаток итого 11
                      Об. деб. рубли 11
                      Об. деб. валюта 11
                      Об. деб. итого 11
                      Об. кред рубли 11
                      Об. кред валюта 11
                      Об. кред итого 11
                      Исх. остаток рубли 11
                      Исх. остаток валюта 11
                      Исх. остаток итого 11

                      Приблизительно так (все уже в тыс. рублей):
                      47423.......3383......21391......24774.....250723 ............
                      47427
                      .....
                      (только без точек, это я их потом вставил, пробелы отъехали)

                      К чему это я, собственно? А, вспомнил:
                      - balance.exe очень умная программа, и проверяет соответствие входящих остатков, которые ты пытаешься ей подсунуть, исходящим остаткам за прошлый месяц, которые она хранит в файле xxxx000c.dbf.
                      За каждый месяц свой .dbf.
                      - Ну вот, а мысль то собственно в том, что (1) в рамках АБС не имеет смысла округлять самостоятельно входящие остатки, или брать их из базы самой АБС. Рисую:

                      за Ноябрь 2000
                      bal_ts.txt --> balance.exe --> xxxx000c.k31
                      ..................|
                      ..................-->xxxx000c.dbf Отсюда надо брать исходящие и подставлять тупо их входящими сюда в следующем месяце
                      ...............................|
                      -----------------------------
                      |
                      v за Декабрь 2000
                      bal_ts.txt --> balance.exe --> xxxx0001.k31
                      .................|
                      .................-->xxxx0001.dbf

                      А иначе часто будет возникать BAD BALANCE
                      - (2) В АБС надо предусматривать возможность загрузки (импорта) xxxx000c.dbf, для того, чтобы входящие на следующий месяц были правильные, как и в отчете, сданном в ЦБ.
                      - (3) А выдавать АБС должна файл аналогичный bal_ts.txt. И даже если АБС округляет всё отлично, то надо учитывать, что bal_ts.txt дальше практически всегда доправляется руками(по многим причинам) или уже в самой программе balance.exe чего-нибудь да подправляется.
                      - (4) И наплевать на всякую гибкость и настраиваемость АБС, такие моменты надо делать пожестче и попроще, а дальше уж сопровождать. Ну а уж кто не хочет сопровождаться, пусть пишет приблудки, вроде моей.
                      - (5) Ну а уж округляйте как хотите.

                      2 MARK_S
                      - Суть я твоего алгоритма понял, но я приверженец другого подхода, причем абсолютно другого.
                      - Так что, господа, тема остается пока открытой. К общему алгоритму приближаемся все ближе и ближе. А так взять все и рассказать - это не интересно.

                      Комментарий


                      • #12
                        2 sdan. Я тебе Mail отправил, прочти, пожалуйста.
                        По (1). Я никогда и не утверждал, что входящие при подготовке 101-й надо обязательно брать из опердня. Я их брал оттуда же, откуда их берешь и ты.
                        (2)Ни к чему подменять в реальной базе опердня входящие текущего месяца (или исходящие предыдущего), причем еще и округленные "левыми" цифрами из "кривой" отчетности. Ты прав, и я этого бы не допустил (будь я администратором ОДБ или АБС - у кого как называется).
                        (3) Настрой свою АБС на выгрузку в txt-шный формат, нужный тебе в дальнейшем (после проведения операций округления). Подправляется руками? Формализуй задачу. Определи, что подправляется и каким образом, отдай это дело программе округления, работающей до выгрузки в txt-формат.
                        (4) не комментирую. Потому что его существование означает неформализованность (не то же самое, что неформализуемость) задачи.
                        (5) Как хотите - нельзя. Ты же не можешь подгонять, например, счетами капитала или участием в других компаниях, или того хуже счетом кассы - список счетов, которыми корректируешь, ограничен.

                        С уважением,
                        Сергей

                        Комментарий


                        • #13
                          Если у вас Диас, то мб интересно пойти сюда.

                          Комментарий

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

                          Свернуть

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

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