情况一:固定资产清理保存时提示核算项目出错
情况二:固定资产卡片清理时,提示:可能由于网络问题,卡片保存失败,请重新保存。错误代码: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)