客户是一台资集团企业,主生产计算机周边产品及网络硬件,金蝶2000的老用户。目前,其ERP 已使用 Oracle J.D. Edwards,为适合“国情”需要(呵呵),财务还是使用金蝶,年前,已由原来的金蝶2000升级到 K3 基础版,凭证先由 JDE 生成的金蝶标准格式凭证,然后再导入金蝶。
上星期四,维护的其下一家全资子公司。
目标:升级账套,由原 KIS ACCESS 7.5 账套升级为 K3 基础版账套
问题:由于金蝶 KIS/2000系列产品,客户、供应商资料设置,是并在一起的,即“往来单位”,并没有分设,客户为操作方便,自定义了“客户”、“供应商”两个核算项目,升级到K3之后,发现其为“客户_KIS7.5自定义”、“供应商_KIS7.5自定义”,与原来编写的凭JDE 交换工具相冲突,应客户要求,调整为系统默认项目。
第一步操作:升级账套
金蝶目前并没有KIS→K3基础版的工具,V10.4的那个都没有成型,基础版肯定不会有哪,估计以后也不会有了。
由于通过 K3 8.X、9.X 的操作太麻烦,我的操作方法是:在K3基础版中建一账套,然后在KIS专业版中恢复升级,升级过程中会有如下错误提示:
--------------------------------------
[2007-11-22 17:48:00]执行基础数据升级SQL文件
C:\WINDOWS\system32\KISCOM\SQLSRV\KIS101_K3BaseData.SQL:列名 'FAccessUUID' 无效。
[2007-11-22 17:48:42]执行总账数据升级SQL文件
C:\WINDOWS\system32\KISCOM\SQLSRV\KIS201_K3GL.SQL:对象名 't_CurrencyRate' 无效。
[2007-11-22 17:49:21]执行固定资产数据升级升级SQL文件
C:\WINDOWS\system32\KISCOM\SQLSRV\KIS202_K3FA.SQL:列名 'fk3acctid' 无效。
[2007-11-22 17:49:23]执行出纳管理数据升级SQL文件
C:\WINDOWS\system32\KISCOM\SQLSRV\KIS203_K3Cash.SQL:插入错误: 列名或所提供值的数目与表定义不匹配。
[2007-11-22 17:49:23]执行物流数据升级SQL文件
C:\WINDOWS\system32\KISCOM\SQLSRV\KIS301_K3Industry.SQL:列名 'FAuxPriceDiscount' 无效。
--------------------------------------
可以根据上述错误提示,在基础版账套中先补充相应的字段、记录,然后再升级处理。
第二步,转换自定义核算项目为系统客户供应商项目
以客户核算为例
1、修改 t_Account,将核算项目的定义为“客户_KIS7.5自定义”科目修改为“客户核算”
UPDATE t_Account SET FDetailID=(SELECT FDetailID FROM t_ItemDetailV WHERE FItemClassID=1 AND FItemID=-1 )
WHERE FDetailID=(SELECT FDetailID FROM t_ItemDetailV WHERE FItemClassID=3000 AND FItemID=-1 )
GO
2、将“客户_KIS7.5自定义”核算项目资料,过继到客户资料中,并修改其在 t_item 的项目大类ID
INSERT INTO t_Organization (FItemID,FStatus,FDeleted,FSaleMode,FName,FNumber,FParentID)
SELECT FItemID,1072,0,1057,FName,FNumber,0
FROM t_item WHERE FItemClassID=3000
UPDATE t_item SET FItemClassID=1 WHERE FItemClassID=3000
GO
3、处理核算项目组合横表(客户)
UPDATE t_ItemDetail SET F1=F3000 WHERE F3000 NOT IN (0,-1)
UPDATE t_ItemDetail SET F3000=0 WHERE F3000 NOT IN (0,-1)
DELETE FROM t_ItemDetail WHERE F3000=-1
SELECT * FROM t_ItemDetail Where F3000<>0
GO
4、整理核算项目组合纵表
EXEC Sp_CleanItemDetailV
GO
5、最后清理,删除自定义核算项目资料
DROP TABLE t_Item_3000
DELETE FROM t_ItemClass WHERE FItemClassID=3000
UPDATE t_identity SET FNext=3000 WHERE FName='t_ItemClass'
GO
本方法在专业版中同样适用。