固定资产不能清理

情况一:固定资产清理保存时提示核算项目出错

情况二:固定资产卡片清理时,提示:可能由于网络问题,卡片保存失败,请重新保存。错误代码:1000。

问题原因: 

情况一:核算项目横表t_ItemDetail 记录丢失,导致卡片中费用科目对应的核算项目找不到对应值,一般导入的卡片可能出现该情况。

情况二:是客户打了新会计准则补丁没有进行数据升级所致,或者是账套重复升级导致,系统在折旧政策表t_FADeprPolicy 预设了FID=1 的默认折旧政策,同时更新卡片的折旧政策为默认的折旧政策。由于重复升级,默认的折旧政策id 变为2,而卡片的折旧政策项未跟着更新,因此出错。

情况一如果t_ItemDetailv 表中的记录存在, 可参考下面过程补回

t_ItemDetail 丢失的记录

–根据t_ItemDetailV 补回t_ItemDetail 丢失的记录

DECLARE @FDetailID INT

DECLARE @FItemClassID INT

DECLARE @FItemID INT

DECLARE @FieldName VARCHAR(80)

–SET @FieldName=''

DECLARE Addt_ItemDetail SCROLL CURSOR FOR

SELECT DISTINCT * FROM t_ItemDetailv WHERE FDetailID NOT IN(SELECT

FDetailID FROM t_ItemDetail)

OPEN Addt_ItemDetail

FETCH Addt_ItemDetail INTO @FDetailID,@FItemClassID,@FItemID

WHILE @@Fetch_Status<>-1

BEGIN

SET @FieldName='F'+LTRIM(RTRIM(CAST(@FItemClassID AS

VARCHAR(80)))) –求出字段名

IF NOT EXISTS (SELECT * FROM t_ItemDetail WHERE

FDetailID=@FDetailID)

BEGIN

INSERT INTO t_ItemDetail (FDetailID) VALUES

(@FDetailID)

END

IF @FDetailID<>0

BEGIN

EXEC('UPDATE t_ItemDetail SET '+ @FieldName+ '=' +

@FItemID + 'WHERE FDetailID='+ @FDetailID)

UPDATE t_ItemDetail SET FDetailCount=FDetailCount+1

WHERE FDetailID=@FDetailID

END

FETCH NEXT FROM Addt_ItemDetail INTO

@FDetailID,@FItemClassID,@FItemID

END

CLOSE Addt_ItemDetail

DEALLOCATE Addt_ItemDetail

情况二可执行补丁安装目录下的KDdataupdate.exe 文件进行升级,或参考下面

修复:

UPDATE t_FaCard

SET FDeprPolicyID=isnull((select FID from t_FADeprPolicy where

FDefault=1),1)

WHERE FDeprPolicyID not in (select FID from t_FADeprPolicy)