用友T6凭证导入实操指南:带辅助核算的字段映射与数据转换
发布时间:2026/10/22 13:17:37 锦皓数字建站

简介本资源是一份面向企业财务信息化人员、用友T6系统实施顾问及ERP二次开发工程师的实操型技术指南聚焦解决多源电子凭证批量导入难题尤其适用于含供应商往来等辅助核算的复杂凭证场景。文档完整覆盖从基础数据准备如供应商编码01001、应付账款科目挂接辅助核算、外部数据源配置支持Excel/SQL/Oracle等、字段映射与数据转换表头表体级对应设置到SQL脚本更新、凭证接口.exe执行及校验导入的全流程突出跨系统对接中的关键适配逻辑。资源为单个PDF文件大小999KB内容结构清晰含10余张操作界面图示图1-1至图9.2及字段说明便于按图索骥落地实践。目前已有71人学习下载适合需快速掌握T6凭证接口原理、规避导入错误、提升财务数据迁移效率的中高级用户。1. 用友T6凭证导入工具带辅助核算字段映射的真实落地场景不是Excel粘贴那么简单你手头有一批Excel做的记账凭证供应商编码是“S001”而用友T6里供应商档案编号是“01001”你导进去发现辅助核算栏空着凭证保存失败系统报错“辅助核算未指定”——这不是数据格式不对是凭证导入工具没走通“基础档案→科目设置→字段映射→数据转换”这四步闭环。这份PDF讲的不是“怎么点按钮”而是把一个真实企业财务人员每天面对的痛点拆解成可执行、可验证、可回溯的操作链它覆盖了从用友T6后台建供应商、挂辅助核算、配置外部数据源Excel/SQL/Oracle、定义字段映射关系、编写字段转换规则比如把S001→01001到最后在T6界面看到自动带出“北京智友信诚科技有限公司”的全过程。它面向的是已经部署好T6但缺乏接口能力的中小财务团队或是正在做第三方系统与T6对接的实施工程师。如果你还在用复制粘贴填凭证、靠人工核对辅助项、或每次换数据源就重配一遍映射表那这份文档就是你跳过试错周期、直接复用成熟路径的实操底稿。2. 基础准备T6端必须完成的三类配置缺一不可凭证导入不是单向灌数据而是让外部数据“认得清”T6的语义体系。T6端配置不到位后面所有映射和转换都是空中楼阁。这里说的不是“打开系统随便点点”而是三个有严格先后依赖的硬性前置动作。2.1 新增供应商档案并确保编码唯一性供应商必须在T6【基础设置】→【往来单位】→【供应商档案】中预先建立且编码必须与外部数据源中使用的编码逻辑一致。PDF中示例用“01001”作为北京智友信诚科技有限公司的编码这个编码会直接参与后续字段映射和转换。注意不能用中文名或简称替代编码因为导入工具底层读取的是编码字段如vendorcode而非名称字段vendorname。如果外部数据里写的是“智友信诚”而T6里只建了“01001”工具无法自动关联。提示建议在T6中启用“编码必须录入”校验并关闭“名称可重复”选项。某次现场实施中客户因允许同名不同码的供应商存在导致一批凭证导入后辅助核算指向错误供应商追溯时发现是名称模糊匹配触发了默认首条记录。2.2 在会计科目中挂接供应商往来辅助核算这是带辅助核算凭证能成功导入的核心前提。进入【基础设置】→【财务】→【会计科目】双击“应付账款”科目编码2121在弹出窗口中勾选“辅助核算”→“供应商往来”。此时该科目才具备承载供应商编码的能力。若未勾选即使你在导入工具里映射了供应商字段T6在制单时也不会解析该字段最终生成的凭证不带辅助信息系统校验失败。关键细节辅助核算类型必须与业务实质匹配。“供应商往来”对应应付类“客户往来”对应应收类“部门”“职员”“项目”等同理。PDF图2明确展示了这一操作但容易被忽略的是——挂接后需点击“确定”保存且该设置对已存在的凭证无效仅对新导入/新填制凭证生效。2.3 验证T6数据库表结构与凭证导入工具兼容凭证导入工具凭证接口.exe本质是通过ODBC或直连方式读写T6后台SQL Server数据库。它依赖特定的数据表结构例如gl_accsum科目字典表gl_vouch凭证主表gl_vouchsub凭证子表存储辅助核算字段bd_vendor供应商档案表PDF图5提到“服务器环境执行sqlup”指的就是运行配套的SQL脚本更新数据库视图或存储过程确保gl_vouchsub中存在vendorcode字段且类型为varchar(30)。若客户自行升级过T6补丁或修改过表结构sqlup脚本可能报错。此时需比对脚本中的ALTER TABLE gl_vouchsub ADD vendorcode varchar(30)语句与实际表结构是否冲突。常见做法是先备份gl_vouchsub表再执行sqlup.sql若报错“列名已存在”说明字段已存在可跳过若报错“对象名无效”则需确认数据库名是否为UFDATA_001_2023T6默认账套库名。3. 外部数据源接入从Excel到Oracle连接参数与权限要点凭证导入工具支持Excel、Access、SQL Server、Oracle、MySQL五类数据源但每种连接方式的稳定性、性能和权限要求差异极大。PDF图8虽只列出图标但实际配置中90%的失败源于连接字符串写错或账号无读取权限。3.1 Excel数据源路径、Sheet名、标题行必须显式声明Excel是最常用也最容易翻车的数据源。工具不支持.xlsx格式仅支持.xls且要求第一行为字段标题第二行起为数据。PDF图3中外部数据源设置界面需填写数据源类型Microsoft Jet 4.0 OLE DB Provider连接字符串ProviderMicrosoft.Jet.OLEDB.4.0;Data SourceC:\voucher\source.xls;Extended PropertiesExcel 8.0;HDRYES;表名[Sheet1$]注意末尾$符号和方括号关键参数说明HDRYES表示首行是列名若为NO工具会把第一行当数据导致字段错位Sheet1$中的$不可省略否则报错“找不到表”路径中不能含中文或空格建议用短路径如C:\vch\src.xls。血泪经验某次客户Excel文件用WPS另存为.xls导致OLE DB驱动读取时乱码所有供应商编码变成问号。解决方法是用Excel 2003原生保存或改用CSVSQL Server导入中转。3.2 SQL Server/Oracle数据源账号权限必须包含SELECT VIEW DEFINITION当外部数据来自ERP或进销存系统时需直连其数据库。以SQL Server为例连接字符串为ProviderSQLOLEDB;Data Source192.168.1.100;Initial CatalogERPDB;User IDimport_user;Password123456;其中账号import_user必须拥有对目标表如erp_voucher的SELECT权限对数据库的VIEW DEFINITION权限工具需读取表结构生成字段列表。Oracle连接更复杂需安装Oracle Client并配置tnsnames.ora。连接字符串示例ProviderOraOLEDB.Oracle;Data SourceORCL;User IDerp_read;Passwordpass123;注意OraOLEDB.Oracle驱动需单独安装Windows自带的MSDAORA已淘汰强行使用会导致“未找到提供程序”错误。提示测试连接前先用SQL Server Management Studio或PL/SQL Developer登录同一账号执行SELECT TOP 1 * FROM erp_voucher确认能查出数据且字段名不含特殊字符如空格、括号否则工具加载字段列表时会中断。3.3 数据源校验必须通过“测试连接”且预览首10行PDF图8中“测试连接”按钮不是摆设。点击后工具会尝试建立连接并读取元数据。若失败错误提示通常为“拒绝访问” → 账号密码错误或网络不通“初始化提供程序失败” → 驱动未安装如Excel缺少Jet驱动Oracle缺少OraOLEDB“对象名无效” → 表名写错或用户无权限。通过连接后务必点击“预览”按钮查看前10行数据。重点检查日期字段是否为2023-01-01格式非2023/01/01或01-Jan-23金额字段是否为数字非带千分位逗号的文本如1,234.56供应商编码是否为纯文本无前后空格无不可见字符。若预览显示#Error或空白说明数据源内容本身有问题需返回源头清洗而非在导入工具里硬调。4. 字段映射与转换表头/表体分离配置转换规则必须可逆PDF中图9.1和图9.2将字段配置分为“表头”和“表体”这是理解凭证导入逻辑的关键分水岭。表头对应凭证级信息凭证字、凭证号、日期、摘要表体对应分录级信息科目、借贷方、金额、辅助核算。二者映射策略完全不同。4.1 表头字段固定映射为主仅摘要支持动态拼接PDF图9.1注明“表头设置基本上不用修改”因其字段与T6标准一致外部字段名T6对应字段是否必填说明vouchtypecVouchType是凭证字如“记”“银”“现”vouchnocVouchNo否凭证号留空则由T6自动生成vouchdatedDate是日期格式必须为yyyy-mm-ddsummarycExplanation是摘要支持用拼接如付供应商名货款重点summary字段允许表达式但仅限字符串拼接不支持函数如YEAR()。若外部数据无摘要可在此处写死系统导入凭证避免为空报错。4.2 表体字段科目辅助核算必须成对映射表体是核心难点。PDF图9.2中必须将外部数据的每一列精确绑定到T6的凭证子表字段。关键映射对包括accountcode→cAccountCode科目编码如2121debit→nDebit借方金额credit→nCredit贷方金额vendorcode→cAuxCode辅助核算编码如01001玄机在于cAuxCode字段本身不携带辅助类型信息工具需根据cAccountCode值自动判断应填入哪个辅助字段。例如若cAccountCode 2121应付账款则cAuxCode值写入cVenCode供应商编码若cAccountCode 1122应收账款则cAuxCode值写入cCusCode客户编码。因此外部数据中vendorcode列只对应付/应收类科目有效对管理费用等无辅助核算的科目该列必须为空或填NULL否则导入时会报“辅助核算类型不匹配”。4.3 数据转换用“转换标识”实现S001→01001的精准替换PDF第二部分图7.3和图7.4演示了字段转换功能。这不是简单的查找替换而是基于规则引擎的映射。操作流程如下在“数据对应”→“表体设置”中选中vendorcode字段勾选“转换标识”输入标识名如VEN_MAP进入“数据转换”界面点击“增加”填写转换标识VEN_MAP必须与上步一致用友字段cAuxCode外部字段vendorcode转换规则选择“映射表”点击“编辑映射表”在映射表中添加行外部值用友值S00101001S00201002规则生效逻辑当外部数据vendorcodeS001时工具自动将其替换为01001后写入cAuxCode。映射表必须保存为UTF-8编码的TXT文件若用记事本另存为ANSI中文会乱码导致匹配失败。注意转换规则仅作用于当前字段。若还需将deptname部门名称转为deptcode部门编码需新建另一个转换标识DEPT_MAP不可复用VEN_MAP。5. 避坑指南90%的导入失败都发生在这五个环节别跳过这章。我见过太多人卡在最后一步反复重装工具、重配数据库结果发现只是Excel里多了一个空格。以下是真实踩过的坑按现象→原因→解决三步法整理每一条都附带验证命令。5.1 现象点击“制单处理”后弹出T6界面但辅助核算栏为空保存时报错“辅助核算未指定”原因T6中应付账款科目未挂“供应商往来”辅助核算或挂了但未保存。解决重新进入【基础设置】→【会计科目】双击2121科目确认“辅助核算”页签中勾选了“供应商往来”且右下角显示“已修改”点击“确定”保存不要点“取消”重启T6客户端再试导入。5.2 现象导入工具“刷新数据”后表体中vendorcode列显示#Error无法全选原因外部数据源中vendorcode列存在空值、空格或非ASCII字符如全角空格、软回车。解决用Notepad打开Excel对应的CSV文件或导出为CSV用“显示所有字符”功能查看查找U00A0不间断空格或U200B零宽空格批量替换为空在Excel中用TRIM(CLEAN(A2))清洗vendorcode列再另存为.xls重新配置数据源并预览。5.3 现象执行sqlup.sql时提示“消息 208级别 16状态 1第 1 行对象名 gl_vouchsub 无效”原因sqlup.sql脚本中写的数据库名与当前T6账套库名不一致。T6默认库名为UFDATA_001_2023但客户可能建了UFDATA_002_2023或UFDATA_MYCOMPANY。解决打开SQL Server Management Studio连接T6数据库实例执行SELECT name FROM sys.databases WHERE name LIKE UFDATA%确认实际库名用记事本打开sqlup.sql将所有UFDATA_001_2023替换为实际库名再执行修改后的脚本。5.4 现象Oracle数据源测试连接成功但“预览”时提示“ORA-00942: 表或视图不存在”原因连接账号erp_read对目标表只有SELECT权限但工具需SELECT ANY TABLE或SELECT_CATALOG_ROLE才能读取数据字典。解决用DBA账号登录Oracle执行GRANT SELECT_CATALOG_ROLE TO erp_read; -- 或更精确地授权 GRANT SELECT ON ERP_OWNER.erp_voucher TO erp_read;重启凭证导入工具重新测试连接。5.5 现象转换规则配置正确但导入后cAuxCode仍为原始值如S001未变01001原因映射表文件编码不是UTF-8或映射表中“外部值”列有隐藏空格。解决用Notepad打开映射表通常是.txt菜单栏“编码”→“转为UTF-8无BOM格式”选中全部内容按CtrlH打开替换查找\s$正则匹配行尾空格替换为空保存后在工具中删除原转换规则重新“增加”并关联新映射表。6. 导入后验证与异常回滚用SQL语句快速定位问题凭证导入不是点击“保存”就结束而是进入验证闭环。PDF图13和图14只展示成功案例但生产环境中必须建立快速验证机制。我一般会用三类SQL语句组合检查5分钟内定位95%的问题。6.1 快速核对查最新10笔导入凭证的辅助核算是否完整在T6数据库中执行替换UFDATA_001_2023为你的账套库名USE UFDATA_001_2023; SELECT v.cVouchNo AS 凭证号, v.cVouchType AS 凭证字, CONVERT(VARCHAR(10), v.dDate, 120) AS 日期, s.cAccountCode AS 科目编码, a.cVenCode AS 供应商编码, ISNULL(a.cVenCode, 空) AS 辅助核算状态 FROM gl_vouch v INNER JOIN gl_vouchsub s ON v.iautoid s.iautoid LEFT JOIN gl_vouchaux a ON s.iautoid a.iautoid AND s.irowno a.irowno WHERE v.cVouchType 记 -- 限定凭证字 ORDER BY v.dDate DESC, v.cVouchNo DESC OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;此语句返回最近10笔“记”字凭证重点看辅助核算状态列。若为空说明该分录未带出供应商需检查gl_vouchaux表中是否有对应记录。6.2 定位失败凭证查gl_vouch中cMaker为‘接口导入’但cChecker为空的记录正常T6凭证由制单人填完后需审核人审核。但导入凭证常跳过审核直接由工具写入cMaker接口导入。若导入失败这些凭证可能停留在未审核状态SELECT cVouchNo, cVouchType, dDate, cExplanation, 未审核 AS 状态 FROM gl_vouch WHERE cMaker 接口导入 AND ISNULL(cChecker, ) ORDER BY dDate DESC;若结果集非空说明导入过程被中断如网络断开、T6服务停止需手动删除这些凭证或联系实施人员清理。6.3 回滚操作安全删除错误凭证的三步法切勿直接DELETE FROM gl_vouchT6凭证关联多张子表硬删会导致数据不一致。正确回滚步骤停用T6服务在服务器上停止UFIDA T6 Service备份相关表SELECT * INTO gl_vouch_bak_20240520 FROM gl_vouch WHERE cMaker 接口导入; SELECT * INTO gl_vouchsub_bak_20240520 FROM gl_vouchsub WHERE iautoid IN (SELECT iautoid FROM gl_vouch WHERE cMaker 接口导入); SELECT * INTO gl_vouchaux_bak_20240520 FROM gl_vouchaux WHERE iautoid IN (SELECT iautoid FROM gl_vouch WHERE cMaker 接口导入);执行删除确保备份成功后再运行DELETE FROM gl_vouchaux WHERE iautoid IN (SELECT iautoid FROM gl_vouch WHERE cMaker 接口导入); DELETE FROM gl_vouchsub WHERE iautoid IN (SELECT iautoid FROM gl_vouch WHERE cMaker 接口导入); DELETE FROM gl_vouch WHERE cMaker 接口导入;从那以后我每次执行导入前都强制走一遍SELECT COUNT(*) FROM gl_vouch WHERE cMaker 接口导入确认历史残留为0导入后立即跑6.1节的核对SQL截图发给客户确认所有SQL操作均在测试库验证通过再上生产。这套动作看似繁琐但比花半天排查一笔错账节省至少3倍时间。希望帮到你。本文还有配套的精品资源点击获取
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。