用友U8 年结后,库存与存货不一致用友U8 年结后,库存与存货不一致
问题原因:对于821以前版本升级到85x的, 由于先进先出法821的结转方式与85x不同,导致如果在821上做了两年以上的数据,则升级85x后结转会出错。 原因:821数据结转时将ia_valuationass表按照每一条入库记录的结余结转,记账日期仍为上一年单据记账使得日期,而ia_subsidiary表则按照总的结存结转,记账日期为上一年的最后一天,导致结转后ia_valuationass表期初的inid与ia_subsidiary表的期初的id无法对应,而升级到85x后,结转时需要根据ia_valuationass.inid与ia_subsidiary.id相等,并且记账日期 ia_valuationass.dikeepdate=ia_subsidiary.dkeepdate,所以第二年的期初数量就无法结转到下一年了。导致数据出错。例如:821:2002年两条入库记录:id=1 iainquantity=8;id=2,iainquantity=10,仓库存货相同;则ia_subsidiary,ia_valuationass分别有这两条记录,并且没有出完,然后821结转到2003年,则ia_subsidiary中有一条期初记录:id=null,iainquantity=18,ia_valuationass还是有两条记录,id=1 iainquantity=8;id=2,iainquantity=10。升级到85x后,结转数据到2004年,由于需要根据ia_valuationass表ia_valuationass.inid=ia_subsidiary.id结转存货明细账,导致存货明细账id=null的无法结转过来。 解决方法:1、备份。2、恢复存货期初记帐。3、在查询分析中分步执行SQL脚本。4、重新记帐。 注意(执行该脚本后存货期初和去年一致,计价辅助表,总帐 由存货期初记帐后形成。 另外注意,因为无法再根据单据来调整,所以执行该脚本后所有单据以期初入库单的方式出现,日期全部是2004-12-31, 2005-1-1) --注意一定要先在存货中取消期初记帐后操作 use ufdata_888_2004 go --清空2005年的期初 delete from ufdata_888_2005..ia_subsidiary where cvoutype='34' go --从04年存货明细帐中取数放到TEMP02中 select cdepcode,cwhcode,cinvcode,(case when brdflag=0 then ioutcost else iincost end) as cost,(case when brdflag=0 then -sum(iaoutquantity) else sum(iainquantity) end ) as sumqu ,(case when brdflag=0 then -sum(iaoutprice) else sum(iainprice) end ) as sumpr into temp02 from ia_subsidiary where cvoutype<>'33' group by cdepcode,cwhcode,cinvcode,brdflag,iincost,ioutcost go --汇总后放到TEMP02中 select cdepcode,cwhcode,cinvcode,cost,sum(sumqu) as qu,sum(sumpr) as pr into temp03from temp02 group by cdepcode,cwhcode,cinvcode,cost go --将汇总结果放到2005年存货明细帐中 Insert into ufdata_888_2005..IA_subsidiary (bRdFlag,dvoudate,dKeepDate,iMonth,cInvHead,cVouType,cWhCode,cInvCode,cdepcode,iAInQuantity,iInCost,iAInPrice, cAccounter,cMaker,cPzID,cfree1,cfree2,cfree3,cfree4,cfree5,cfree6,cfree7,cfree8,cfree9,cfree10) select 1,'2004-12-31','2005-01-01',0,null ,34,cwhcode,cinvcode,cdepcode,qu,cost,pr,null,'asuser', null,null,null,null,null,null,null,null,null,null,null from ufdata_888_2004..temp03 go drop table temp02,temp03 go --清除数量和金额都为0的记录 delete from ufdata_888_2005..ia_subsidiary where cvoutype='34' and iainquantity=0 and iainprice=0 go
解决方案:
问题原因:对于821以前版本升级到85x的, 由于先进先出法821的结转方式与85x不同,导致如果在821上做了两年以上的数据,则升级85x后结转会出错。 原因:821数据结转时将ia_valuationass表按照每一条入库记录的结余结转,记账日期仍为上一年单据记账使得日期,而ia_subsidiary表则按照总的结存结转,记账日期为上一年的最后一天,导致结转后ia_valuationass表期初的inid与ia_subsidiary表的期初的id无法对应,而升级到85x后,结转时需要根据ia_valuationass.inid与ia_subsidiary.id相等,并且记账日期 ia_valuationass.dikeepdate=ia_subsidiary.dkeepdate,所以第二年的期初数量就无法结转到下一年了。导致数据出错。例如:821:2002年两条入库记录:id=1 iainquantity=8;id=2,iainquantity=10,仓库存货相同;则ia_subsidiary,ia_valuationass分别有这两条记录,并且没有出完,然后821结转到2003年,则ia_subsidiary中有一条期初记录:id=null,iainquantity=18,ia_valuationass还是有两条记录,id=1 iainquantity=8;id=2,iainquantity=10。升级到85x后,结转数据到2004年,由于需要根据ia_valuationass表ia_valuationass.inid=ia_subsidiary.id结转存货明细账,导致存货明细账id=null的无法结转过来。 解决方法:1、备份。2、恢复存货期初记帐。3、在查询分析中分步执行SQL脚本。4、重新记帐。 注意(执行该脚本后存货期初和去年一致,计价辅助表,总帐 由存货期初记帐后形成。 另外注意,因为无法再根据单据来调整,所以执行该脚本后所有单据以期初入库单的方式出现,日期全部是2004-12-31, 2005-1-1) --注意一定要先在存货中取消期初记帐后操作 use ufdata_888_2004 go --清空2005年的期初 delete from ufdata_888_2005..ia_subsidiary where cvoutype='34' go --从04年存货明细帐中取数放到TEMP02中 select cdepcode,cwhcode,cinvcode,(case when brdflag=0 then ioutcost else iincost end) as cost,(case when brdflag=0 then -sum(iaoutquantity) else sum(iainquantity) end ) as sumqu ,(case when brdflag=0 then -sum(iaoutprice) else sum(iainprice) end ) as sumpr into temp02 from ia_subsidiary where cvoutype<>'33' group by cdepcode,cwhcode,cinvcode,brdflag,iincost,ioutcost go --汇总后放到TEMP02中 select cdepcode,cwhcode,cinvcode,cost,sum(sumqu) as qu,sum(sumpr) as pr into temp03from temp02 group by cdepcode,cwhcode,cinvcode,cost go --将汇总结果放到2005年存货明细帐中 Insert into ufdata_888_2005..IA_subsidiary (bRdFlag,dvoudate,dKeepDate,iMonth,cInvHead,cVouType,cWhCode,cInvCode,cdepcode,iAInQuantity,iInCost,iAInPrice, cAccounter,cMaker,cPzID,cfree1,cfree2,cfree3,cfree4,cfree5,cfree6,cfree7,cfree8,cfree9,cfree10) select 1,'2004-12-31','2005-01-01',0,null ,34,cwhcode,cinvcode,cdepcode,qu,cost,pr,null,'asuser', null,null,null,null,null,null,null,null,null,null,null from ufdata_888_2004..temp03 go drop table temp02,temp03 go --清除数量和金额都为0的记录 delete from ufdata_888_2005..ia_subsidiary where cvoutype='34' and iainquantity=0 and iainprice=0 go
www.kuaiji66.com 天龙瑞德