グラス片手にデータベース設計 会計システム編

会計システムの業務およびデータモデルの提案を行っている本。内容的に少し古い点もあるが、システム的な観点があるため、普通の簿記解説本とは違う点がよい。現在、会計システムを調査しているので、読むことになった。

グラス片手にデータベース設計 ~会計システム編 (DB Magazine Selection)

グラス片手にデータベース設計 ~会計システム編 (DB Magazine Selection)

以下はメモ。自分用なのでわかりにくいかも。すいません。

  • 仮受消費税勘定から仮払消費税勘定を引いた値が納付額の消費税となる。(ただし、別途調べると、実際は納付額について別の算式で計算されるらしく、雑益、雑損が発生する可能性がある。また、勘定科目としては「仮払消費税等」が正しい。これは、消費税に地方税が含まれているからである)
  • 貸借が1対1になるのを「単振」、そうでなく貸借のうち、少なくとも一方が2件以上存在する場合を「複振」という。
  • 仕入と売上の記載は、一般的な会計の本では仕入および売上勘定をつかう「三分法」が主流となっている。一方、仕入の段階で「商品」を使用し、売上の段階で「商品」の減少と「売上原価」を記載する方法を「売上原価対立法」、仕入は同じで売上の段階で「商品」の減少と「商品売買益」勘定を計上する方法を「分記法」という。もちろん、売上の仕訳を入れる段階で商品の原価を計算できる必要がある。コンピュータ会計の場合は自動計算が可能なので、「売上原価対立法」が基本らしい。(調査するとSAPは売上原価対立法らしい)
  • 集計科目とは、仕訳では使用しないが、BSやPL等で表示する際に使用する勘定科目である。この本では、「営業利益」なども集計科目になっている。IFRSなどを考慮して柔軟性を持たせているのだろうか?ただ、集計科目は階層構造になっているという指摘があり、かつ、示されたデータモデルから1つの親しかもてない階層構造となっている(いわゆる無閉路有向グラフではなく、純粋な木構造)ので、そういう意味での柔軟性はない。もちろん、BSやPLで複数の親を持っていたら、二重カウントになるので、話にならないけれども
  • BSやPL、試算表から総勘定元帳へ、元帳から仕訳帳への画面遷移を可能とする。元帳における「仕丁」欄には仕訳帳のページ数を記載するが、システムの場合には代わりに仕訳番号的なものを付与するのだろうか?いずれにせよ、ページを記載する意味はないと思われる
  • 「仮締」と「本締」の概念が必要。「仮締」は現場の入力、「本締」は経理の入力を許可する。例として、広告費の部門配賦は仮締めを行ってから仕訳を入れないと、広告費が確定できないからということらしい。ということは、ユーザで分けるべきであり、経理のみが使用するのであれば、不要という考え方もできる。
  • 仕訳の段階で「部門」「プロジェクト」「分野」をいれ、部門別のPLなどもつくることができるが、これは管理会計のための項目らしい。でも、今のお客さんの有価証券報告書には「セグメント」(製品群)別のPLが載っている。あれは管理会計なのだろうか?
  • 仕訳データを作成した後、その値で、勘定科目別に残高データを作成するらしい。もちろん、PL科目は繰り越ししないので、0円だが、BS科目は月別に洗い替えを行う。確かにあった方が便利だし、リアルタイムのBSやPLを見るとなると、ないと厳しいと思われる。ただし、整合性の確保が絶対の条件だが。
  • 補助科目を作成し、検索・集計ができるようにする。自由に決めることができる。木構造の構成になっているはずなので、補助科目さえ入れれば勘定科目は入れなくてもいいような気がするが、入力は分かれている。表示は分かれていた方がいいかもしれないが。
  • 階層構造のデータモデルの提案が書かれているが、正確には木構造のデータモデルが対象となっている。ここではある勘定科目を検索した際にその下位の深さに存在するすべての勘定科目を取得する際に、一般的なデータモデルだと複数回の検索が必要なため、処理が重い。よって、各勘定科目は自分の上位の勘定科目をすべて列としてもつと言う考え方もある。ただしこうすると、列数を固定化しなければいけない。そこで長大な可変長文字列を作って、句切り文字にチルダをいれることにより、自分の上位の階層を表現するとよいと述べている。確かに速度面ではいいのかもしれない。まあ、ただ、それであれば、普通に「勘定科目・レベル・親勘定科目」のテーブルを作ってしまえばいいように思うが、一発にこだわりたかったのだろう。
  • 「貸借区分」と「属性区分」(資産・負債など)がわかれているが、属性区分から導出できないか?
  • レイアウト構成画面という画面があり、各帳票について勘定科目を選択して、様々な帳票を作ることができる。ここではすべてが科目なので「資産の部」といったラベル+小計単位のくくりまで勘定科目となっている。これを「見出し科目」と呼んでいる。
  • 預かり金について補助科目ではなく、補助科目で分けてもかまわないという。しかし、この二つのやり方の違いにメリットデメリットはあるのだろうか?もちろん、継続性の観点から今までの仕訳のやり方と同じにしたいという理由は思いつくが、他に何かある?勘定科目自体は階層化できるため、ある勘定科目の子勘定科目になれば、それほど差はないように思える。
  • 「預り金」勘定は、社会保険料や税金の天引き分に使用される。消費税がかからない点に注意する。(ちなみに、「仮受金」は入金があったが用途が不明な場合に一時的に使用する。「前受金」は将来的に売上として計上する取引の手付として受け取った際に使用する。「前受収益」は役務の提供について先に対価を受けた場合に計上する際に使用する。)
  • 定期計上処理は金額を含め、一定の期間に仕訳を自動的に作成する。定型仕訳は仕訳パターンの登録
  • 通常の仕訳入力と決算仕訳入力は別の処理として行い、区別できること。また、期首への振替などは自動で行う
  • 先入先出法や移動平均法は過去日の取引を入力する前提だと、合わなくなるため、基本的には月末一括処理になると思われる。商品の仕入や販売を日次でしめられれば、日次で計算できる
  • 売上原価対立法における売上原価は前月の単価を使う仮の単価で計算する。ということは原価差異ができるということ。月末で洗い替えしてもいいと思うが
  • キャッシュフロー計算書は、営業キャッシュフローの小計の欄までが間接法と直接法の違いとなる。直接法では、相手勘定の特定が必要だが、複振の場合や、仮受金など未確定の勘定科目の場合は、作成できない場合がある。直接法は現預金の相手勘定で計算を行うためである。会計システムの中には強制的に対応するように仕訳を行うものもある。
  • 将来的な資金繰りの予定を計算するものとして「資金繰り予定表」がある。
  • 税法上、減価償却をしないと言う選択もできる。これを「任意償却」という。ただし、会計上は望ましくない。また、実際の償却期間よりも短く償却することもできるが、この場合は超過分が課税される。これを「有税償却」という。
  • 減価償却費は販管費になるものと製造原価になるものを区別するため、勘定科目を分けておく
  • 仕入にかかった運送費などは仕入に含めなければならないが、ここの取引と対応しない場合は按分する必要がある。これを諸掛按分という。
  • 外貨を使用した仕入の場合は、仕入の段階の基軸通貨レートと入金の段階の基軸通貨レートが異なる可能性がある。このときに発生するのが「為替差損益」である。ただ、インボイスはばらばらに届くかもしれないのでどうする?
  • 業務系のデータを取り込んで自動仕訳を行う場合、ワンクッション置いて、エラーなどを確認した上で登録する形をとることが多い。仮にダイレクトに入れてしまうと、取り消しがきかないかもしれないため
  • 自動仕訳は自動でエントリされるため、集計せずに登録してもよい。
  • 勘定科目の変換については、貸借を同時に設定するパターンも考えられるが、貸借をばらばらに設定したほうがより柔軟に設定が可能となる
  • 連結会計はグループ内の取引を相殺し、一つの企業とした場合の会計を行う。よって、BSだけでなく連結会社から購入した資産の明細および連結会社に対する債権債務、取引高の明細が必要となる。他社と持ち合いの株式の場合は、その割合に応じて資本をわける。これを「少数株主持ち分」としてあらわす。このとき、利益も分配する。
  • グループ内で売り上げていても、外部に売り上げたものとの差がある場合は、その差額分を「未実現利益」として控除する
  • 外貨の仕訳を入れられるようにすると、基軸通貨の入力が面倒になるという考えもあるので、国産のパッケージはたいてい外貨と邦貨の2種類の入力画面を持っている。そればかりか試算表も別になっている
  • 外貨の仕訳においてバランスすべきは基軸通貨ベースである
  • 手形システムがなくても、仕訳を行うだけでよいのであれば、運用はできる。ただし、手形毎の顛末を記録する必要があれば専用システムが必要となる。
  • 項目幅を決める場合にWだとひろくIだと狭くなるので、Aという中間の幅を使うとよいとあるが、ほんとにそれでいいのか?
  • 勘定科目で「消費税込み」「消費税抜き」を決められる?
  • インデックスを作ると100万件のデータでUPDATEは3倍、DELETEは14倍、制約もにた感じになるということ。しかし、100万件のデータの一括削除はいずれにせよ厳しい。
  • 月次残高について月をキーに入れる方式と、属性に月別の列を持たせるやり方がある。データが1/14になるというが、SQLが結構面倒なことにならないか?