如何在Tally中获取已创建公司列表?调用GetListOfCompanies报错如何解决?

报错原因分析
- Tally服务未正常启动或未开启API权限:Tally软件未运行,或运行后没有开启TDL API访问权限,默认Tally API端口为9000,需要提前在Tally配置页中开启本地程序访问权限
- Tally.dll版本不兼容:你引用的Tally.dll版本和本地安装的Tally软件版本不匹配,比如dll适配Tally ERP 9,而本地安装的是Tally Prime,版本差异会导致内置方法调用失败
- 运行权限不足:当前程序的运行账户没有调用Tally.dll的权限,或无法访问Tally进程,也会触发调用异常
- 方法调用参数缺失:部分版本的
GetListOfCompanies()方法需要传入Tally实例端口、访问凭证等必填参数,直接无参调用会抛出异常
替代实现方案(无需依赖Tally.dll)
可以直接调用Tally原生的本地HTTP API获取公司列表,兼容性更强,不受dll版本限制,操作步骤如下:
- 提前配置Tally:打开Tally后进入「设置」-「高级配置」-「TDL/API访问」,开启API访问功能,端口保持默认9000,允许本地请求访问
- 向Tally本地API地址
http://localhost:9000发送POST请求,请求体为如下XML格式的查询语句:
<ENVELOPE> <HEADER> <VERSION>1</VERSION> <TALLYREQUEST>Export</TALLYREQUEST> <TYPE>Data</TYPE> <ID>List of Companies</ID> </HEADER> <BODY> <DESC> <STATICVARIABLES> <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> </STATICVARIABLES> </DESC> </BODY> </ENVELOPE>
- 解析返回的XML报文,即可直接获取所有已创建的公司名称、存储路径、运行状态等信息。
内容的提问来源于stack exchange,提问作者Amar
相关产品推荐
相关产品推荐

