Двойная бюстгалтерия* глазами программиста

Комментарии 6

  • 30.08.17 в 17:11

    +1

    Если уж мы программисты — надо упрощать модель, а не молиться на ее сложность. Достаточно сменить знак у всех пассивных счетов, и правила проводки упростятся до простого «дебит — всегда увеличивает, кредит — всегда уменьшает».

    • 3d3bb8c5e41f862f53662f246b39bdbf_small.j

      30.08.17 в 17:15

      0

      Я об этом написал в конце под заголовком «еще немного нормализуем».
      Вообще я когда начинал писать статью, то думал опустить стандартное описание дебета и кредита, но решил оставить для лучшего понимания бухгалтеров.
      • 30.08.17 в 17:27

        0

        А, вижу. Тогда у меня есть еще вопросы.


        Рассмотрим ситуацию, когда некоторому контрагенту был выплачен аванс, ставший долгом контрагента — активом. Далее по договору контрагентом были оказаны какие-то услуги, в результате чего уже мы оказались ему должны — пассив.


        Как такое отражать? Заводить два счета — или лучше вернуть тип счета «активно-пассивный» и разрешить его балансу «скакать» в обе стороны от нуля?

        • 3d3bb8c5e41f862f53662f246b39bdbf_small.j

          30.08.17 в 17:42

          0

          Я считаю что забалансовые счета и активно-пассивные счета это плохая архитектура, и вот почему:
          Бизнеслогику активно-пассивных счетов мы легко можем реализовать шаблоном Наблюдатель, подписанным на оба счета, и создающим служебный документ с проводкой осуществляющей взаимозачет.
          При этом если у нас будет активно-пассивный счет, то мы:
          1) вносим лишнюю сущность
          2) усложняем логику, в том числе логику контроля, логику отображения и т.п. Значительно усложняем, фактически в два раза усложняем
          3) у нас исчезает возможность бизнес-логики при которой возможно что одновременно и мы должны контрагенту и он нам, например когда система налогообложения требует избегать взаимозачетов, а только прямого расчета или сложные расчеты связанных компаний, когда фактические долги например в разных валютах и мы хотим согласовать курс, который может отличатся от балансового. Вариантов много где нужно отдельно иметь такие счета. Причем может оказаться что мы хотим такую логику ввести уже постфактум, когда уже несколько лет работали по простой. Такое изменение с активно-пассивными будет неудобно.
          4) движения по счетам смешивается, мы не можем вести отдельный учет по оборотам. С двумя счетами у нас есть два дебетовых оборота и два кредитовых, а с одним — только по одному, а значит и информации меньше.

          В общем не стоит смешивать сущности, не стоит. Не SOLIDно.

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

          • 30.08.17 в 17:58

            0

            А разве такой «наблюдатель» — не лишняя сущность?

            • 3d3bb8c5e41f862f53662f246b39bdbf_small.j

              30.08.17 в 18:15

              0

              Мой бухгалтер только что задала мне тот-же вопрос, только другими словами).
              Нет, не лишняя, а «отдельная».
              Если не выделять ее в отдельную сущность, то она никуда не девается, просто размазывается по множеству других сущностей.
              Где отображать наш счет? В правой части или в левой?
              С раздельными счетами просто, а тут нужно писать логику.
              Дополнительный тип счета отражаемый в базе, в логике проверки целостности и т.п.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

© Habrahabr.ru