专题文章汇总.docx
《专题文章汇总.docx》由会员分享,可在线阅读,更多相关《专题文章汇总.docx(23页珍藏版)》请在冰豆网上搜索。
![专题文章汇总.docx](https://file1.bdocx.com/fileroot1/2023-7/10/2023e821-ffaa-4205-b733-24c8ad8fc0d5/2023e821-ffaa-4205-b733-24c8ad8fc0d51.gif)
专题文章汇总
一、总帐
1、总帐工具中加入通用转帐公式转入转出工具
无工具,但可以用以下SQL脚本:
把002帐套的转帐公式导到001帐套。
可以把帐套号修改,在查询分析器执行。
INSERTINTOUFDATA_001_2003..GL_bautotran
("itype","ctran_id","inid","csign","ctext","ccode","cdigest","ccus_id","csup_id","cperson_id","cdept_id","citem_class","citem_id","bd_c","cformula","cformula_s","cformula_f")
selectitype,ctran_id,inid,csign,ctext,ccode,cdigest,ccus_id,csup_id,cperson_id,cdept_id,citem_class,
citem_id,bd_c,cformula,cformula_s,cformula_ffromufdata_002_2003..gl_bautotran
2、关于总帐对帐不平的原因分析
我们的软件在总帐对帐时经常出现对帐不平的现象,特别是低版本现象比较严重。
现在分析以下现象和原因,同时提供部分解决方法。
首先要排除你修改科目的辅助核算的情况,因为这样有时会造成辅助项的对帐不平,此现象是你在修改科目辅助核算时必然带来的结果,你只能接受。
而且经常有用户年度结转后修改辅助核算,而造成对帐不平。
对于这种情况出现的对帐不平,可以以下为例,参照处理:
例如:
一个用户年度结转后发现某个科目在对账的时提示对账错误,但是在不记账的时候就是正确的。
经检查发现由于用户数据2002年有部门核算2003年取消了部门核算,但辅助总帐表(GL_accass)2003年初按科目+项目+部门结转的,2003年取消部门后,记录需按科目+项目进行合并。
所以应该按科目+项目修改辅助总帐期初数据,合并后,重新记帐,对帐正确。
对于其他的情况,如果出现对帐不平的现象,首先要恢复计帐甚至取消审核,然后重新审核后再记帐。
此方法可如果不能解决,可判断数据库有问题,可从以下表中找原因:
一般情况检查4个表(code科目表,GL_accsum总帐表,GL_accass辅助总帐表,GL_accVouch凭证明细表)即可。
有如下可能性:
1.科目表的末级标志错误
2.总帐表或辅助总帐表记录丢失
3.总帐表或辅助总帐表记录重复
4.凭证本身错误
情况1:
此现象在U8下有时会出现,是已使用科目再增加下级科目时会出现。
用如下语句可判断科目表非末级科目的末级标志错误
select*fromFROM[code]whereexists(SELECT*FROM[code]vwherecode.ccode=left(ccode,len(code.ccode))andcode.ccode<>ccode)andbend<>0
修改语句
updatecodesetbend=0FROM[code]whereexists(SELECT*FROM[code]vwherecode.ccode=left(ccode,len(code.ccode))andcode.ccode<>ccode)andbend<>0
科目表末级科目的末级标志错误
select*FROM[code]wherenotexists(SELECT*FROM[code]vwherecode.ccode=left(ccode,len(code.ccode))andcode.ccode<>ccode)andbend<>1
修改语句
updatecodesetbend=1FROM[code]wherenotexists(SELECT*FROM[code]vwherecode.ccode=left(ccode,len(code.ccode))andcode.ccode<>ccode)andbend<>1
情况2:
总帐表或辅助总帐表有数据丢失
总账表中按科目划分有且只能由12条记录,每月一条记录
SELECT[ccode]FROM[GL_accsum]groupby[ccode]havingcount([i_id])<12
辅助总账表中按科目和辅助项划分有且只能由12条记录,每月一条记录
SELECT[ccode],[cdept_id],[cperson_id],[ccus_id],[csup_id],[citem_class],[citem_id]FROM[GL_accass]groupby[ccode],[cdept_id],[cperson_id],[ccus_id],[csup_id],[citem_class],[citem_id]havingcount([i_id])<12
如果发现此现象请手工添加丢失的记录
情况3:
总帐表或辅助总帐表记录重复(accesss升级到SQL后有时出现)
删除总账表中的冗余数据
delete[GL_accsum]from[GL_accsum]asvwherenotexists(SELECT*FROM[GL_accsum]asawhere[iperiod]between1and12groupby[ccode],[iperiod]havingmin([i_id])=[v].[i_id])
删除辅助总账表中的冗余数据
delete[GL_accass]from[GL_accass]vwherenotexists(SELECT*FROM[GL_accass]where[iperiod]between1and12groupby[ccode],[cdept_id],[cperson_id],[ccus_id],[csup_id],[citem_class],[citem_id],[iperiod]havingmin([i_id])=v.[i_id])
情况4:
凭证本身错误(数据库损坏造成数据错误或外部数据导入时未做平衡和辅助核算的检查)
可通过取消审核重新审核的方法找到错误凭证,进行进一步的修改
以上方法有时要结合在一起灵活使用,不要孤立的认为一方治百病。
同时处理后都要恢复记帐,重新记帐,方可判断是否正确。
3、U821客户在总帐中查询部门科目总帐(122)的二月份的期末数和在查询总帐(122)中的期末数,二者的数据不一致(科目总帐中的数据是正确的)。
而一月份的数查询是对的。
查询部门科目明细帐的期末数和在总帐科目中查询的期末数却是对的。
122科目是部门客户辅助核算。
122科目的凭证是从应收中生成的。
错误原因:
辅助帐表gl_accass中关于科目122的记录不正确导致!
解决方案:
1)首先恢复至1月份未结帐未记帐的状态;
2)在sqlserver的查询分析器(对应的数据库)中执行如下sql语句即可:
declare@ccodeasvarchar(10)
declare@timesint
set@ccode='122'//科目编码
set@times=1//循环的次数
select*intoa
fromGL_ACCASS
wherei_idin
(selectmin(i_id)
fromGL_ACCASS
whereccode=@ccodeandiperiod='1'groupbycdept_id)
selectcdept_id,cbegind_c,
casecbegind_c
when'贷'then-1*sum(mb)
elsesum(mb)
endastol
intob
fromGL_ACCASS
whereccode=@ccodeandiperiod='1'
groupbycdept_id,cbegind_c
orderbycdept_id
selectcdept_id,sum(tol)asallTol,
fangxiang=case
whensum(tol)>0then'借'
whensum(tol)<0then'贷'
whensum(tol)=0then'平'
end,
fangxiangeng=case
whensum(tol)>0then'Dr'
whensum(tol)<0then'Cr'
whensum(tol)=0then'-'
end
intoc
fromb
groupbycdept_id
updateasetcbegind_c=fangxiang,
cbegind_c_engl=fangxiangeng,
mb=case
whenalltol<0then-1*alltol
elsealltolend,
me=alltol,
cendd_c=fangxiang,
cendd_c_engl=fangxiangeng
fromc
wherec.cdept_id=a.cdept_ID
delete
fromgl_accass
whereccode='122'
while@times<13
begin
insertintogl_accass([ccode],[cexch_name],[cdept_id],
[cperson_id],[ccus_id],[csup_id],[citem_class],[citem_id],[iperiod],[cbegind_c],[cbegind_c_engl],[mb],[md],[mc],[cendd_c],[cendd_c_engl],
[me],[mb_f],[md_f],[mc_f],[me_f],[nb_s],[nd_s],[nc_s],[ne_s])
select[ccode],[cexch_name],[cdept_id],[cperson_id],[ccus_id],[csup_id],[citem_class],[citem_id],@times,[cbegind_c],[cbegind_c_engl],[mb],[md],[mc],[cendd_c],[cendd_c_engl],[me],[mb_f],[md_f],[mc_f],[me_f],[nb_s],[nd_s],[nc_s],[ne_s]
froma
set@times=@times+1
end
droptablea
go
droptableb
go
droptablec
go
注意:
此处该科目以部门为辅助核算,如果以其他的项目来辅助核算不能直接套用此方法。
如果也为部门核算但是不同科目,可以把变量@ccode换成其他的科目编码即可。
4、7.21升级到8.50后部分项目大类和项目帐丢失,造成辅助账对账不平。
解决方法:
在G_itemss表中,有每个项目大类的结构设置,如citem_id为01的结构设置有4行记录,即定义了4个项目结构字段,在g_itemss04表中的就应有FIELD1-FIELD4这四个字段,不应有FIELD5、FIELD6、FIELD7字段,将这些字段在设计中去掉后重新结转,项目帐就可以转过去了。
5、如何调整非套打的凭证模版?
调整了glpzje.rep为什么不起作用?
非套打的打印模版在Ufcomsql目录下,报表名称为glpzje加上选项中的每页打印的行数,如每页打印5行,则模版为glpzje5.rep,而改glpzje是没有用的。
6、如何调整非套打帐簿的打印模版?
在打印非套打的帐页,如银行日记帐等帐页时,经常需要调整列宽,但正式的帐页不能进行列宽的设置,如何用显示的帐页进行正式银行日记帐的帐簿的打印,即在帐页上加上[正式帐簿]的字样?
在非套打的帐套中的帐簿打印和显示使用的报表模版在WF821\ZW\REP目录下,日记帐的模版为RJZJEU.REP,用UFO简版打开,在右侧追加一列,在格式下加上正式帐簿的字样,就可以在查询界面打印了。
其他的帐页也可以用同样的方法进行调整。
如想调整明细帐的非套打的格式,可以调整同目录下的MXZJEU.REP文件。
但应注意:
非套打的打印调整只针对表头和表尾,对表体无法控制,表体是程序控制的。
7、
二、报表
1、关于850UFO从数据库取数功能的注意事项
一、INDB()只能从可以是ACCESS文件(*.mdb)、MSEXCEL文件(*.xls)、LOTUS1-2-3文件(*.wk4)、DBASE数据库文件(*.dbf)、标准文本文件(*.txt)取数,不能实现从SQL数据库取数的功能。
二、INDBSQL()可以取出相应的条件的数据库表的一条满足条件的记录的一个对应字段的数据。
具体的格式:
INDBSQL("","<表名>",<字段名>,<记录号>,[条件])
系统按照数据库定义的表RPT_GRPDEF,RPT_ITMDEF对应的字段进行取数,可以取不同帐套的数据。
应注意定义公式的单元的单元属性要和数据库的单元类型一致。
三、Getrecord命令的使用说明:
Getrecord函数可以取出满足一定条件的数据库的SQLSERVER数据的结果集。
具体的格式:
GETRECORD("SQL语句",显示区域,显示格式[<横向显示>,<纵向显示>],记录数上限),"SQL"语句可以自己输入,也可以通过向导生成。
例如:
取成本对象的公式:
GETRECORD("Selectfitemss99.citemcodeFromfitemss99","b14:
b21",1,),
Getrecord函数应注意以下几个问题:
1、如需要的是字符型,所选的区域单元应为字符型。
2、选定的单元,应不是公式定义的单元。
3、定义完公式后,一定要用菜单上的表页重算功能进行计算。
4、Getrecord函数只支持固定区的取数,不支持可变区的取数。
5、注意横纵向显示与所选区域的一致性。
6、只可以取登陆的当前登陆年度的帐套数据库。
7、如果对于使用较复杂的用户,可以使用850的自定义帐表功能,因此函数的SQL语句功能不如自定义帐表的功能强大,且自定义帐表生成的表单可以输出到UFO报表。
2、
三、工资
四、固定资产
1、在8.11A固定资产模块中,部分固定资产累计折旧不能连续加。
错误原因:
数据库中fa_Deprtransactions数据错误所导致!
解决方案:
在access对应的数据库中新建一个查询,查询的语句如下:
updatefa_Deprtransactions
setdblDeprT2=dblDeprT1+dblDepr2,
dblDeprRate3=0,
dblDepr3=0,
dblDeprRate3=0,
dblDeprT3=0,
lDeprMonths3=0,
lUsedMonths3=0
执行这个查询.执行完毕后把这个查询删除即可。
2、U850固定资产卡片串部门的问题探讨
U850在对老数据升级后有时会出现串部门的现象。
U850虽然支持多部门使用,但此现象决非此原因造成,更何况对老数据都安单部门处理。
经查实出现此现象都是由于老数据有评估业务才会出现有,原因是老版本和新版本对业务号定义不同造成的。
老版本对认为一张评估单位一个业务号(loptid),多张卡片公用一个业务号,数据不唯一;而新版本会为评估单对应的多张卡片分配多个业务号,数据唯一,相关的查询都会以此业务号作依据,作为查询连接条件。
在对老数据升级过程中并为对此业务号重新分配,将有重复的关键内容插入不允许重复的相关表中。
这样数据在做关联查询时出现多对多的现象,造成定位错误。
表现为卡片管理中部门串号,同时可能会造成折旧分配错误,从而会生成错误的凭证。
目前发现同评估业务相关的表很多,而有loptid字段的数据表都要调整,包括fa_Cards,fa_Cards_Detail,fa_DeprVoucherMain,fa_DeprVouchers,fa_DeprVouchers_pre,fa_EvaluateMain,fa_DeptScale,fa_Vouchers,fa_EvaluateVouchers_Detail,fa_Vouchers_Detail,有一定难度,不建议手工调整,目前用固定最新的补丁即可自动调整。
进入帐套后系统会自动调整:
首先判断此帐套是否做过调整,如果没有,就做相应的处理,将重复的数据调整成唯一的。
3、
五、应收应付
1、由于常有代理或分子公司打电话或在支持网站上询问关于U8应收系统应收票据贴现的计算方法现举一个具体的例子来加以说明
以2002-09-01日期注册进入应收系统,在票据管理中增加一张银行承兑汇票,收到日期为2002-09-01,票面面值100,票面利率10%,签发日期2002-09-01,到期日2002-09-10再以2002-09-04日期注册进入应收系统,在票据管理中对该票据进行贴现处理,贴现率18,系统自动算出贴现净额为99.95,费用0.05
应收系统的票据管理依据相关会计制度设定的算法公式如下:
票据到期价值=票据面值+票据面值×((年利率÷360)×票据到期天数)对无息票据来说,票据到期价值就是其面值。
贴现息=票据到期价值×贴现率×贴现天数÷360
贴现天数=贴现日至票据到期日实际天数-1(即‘算头不算尾’或‘算尾不算头’的算法)
贴现实得额(贴现净额)=票据到期价值-贴现息
根据上述公式对该票据的贴现进行计算:
该票据到期价值为100+100×((10%÷360)×9)=100.25
该票据贴现息为100.25×18%×6÷360=0.30
贴现净额=100.25-0.30=99.95
费用=100-99.95=0.05
注:
票据到期天数按日表示时,出票日(签发日期)和到期日,只能计算其中的一天,即‘算头不算尾’或‘算尾不算头’。
2、应付中做预付处理后,预付冲应付时,显示金额为负数。
将999演示帐套的AP_cancel1视图引入,替换原来的视图
3、812access升级821时,提示“应收应付错误-2147。
。
。
。
”。
错误原因:
在表salebillvouch中的发票号字段(csbvcode)中有形如“02000000201”的非法值。
在821中该字段的长度为10位,所以造成升级失败。
解决方案:
将所有这些非法值改为正确的10位长的即可。
注意,在此表csbvcode+cvouchtype组合必须唯一。
4、
六、成本
1、成本计算完成后,各部门成本汇总表、成本核算表的“制造费用”和“人工费用”中却查不到“制造费用”发生。
解决办法:
1、修改accinformation表的成本系统版本号为820×××(只要低于显示的数字即可)2、更换成本补丁,打开帐套出现升级界面就可以。
2、进入“定义分配率”中的制造费用分配率时提示“无效列名‘cMauAmoAlomethod’”,进入后不能正常显示各选项。
解决办法:
1、先将ACCINFORMATION表中成本系统的版本改为低版本,或用一下的SQL脚本:
UPDATEAccInformation
SETcID=8200010
WHERE(cSysID='CA')AND(cID='18')
2、更换2003年3月以后的成本补丁,第一次打开时会有一个升级的进度条(会很快),然后就可以正常进入制作费用分配率定义了。
3、
七、采购
1、采购系统内查询‘暂估入库余额表’期初(仓库计价方式为计划价法)只显示数量不显示金额,同样在存货系统内查询‘暂估材料余额表’期初也是只有数量没有金额,为什么?
问题原因:
在采购系统查询‘暂估入库余额表’中的金额基于入库单上是否有单价得来,而不是计划单价,这样采用计划价核算采购入库单没有结算前其单价为空使得‘暂估入库余额表’中的金额也会为空。
由此推出录入期初暂估入库单时,需录入存货的数量及单价(可参照该存货的计划单价录入),计划单价会由系统自动带出,自动计算金额及计划金额。
这样查询‘暂估入库余额表’期初数量与金额均会显示。
另若期初暂估入库单不添单价,且在存货系统对暂估入库部分进行期初余额记帐会导致在存货系统内查询‘暂估材料余额表’期初也是只有数量不显示金额,并且查询存货明细帐中的结存差异也会出现问题。
这可能存在一定的程序原因。
若该数据已期初记帐则可用下列语句进行调整使采购的‘暂估入库余额表’及存货的‘暂估材料余额表’期初金额显示(修改前一定作好数据备份):
updaterdrecords
setrdrecords.facost=ia_subsidiary.iincost
fromia_subsidiaryjoinrdrecordson
ia_subsidiary.id=rdrecords.autoidwhere
ia_subsidiary.cVouType='33'andia_subsidiary.brdflag='1'andcbustype='普通采购'
updateia_subsidiary
seticreditdifcost=0
wherecVouType='33'andcbustype='普通采购'
----------------
若查询存货明细帐中的结存差异会出现相关问题,请将期初(33)所对应的红字回冲单的autoid从ia_subsidiary表中筛出将其对应的icreditdifcost清空试一下(修改前一定作好数据备份):
ifexists(select*fromsysobjectswherename='aa')
droptableaa
selectb.autoidasdyhzidintoaafromia_subsidiaryasajoinia_subsidiaryasbona.brdflag=b.brdflaganda.cbustype=b.cbustypeanda.cvoucode=b.cvoucodeanda.id=b.id
wherea.cbustype='普通采购'anda.brdflag='1'anda.cVouType='33'andb.cvoutype='24'andb.icreditdifcost<>0
updateia_subsidiary
seticreditdifcost=0
whereautoidin(select*fromaa)
2、
3、
八、销售