使用 GnuCash 管理您的资金

作者:Robert Merkel

许多 Linux 用户和倡导者一再听到的一句话是“我保留 Windows 的唯一原因是为了 Quicken。” 自 1997 年以来,GnuCash 项目(前身为 xacc)一直致力于为 Linux 提供会计解决方案。 GnuCash 1.4 是当前的稳定版本,提供了一个简单、易用但功能强大的家庭会计系统。 开发工作继续快速进行,这要归功于志愿者以及 Gnumatic(http://www.gnumatic.com/)的员工,该公司成立的目的是支持 GnuCash 及相关项目的持续开发、营销和产品化。

获取和安装 GnuCash

GnuCash 是 GPL 软件,因此您可以从 GnuCash 网站(http://www.gnucash.org/)下载源代码以及 RPM。 包括 Mandrake、SuSE、Debian 和 Red Hat 在内的多个发行版也将 GnuCash 包含在其系统中。 虽然 GnuCash 需要 GNOME 库,但它可以与任何窗口管理器(包括 KDE)完美运行。 当前稳定版本是 1.4.9,但在您阅读本文时可能已更改。 1.5.x 版本是下一个开发系列。 这些版本适用于希望参与 GnuCash 未来发展方向的人员,而不是在生产环境中使用。

对于某些人来说,构建 GnuCash 可能有点问题,因为它需要安装几个不常见的构建工具。 除了正常工作的 GNOME 开发环境外,您还需要 Perl、guileSWIG(可从 http://www.swig.org/ 获取)和 g-wrap,这是另一个现在由 Gnumatic 维护并可从 Gnumatic 网站获取的工具。 对 SWIG 的依赖性可能会在下一个开发系列 (1.5.x) 中的某个时候消失。 GnuCash 使用标准的 GNU 构建环境,因此编译只需键入 ./configure; make; make install

虽然 GnuCash 的主要开发环境是 x86 上的 Linux,但它已在 Linux 支持的几乎所有架构以及 FreeBSD/x86 和 Solaris/x86 下成功编译和运行。 它还应该可以在 GNOME 已移植到的几乎任何平台上运行。

补救会计 101

虽然许多其他低端会计程序使用“现金账簿”单式记账方法进行会计核算,但 GnuCash 始终使用复式记账系统。 虽然稍微复杂一些,但复式记账是一种更准确的会计技术。 您会发现复式记账是组织财务的强大方法。 如果您已经熟悉复式记账,您可能无法想象以其他方式工作。 虽然从技术上讲可以使用 GnuCash 进行单式记账,但如果您不利用 GnuCash 的全部功能,那就太可惜了。

那么,复式记账在 GnuCash 中是如何工作的呢? 每次您花费、接收或转移资金都是“交易”。 当您开支票支付电话费时,这是一笔交易。 当您的工资进入您的帐户时——又是一笔交易。 当您去 ATM 取一些现金用于晚上外出时,这是一笔交易。 当您用现金买汉堡时……您猜对了,这是一笔交易(是否实际核算个人汉堡购买是另一个问题)。 在每种情况下,资金都会从一个地方转移到另一个地方,并且从一个地方取出的金额必须与放入另一个地方的金额完全相等。 资金永远不会凭空出现或消失。

同样,在 GnuCash 中,每笔交易都涉及资金从一个帐户转移到另一个帐户。 “嗯?两个帐户?” 我听到您在说。 “好吧,对于账单支付,其中一个帐户可能是支票帐户,但另一个帐户是什么?” 好问题。 答案是“帐户”可以远不止支票帐户或信用卡帐户。 例如,您可以为“电话费”创建一个“费用帐户”。 因此,支付电话费将涉及两个条目,一个在您的支票帐户中,另一个在“电话费”费用帐户中。 这些金额必须完全匹配,GnuCash 会立即检查这一点。 在这一点上,您可能会认为进行两个单独的条目很麻烦。 但是,GnuCash 允许您同时进行这两个条目。 有关复式记账的更多信息,请参阅 GnuCash 文档(在线地址:gnucash.org/docs/C/xacc-doubleentry.html)。

那么,让我们在 GnuCash 中创建一些帐户并记录一笔 100 美元的电话费付款。 启动 GnuCash。 如果您是从二进制包安装的,则可能在某处有一个菜单项,但如果未设置,只需在命令行提示符下键入 gnucash。 您将看到主窗口。 首先,我们需要创建一些帐户。 一种方法是单击工具栏中的“新建”按钮,这将弹出一个用于创建帐户的对话框。

我们将创建一个帐户来表示我们的支票帐户。 在对话框中,输入帐户的详细信息。 大多数字段都是不言自明的,但有一些字段可能需要一些解释。 “帐户代码”用于确定主窗口中的显示顺序,对帐户没有其他影响。 如果您不关心它们的显示顺序,您可以安全地将其留空。 “帐户类型”是事情开始变得有趣的地方。 GnuCash 有 11 种不同的帐户类型。 我们的支票帐户是一个“银行”帐户。 最后,您必须选择一个“父帐户”。 那是什么? 所有内容将在稍后揭晓,但现在只需选择“也是新的顶级帐户”。

接下来,我们将创建“电话费”费用帐户。 单击“新建”按钮,然后重复该过程。 新帐户的货币必须与银行帐户的货币相同(不同货币之间的转移是使用特殊的“货币”帐户执行的)。 确保将帐户类型设置为“费用”。 您还应该为此帐户选择“新的顶级帐户”。

如果您要支付电话费,您已经在您的银行帐户中存了一些钱。 根据复式记账的规则,这笔钱必须来自某个地方,对吗? 因此,我们创建一个特殊的“权益”帐户。 重复您用于创建先前帐户的过程,但将此帐户命名为“我的权益”并将其类型设置为“权益”。

现在,输入银行帐户的初始余额。 通过双击主窗口中的条目打开新创建的银行帐户的登记簿。 登记簿显示当前帐户的所有交易和运行余额。 在每个登记簿的底部,始终有一个空白行用于输入新交易。 列标题显示交易字段:日期、编号、描述、转账(交易涉及从哪个帐户转入/转出)、存款、取款和余额。

假设您当前的余额为 1,000.00 美元,我们想记录下来。 日期已设置为今天的日期,因此无需修改该字段。 使用 Tab 键或鼠标移动到下一个字段,即描述字段,我们在其中键入 期初余额。 接下来,我们选择要从中转账的帐户——特殊的“我的权益”帐户。 在存款字段中输入金额(1,000.00 美元),然后按 Enter 键记录交易。 将创建一个新的空白交易,并且余额将更改以记录当前帐户余额。

最后,输入电话费。 在每个字段中输入适当的信息:支票号码、交易描述以及交易中涉及的其他帐户。 交易已记录,已计算帐户的新余额,并记录新的空白交易。

创建帐户层次结构

这个简单的示例涵盖了使用 GnuCash 跟踪费用所需的大部分内容。 您可以继续创建费用、收入、银行和现金帐户以满足您的需求。 但是,如果您进行许多不同类型的交易并最终得到一堆帐户,那么将会有许多帐户用于非常相似类型的交易。 如果您可以以某种方式将这些帐户分组,那岂不是很方便吗? GnuCash 让您可以做到这一点。 实际上,GnuCash 是围绕帐户图表或帐户层次结构的概念设计的,其中帐户放置在树状结构中。

例如,将所有不同类型的公用事业账单(如电费、水费和电话费)组合在一起不是很有意义吗? GnuCash 可以做到这一点。 首先,创建一个通用的公用事业费用帐户,就像您创建电话费费用帐户一样。 接下来,创建一个电费费用帐户,但这次在对话框的“父帐户”字段中,选择“公用事业”而不是“新的顶级帐户”。 重复该过程以在“公用事业”帐户下创建一个水费费用帐户。

现在让我们添加一个电话费帐户……等等,我们已经有一个了。 我们现在该怎么办? 我们删除该帐户,创建一个新帐户并重新输入所有这些交易吗? 不,我们可以移动“电话费”帐户,使其成为“公用事业”帐户的子帐户。 在主窗口中,单击“电话费”帐户,然后单击“编辑”工具栏按钮或右键单击突出显示的主窗口条目,然后选择“编辑帐户”。 无论哪种方式,您都会调出“编辑帐户”对话框,您可以在其中更改所选帐户的任何属性。 将父帐户更改为“公用事业”,然后单击“确定”。 就这样!

从 Quicken 导入

到目前为止,我们假设我们以前从未使用过会计软件。 对于许多人来说,情况并非如此,Quicken 的 QIF 格式可能是人们从其系统导出数据的最常见方式。 Microsoft Money 也可以导出 QIF。 查看您特定系统的文档,以了解您的软件包是否可以导出 QIF。 遗憾的是,Quicken 的 QIF 文件有一些非常有趣的“功能”和设计决策(包括根据您的位置以不同的方式记录日期),因此将您的数据导入 GnuCash 需要一些手动干预。

GnuCash 的在线帮助系统(可从帮助菜单访问)详细介绍了导入过程。 事实上,在线帮助系统是 GnuCash 所有功能的综合指南,并提供了相当多的会计背景知识,而不仅仅是 GnuCash 操作的详细信息。 要使用在线帮助,只需从主窗口中选择“帮助”即可。 许多对话框也有可用的帮助按钮。

在任何情况下,让我们假设您已导出包含所有帐户的 QIF 文件,您想将其导入 GnuCash。 从 GnuCash 主窗口中,转到“文件”菜单并选择“导入 QIF”,这将调出导入对话框。 首先,选择您要导入的 QIF 文件,然后选择此 QIF 文件的默认货币。 接下来,为默认帐户命名,并指定此 QIF 记录交易的货币。 然后,单击“加载文件”。 如果您有多个 QIF 文件要一次导入,请重复该过程。

然后,QIF 导入器检查 QIF 文件,创建一个帐户结构,该结构将原始 QIF 类别和帐户与 GnuCash 帐户匹配,并检查是否有重复交易。 这是一个相当复杂的过程,因此如果需要一段时间并且 GnuCash 不响应用户输入,请不要担心。 它还会猜测每个类别的适当帐户类型。 虽然 QIF 导入器通常会正确猜测,但最好检查一下。 您还可以添加描述并更改帐户的父级。 如果您想稍后执行此操作,可以从主窗口执行。 无论如何,当您检查完所有内容后,只需单击“确定”,导入将完成!

您还可以将 QIF 导入到现有的 GnuCash 文件中。 使用与上述相同的过程,但这次您可能必须使用 QIF 导入器的“帐户”和“类别”选项卡来告诉 GnuCash 将各种交易类别放置在您的哪个现有帐户中。 如今,许多银行都能够提供 QIF 文件,这些文件代表一段时间内帐户中的所有交易。 您可以使用 QIF 导入器将这些交易自动导入到系统中。

对账

GnuCash 还可以帮助您将记录与银行对账单进行对账。 当您收到银行对账单时,只需选择该帐户,然后单击鼠标右键并选择“对账”。 告诉 GnuCash 对账单上的期末余额,然后将显示对账窗口(参见图 1)。

Managing Your Money with GnuCash

图 1. “对账”窗口自动化了将您的记录与银行记录对账的过程。

然后,您应该仔细阅读您的银行对账单,并将未清算的交易与对账单上的交易进行核对。 如果它们匹配(并且金额正确),请单击该交易以清算它。 当该过程完成时,窗口底部的差异字段应为 0.00 美元。 如果不是,则您的记录与银行记录之间存在差异。 要么您遗漏了一笔交易(您是否检查过银行的手续费和政府收费?),要么金额错误,要么银行犯了一个错误(可能,但不太可能)。

股票和其他投资

GnuCash 具有广泛的功能,可用于跟踪股票和共同基金的投资。 当您购买新股票或开设共同基金时,您应该像银行帐户一样开设股票或共同基金帐户。 当您开设帐户时,请确保在“证券”字段中输入正确的股票代码,并选择报价来源。

虽然是自动化的,但价格更新是在 GnuCash 外部使用 gnc-prices Perl 脚本完成的。 当脚本运行时,所有可用价格都会更新。

记录股票买卖是使用股票帐户登记簿执行的,其工作方式与其他登记簿相同,只是您应该输入价格和股票/单位数量,而不是仅输入一个值。

什么? 您想分析您的股票表现吗? 为此,您需要……

报告

GnuCash 具有一些非常有用的报告功能,您可以直接查看或导出为 HTML 以进行永久存储或打印。 当前 CVS 通过 gnome-print 提供直接打印支持,但这尚未进入发布版本。

最基本的报告之一是“资产负债表”。 此报告总结了您的资产和负债,从而显示您的净资产。 要显示报告,只需从报告菜单中选择“资产负债表”。 将打开一个报告窗口并显示报告。 默认情况下,它显示截至此时的资产负债表,但这是可调整的。 单击“参数”按钮,这将弹出一个对话框,您可以在其中更改报告的选项。

还可以获得您的股票投资组合的概览,以及帐户余额跟踪器,这是一个非常有用的报告,用于跟踪特定股票或共同基金的增长。 如果您安装了 gnuplot,此报告还支持绘图。 最后,交易报告列出了满足一组条件的所有交易。 此灵活的报告通常用于提取其他报告中不可用的特定信息(参见图 2)。

Managing Your Money with GnuCash

图 2. “交易”报告可用于以各种方式显示交易和计算交易小计。

如果当前的报告不能满足您的需求,您可以编写自己的报告。 “hello world”报告是 GnuCash 作者的试验台,可作为希望编写自定义报告的人员的基础。

未来计划

虽然 GnuCash 现在稳定且有用,但 Gnumatic 和 GnuCash 社区的其他成员对未来有远大的目标。 目前,开发 CVS 树已具有多项新功能,并且计划推出更多功能。

即将推出的 2.0 版本正在紧锣密鼓地开发中,并且计划在 2001 年第一季度发布。 2.0 版本将包含的一些功能包括

  • 一种新的、基于 XML 的文件格式,它将更加紧凑和通用。

  • 可打印的报告(由 gnome-print 和 gtkhtml 小部件提供)。

  • 通过 GUPPI 获得更好的图形功能(有望被广泛采用为标准的 Gnome 图形基础设施)。 GUPPI 的开发得到了 Gnumatic 的支持。

  • 大大提高的报告灵活性和可定制性。

  • 大大改进的股票市场报告。

计划在长期内进一步改进 GnuCash 的个人会计能力。 其中一些包括

  • 改进在线股票报价收集和货币报价。

  • 与在线银行的接口,包括 OFX 和其他标准。

  • 与 Palm PDA 的接口。

  • guile API 的完整文档,使编写扩展程序变得容易。

虽然 GnuCash 当前的重点是个人会计,但我们在邮件列表中收到的大量关于企业会计功能的需求并未被忽视。 GnuCash 将构成一个功能齐全的多用户会计软件包的基础,该软件包具有数据库引擎; CORBA 绑定; 并支持工资单、库存、发票和大型企业从会计系统要求的其他功能。 Gnumatic 将走在前列,提供其服务来为特定客户、行业和国家/地区定制和支持 GnuCash。

Managing Your Money with GnuCash
Robert Merkel 开始破解 GnuCash,因为他厌倦了支持他父亲的 Windows 电脑。 Robert 现在是一名全职 GnuCash 开发人员,也是 Gnumatic, Inc. 的员工。
加载 Disqus 评论