×

点击这里给我发消息  点击这里给我发消息

金蝶软件 KINGDEE
金蝶软件 / KINGDEE

首页 > 金蝶软件 > 常见问题

金蝶旗舰版5.0录入业务单据单据未能正确保存插入重复键值
发布日期:2024-08-16

问题描述:

金蝶旗舰版5.0业务单据(出入库单据,如销售出库、外购入库等)保存的时候提示“单据未能正确保存,原因如下:插入重复键值”?

场景介绍

业务单据不能正常保存。提示“插入重复键值”。

image.png

解决方案

该问题有两种情况:

情况一:因为单据体存在数据,存在有单据体,没有单据头的情况,导致单据体被异常占用,无法新增单据,请用以下语句进行检测:

--库存类单据(出库类单据+入库类单据)

select * from icstockbillentry where finterid not in (select finterid from icstokcbill)

--销售订单

select * from seorderentry where finterid not in (select finterid from seorder)

--采购订单

select * from poorderentry where finterid not in (select finterid from poorder)

--销售发票

select * from icsaleentry where finterid not in (select finterid from icsale)

--采购发票

select * from icpurchaseentry where finterid not in (select finterid from icpurchase)

如果查询出来数据,则代表有上述的情况需要进行修复,需要将这部分异常的单据体进行删除,修复语句如下:

--库存类单据(出库类单据+入库类单据)

delete from icstockbillentry where finterid not in (select finterid from icstokcbill)

--销售订单

delete from seorderentry where finterid not in (select finterid from seorder)

--采购订单

delete from poorderentry where finterid not in (select finterid from poorder)

--销售发票

delete from icsaleentry where finterid not in (select finterid from icsale)

--采购发票

delete from icpurchaseentry where finterid not in (select finterid from icpurchase)


情况二:单据中的***大内码在已有单据中已存在,导致新增内码失败,无法保存新增单据,请用以下语句进行检测,如果第一行查出的数小于第二行查出的数,则证明有问题:

image.png

--出入库单据

select max(finterid) from icstockbill 

select * from icmaxnum where ftablename='icstockbill'

--销售订单

select max(finterid) from seorder 

select * from icmaxnum where ftablename='seorder'

--采购订单

select max(finterid) from poorder 

select * from icmaxnum where ftablename='poorder'

--销售发票

select max(finterid) from icsale 

select * from icmaxnum where ftablename='icsale'

--采购发票

select max(finterid) from icpurchase 

select * from icmaxnum where ftablename='icpurchase'

修改方案(需执行对应单据的语句):

--出入库单据

update icmaxnum set fmaxnum=(select max(finterid) from icstockbill)+1 where ftablename='icstockbill'

--销售订单

update icmaxnum set fmaxnum=(select max(finterid) from seorder)+1 where ftablename='seorder'

--采购订单

update icmaxnum set fmaxnum=(select max(finterid) from poorder)+1 where ftablename='poorder'

--销售发票

update icmaxnum set fmaxnum=(select max(finterid) from icsale)+1 where ftablename='icsale'

--采购发票

update icmaxnum set fmaxnum=(select max(finterid) from icpurchase)+1 where ftablename='icpurchase'

【注意事项】

正式账套执行脚本前请先做好备份,建议待在测试账套中核实无误后再在正式账套中执行。


重庆金蝶软件 重庆金蝶售后:18523974565 周


上一个:金蝶旗舰版如何控制做单据带出来的是含税单价还是不含税单价?

下一个:重庆金蝶售后KIS云专业版16.0数据库可疑怎么从处理?

在线咨询 热线电话 扫码咨询

职业咨询

1204886996 1091367070

金蝶咨询

1301884168 2795853531

代账咨询

8405259

职业咨询

18008354740 17308351064

金蝶咨询

18523974565 18523974585

代账咨询

13002375522 18008354740

职业咨询

金蝶咨询

代账咨询