成本支持手册 金蝶软件总部技术支持部 2005-03 免责声明: 此文档旨在促进阅读者提高对金蝶软件的技术认知能力,阅读者可以根据文档中的技术参考意见进行自我学习。金蝶软件(中国)公司不对本文档的有效性作出承诺,亦不对因本文档所产生的任何后果承担法律责任。 文档内容可能因产品的版本更新或技术的变更作出修改,欲浏览最新版本,请通过因特网访问金蝶软件(中国)公司网站 如您是金蝶公司正式产品用户且需要技术支持,请与金蝶软件(中国)公司各分支机构或授权服务伙伴联系,联系方式请浏览以上网站。
第一章 成本管理 第一章 成本管理..................................................................................................................................1 第一节 成本系统数据表总体介绍...................................................................................................4 一、 成本系统数据表分类...........................................................................................................4 二、 成本系统数据表命名特点...................................................................................................5 第二节 基础资料—成本管理部分...................................................................................................6 二、 劳务 (cbService).............................................................................................................9 三、 成本项目(cbCostItem)..........................................................................................................9 四、 要素费用(cbExpense)...........................................................................................................9 第三节 系统参数设置.....................................................................................................................10 一、 相关数据表.........................................................................................................................10 第四节 初始化.................................................................................................................................11 一、 初始数据录入.....................................................................................................................11 二、 关闭初始化.........................................................................................................................11 三、 反初始化.............................................................................................................................11 四、 初始化相关数据表.............................................................................................................11 第五节 分配标准.............................................................................................................................13 一、 分配标准定义.....................................................................................................................13 二、 分配标准设置.....................................................................................................................13 三、 分配标准数据录入.............................................................................................................13 四、 分配标相关数据表.............................................................................................................15 第六节 产量录入.............................................................................................................................17 一、 投入产量录入.....................................................................................................................17 二、 完工产量录入.....................................................................................................................17 三、 在产品盘点产量录入.........................................................................................................17 四、 劳务耗用量录入.................................................................................................................18 五、 产量录入相关数据表.........................................................................................................18 第七节 费用录入.............................................................................................................................19 一、 材料费用录入.....................................................................................................................19 二、 人工费用录入、折旧费用录入、其他费用录入.............................................................20 三、 费用录入相关数据表.........................................................................................................21 第八节 费用分配.............................................................................................................................22 一、 费用分配功能总体介绍.....................................................................................................22 二、 材料费用分配.....................................................................................................................23 三、 其他费用分配.....................................................................................................................28 四、 制造费用分配.....................................................................................................................28 五、 辅助生产费用分配.............................................................................................................28 六、 废品费用分配.....................................................................................................................29 七、 费用分配相关表.................................................................................................................29 八、 费用分配总结.....................................................................................................................32 第九节 成本计算.............................................................................................................................33 帮助顾客成功 - 2 -
一、 成本计算总体介绍.............................................................................................................33 二、 成本计算处理流程.............................................................................................................35 三、 成本计算相关数据表.........................................................................................................46 四、 成本计算报表.....................................................................................................................48 第十节 标准成本.............................................................................................................................50 一、 标准成本数据录入.............................................................................................................50 二、 标准成本计算.....................................................................................................................51 三、 标准成本相关数据表.........................................................................................................51 第十一节 期末处理.........................................................................................................................53 一、 期末结帐处理流程.............................................................................................................53 帮助顾客成功 - 3 -
第一节 成本系统数据表总体介绍 一、成本系统数据表分类 成本数据表类别 表 名 称 部 门:t_Department 物 料:t_IcItem、t_Item 成本对象:t_Item、cbCostObj、cb_CostObj_Product 基础资料表 cb_CostObj_RevQuo、cb_GroupInfo 成本项目:cbCostItem 要素费用:cbExpense 劳 务:cbService 分配标准 分配标准单元:cbStandardUnit 单 元 在产品分配标准表:cbOnlStd 分配标准设置表:cbStandardSet 分配标准 分配标准类 设 置 废品分配标准设置表:cbWasterStdSet 分配标准 分配标准数据录入表:cbRationStandardInfo 数 值 实际总工时:cbManHourInfo 完工产量表:IcStockbill(Entry)、cbCompleteQty 废品产量表:cbWasterCostObjInfo 产量录入表 劳务耗用量:cbAssExpenseInfo 在产品产量:cbCostObjCheck 材料费用耗用表:IcStockBill(Entry) 费用录入表 其它费用耗用表:cbCostExpenseInfo (废品损失)材料费用分配表:cb(W)MaterielInfo (废品损失)其它费用分配表:cb(W)ExpenseDistributeInfo (废品损失)制造费用分配表:cb(W)MakeDistributeInfo 费用分配表 残值退料表:cbWBMaterielInfo 辅助生产费用一次分配表:cbAssExpenseInfo (废品损失)辅助生产费用二次分配表:cb(W)AssistDistrbuteInfo 成本计算单:cbCalInfo 成本计算单直接材料分配明细表:cbCalinfoDetail 成本余额表:cbBalance 废品不可修复成本计算单:cbWNCalInfo 成本计算表 废品可修复材料成本计算单:cbWCalinfoDetail 废品可修复成本计算单:cbWCalInfo 完工产品成本计算单:cbProductCalInfo 成本还原表:cbCalRevertInfo 初始余额:cbInitBalance、cbCostObjDetail 余额表 余额表:cbBalance 标准单价:cbStdStdPrice 单位标准标准工时:cbStdStdManhour 标准工资率:cbStdSalaryRate 变动制造费用分配率:cbStdFloatMakeRate 标准成本类 固定制造费用预算:cbStdfixedMakebudget 标准成本计算单:cbStdCalInfo 材料标准成本计算单:cbStdCalinfoDetail 其他标准成本计算单:cbStdCalInfoOther 帮助顾客成功 - 4 -
二、成本系统数据表命名特点 1)有“Standard”关键字的表是分配标准表; 2)以“distributeInfo”为后缀的表是费用分配表; 3)带“W”的表是废品相关表; 4)以“calinfo” 为后缀的表是成本计算表; 5)有“Std”关键字的表是标准成本表。 帮助顾客成功 - 5 -
第二节 基础资料—成本管理部分 (一) 会计科目(t_Account) 设置成本类科目时,必须考虑成本系统向总帐传递凭证的问题。成本类科目不能下设明细科目,但可以挂下列范围核算项目。 成本类科目设置 会 计 科 目 核 算 项 目 基本生产成本 部门、成本对象、成本项目 辅助生产成本 部门、劳务、成本项目 制 造 费 用 部门、要素费用 (二) 物料 (t_Item、t_IcItem) ( 1 )物料资料—物料属性( ) FErpClsID字段的值域定义在t_submessage表中,关联关系: = 。物料属性共有7种: t_Icitem. FErpclsID = 1 —外购 ; 2 —自制 ; 3 —委外加工; 5 —虚拟件; 6 —特征类; 7 —配置类; 8 —规划类 其中只有“自制( =2)”和“配置类( =7)”的物料才可以作为成本计算的对象。 ( 2 )物料资料—成本项目() 在费用分配时,物料资料中的成本项目将携带至材料费用分配结果表。如果物料资料中的成本项目未定义,则系统取要素费用默认对应的成本项目。 ( 3 )物料资料—单位标准成本(FstandardCost) 如果在物料资料中录入了标准成本,那么在进行“标准成本数据录入—标准单价录入”时可从物料中引入。在物料资料中只须录入外购件的单位标准成本,不必录入自制件的标准成本。在物料资料中即使录入了自制件的单位标准成本,在进行成本计算后,系统会根据计算出来的自制件的单位标准成本回填物料资料。 ( 4 )物料资料—单位标准工时 如果在物料资料中录入了单位标准工时,那么在进行“标准成本数据录入-单位标准工时录入”时可从物料中引入。在计算标准成本时,单位标准工时用于计算“直接人工标准成本”和“变动制造费用的标准成本”。在计算实际成本时,单位标准工时可以作为分配标准单元。 ( 5 )物料资料—计价方法(FTrack) K3提供了六种计价方法。选折不同的计价方法所产生的影响主要是:影响发出成本。其中,尤其要慎重选折的是分批认定法。使用分批认定法,会增大日常工作量。因为在出库和入库时,必须指定批号。一个物料每新增一个批次,都要在成本系统中手工新增一个批次成本对象。 帮助顾客成功 - 6 -
(三) 部门(t_Department) ( 1 )成本核算类型 ( FcostAccountType ) 关联关系:t_Department. FcostAccountType = t_Department. FcostAccountType = 361 基本生产车间 362 辅助生产车间 363 期间费用部门 该属性是判断企业发生的费用是否记入生产成本的依据,基本生产和辅助生产车间发生费用要记入生产成本,期间费用部门发生费用不记入生产成本。 ( 2 )部门属性(FDProperty) 关联关系:t_Department. FDProperty = = 1070 车间 1071 非车间 部门属性对物流管理模块(包括成本管理)没有影响,仅对生产管理模块有影响,即:只有FDProperty = 1070的部门才允许下挂工作中心。 (四) 成本对象 1. 成本对象的上级组 新增物料组时,系统自动增加成本对象组: 1、增加t_item记录,FitemClassID=4,Fdetail=0 2、增加t_item记录,FitemClassID=2001,Fdetail=0 这种成本对象组不能删除,否则在再新增自制物料时会提示:成本对象未与系统同步初始化。 2. 成本对象的分类 成本对象就是成本计算的对象。按成本计算方法可分为四类:产品品种、生产批次、生产步骤、产品类别。成本对象的类别属性保存在Cbcostobj表FcalculateType字段中,关联关系: = t_submessage .FinterID = 906 品种法 907 分步法 908 品批法 909 分类法 3. 成本对象相关表 成本对象相关数据表:t_Item、cbCostObj、cb_CostObj_Product、cb_CostObj_RevQuo 。 t_Item表只保存所有核算项目都具有的“共同特征”:核算项目ID、父级ID、代码、名称等,这只是一些作为“核算项目”的基本信息。 同时,每个核算项目类别都拥有各自的数据表用来保存一些特有的属性。比如物料,其特有的信息保存在t_Icitem表中:计价方法、计划策略、安全库存、保质期等。 和物料一样,成本对象也是一个核算项目的类别,所以“成本对象上级组”及“最明细的成本对象”都保存在t_Item表中(FitemClassID=2001)。成本对象用cbCostObj表保存其特有的信息。 成本对象表 Cbcostobj 字 段 含 义 关 联 FstdID 在产品分配标准 Cbstandardunit . FitemID FstdSubID 在产品分配标准下挂标准ID Cbstandardunit . FitemID FcalculateType 成本计算方法(906 907 908 909 ) t_submessage. FinterID 帮助顾客成功 - 7 -
FstdProductID 物料ID FbatchNo 批号 FbomID 对于配置类,必须指定客户BOM 一个分类法成本对象对应多个物料,即:“成本对象”与“产品”之间的关系是“一对多”。而一个成本对象在cbCostObj表中只占一条记录,所以cbCostObj还需要一个子表专门用来保存成本对象与产品之间的对应关系:cb_CostObj_Product。 同理,用字表cb_CostObj_RevQuo表保存成本对象的各成本项目的还原系数。 4. 新增成本对象的过程 ( 1 )新增品种法&分步法成本对象 品种法与分步法的成本对象是在新增物料时系统自动增加的,用户不能手工添加。过程如下: 1)新增物料:物料基本信息写入t_Item (FitemClassID=4); 物料基本信息及特有信息写入t_IcItem 2)调用存储过程cbAddCostObj Begin 判断物料属性 Ferpclsid in N Y 判断计价方法 Ftrack=81? N Y 判断BOM中下一级 是否有自制物料 Y分步法;N品种法 增加cbCostObj 记录 增加 cb_costobj_Procuct 记录 增加 t_Item 记录 End 帮助顾客成功 - 8 -
( 2 )新增分批法成本对象 1)新增一自制或配置类物料,计价方法选择“分批认定法”; 增加 t_Item 记录 ,FitemClassid=4 ; 增加t_IcItem记录,Ftrack=81 2)“基础资料==》核算项目==》成本对象”中手工添加该物料的分批法成本对象,一个自制物料可以有多个批次成本对象。 增加cbcostobj记录,Fcalculatetype=908 ; 增加cb_costobj_Product记录; 增加CB_CostObj_RevQuo记录 ( 3 )新增加分类法成本对象 可选多个自制物料作为一个类别成本对象,对应的明细产品必为两个以上,需录入各明细产品的系数,需指定标准产品,标准产品的系数为1,标准产品只能选一个。本系统控制:已被定义为一种分类成本对象的产品,将被禁用,不能作为品种法成本对象,也不能做为另一类别成本对象的对应产品。 例:原来有两个品种法成本对象:pz01和pz02 ,现在新增加一个分类法成本对象:FL001,面包含pz01和pz02。则: 1、将t_Item表中pz01和pz02 的成本对象置为删除:FDeleted=1; 2、向t_Item表插入分类方法成本对象 FL001,Fitemclassid=2001; 3、向cbcostobj表插入分类法成本对象FL001,Fcalculatetype=909 ; 4、向 cb_costobj_Product插入FL001,FisStand=1的记录为标准产品,标准产品的系数等于1:Fquotiety=1; 5、向CB_CostObj_RevQuo 插入FL001 说明:分类法对象下面的明细仍然作为品种法保存在t_item、 cbcostobj 、cb_costobj_product 表中。分类法对象下面的明细成本对象(品种法成本对象)在t_item(fitemclassid=2001)被禁用,但是在cbocstobj 和cb_costobj_product中未别禁用。 二、劳务 (cbService) 劳务是辅助生产车间生产的“产品”,辅助生产是为基本生产服务的。例如:供电、供水、风、运输等。 在K3系统中一个辅助生产车间只能提供一种劳务; 可以做出入库的劳务通常已被定义成物料,不能再定义为劳务。对应的车间也必须设置为基本生产车间,如:模具 三、成本项目(cbCostItem) 只有标准成本项目为“直接材料”的成本项目,才计算该成本项目下的明细材料耗用成本,包括明细材料成本的数量和金额明细。 四、要素费用(cbExpense) 要素费用是“费用”的类别,是对生产费用按其经济内容的分类,系统预设了三种要素费用:材料费用、人工费用、折旧费用。要素费用的作用是用于费用的归集。 在进行成本系统初始化时,须指定每种要素费用“默认对应的成本项目”。 帮助顾客成功 - 9 -
第三节 系统参数设置 一、相关数据表 t_systemprofile Fkey 描 述 MatCalStyle 材料费用单价取价方法0-实际价,1-计划价 实际价:在成本计算时对计划成本法计价的物料耗用采用实际价; 计划价:在成本计算时对计划成本法计价的物料耗用采用计划价 MFeeBillPrice "计划成本法"计价的材料耗用单价取值0-实际价(缺省值),1-计划价 MFeeBillSource 材料耗用包括其它出库0-不包括(缺省值),1-包括 PSemiCancel 对半成品进行成本还原0-否(缺省值),1-是 对于有多道生产工序的产品,为真实反映最终产品的费用构成情况,可使用成本还原功能。 选中此项,则: 1)基础资料 “成本对象”属性页中“成本还原系数”功能可见; 2)在成本计算时,系统自动对半成品进行还原; 3)提供成本还原报表。 成本还原举例: 半成品A是产成品X的子项; 产成品X的制造成本为300元,按成本项目反映如下: 直接材料:100 ;直接人工:100;制造费用:100; 半成品A的成本为50元,按成本项目反映如下: 直接材料:30 ;直接人工:10;制造费用:10; 如果不选折成本还原,在成本报表中X的显示如下: 直接材料:100 ;直接人工:100;制造费用:100; 如果选折了成本还原选项,在成本报表中X的显示如下: 直接材料:80 ;直接人工:110;制造费用:110; IsRefreshStdPrice 期完工半成品标准成本刷新标准单价 标准成本计算中,本期完工半成品标准成本是否刷新对应自制物料的标准单价 QuoToItem 例:约当系数设到“成本对象-成本项目” 某自制件本期共负担费用90元,其中直接材料30元,直接人工30元,制造费用30元。完工入库的产成品数量为1个,另有1个在产品月末仍在车间进行生产。在产品的原材料的投入程度为,人工的投入程度为,其他费用的投入程度为。计算出完工产品和在产品的成本。 要分配 受益者数量约当系数 分配结果 单位成本的费用 1 直接材料:1 20 完工 直接人工:70 1 25 产品 直接材料:30 制造费用:1 25 直接人工:30 1 制造费用直接材料: 10 :30 直接人工: 5 在产品 20 制造费用: 5 帮助顾客成功 - 10 -
第四节 初始化 一、初始数据录入 初始化数据保存在cbInitBalance表,材料成本数据保存在cbCostObjDetail表中。 二、关闭初始化 (一) 关闭初始化处理过程 1)删除cbBalance 表中的数据; 2)从cbInitBlance 表向cbBalance表导数据: ==> ==> cbBalance .FBegBal 3)设置初始化关闭标志 update t_systemprofile set fvalue=1 where fcategory=’cb’ and fkey=’Closed’ (二) 关闭初始化处理过程补充说明 关闭初始化时,cbInitBlance表中累计数:FyearSum和FyearExp不会写入cbBalance,在日常查报表时,再到cbinitbalance 中取数。比如:初始化期间为5期,查询10月份的成本报表时,先从cbInitBlance得到初始化期间的累计数,然后从成本计算单取到本期发生数,一期一期向后累加,最后计算出截止到10月末的本年累计数。 在关闭初始化时,cbCostObjDetail表未做任何处理,该表数据不会写入其他数据表。在日常查询材料明细累计发生时,取数原理和cbInitBalance一样:先从cbCostObjDetail得到初始化期间的累计数,然后从cbCalinfoDetail取到本期发生数,一期一期向后累加得到本年累计数。 cbInitBalance只保存初始化期间的数据,只有两个动作会“写”这个表:1、初始数据录入;2、结转新帐套。在结转新帐套时,系统重新计算这个表的累计数,并重写。 cbCostObjDetail表既保存初始化期间的数据也保存初始化以后期间的数据。 三、反初始化 (一) 反初始化处理过程 反初始化仅将t_systemprofile表成本初始化状态值置为0: update t_systemprofile set fvalue=0 where fcategory=’cb’ and fkey=’Closed’ 四、初始化相关数据表 1. 初始数据表cbInitBalance 字 段 含 义 说 明 Fyear 会计年度 Fperiod 期间 FdepID 部门ID FCostObjID 成本对象ID FcostItemID 成本项目ID 帮助顾客成功 - 11 -
FOnlnQty 期初在产品产量 FYearQty 本年累计完工数量 FBegBal 期初在产品成本 FYearSum 本年累计发生费用 FYearExp 本年累计完工成本 FisImport 是否外部数据导入 0— 手工录入; 1—外部数据倒入 2. 材料初始数据表cbCostObjDetail 字 段 含 义 说 明 FYear 会计年度 FPeriod 期间 FDepID 部门ID FCostObjID 成本对象ID FCostItemID 成本项目ID FMaterielID 物料ID FBatchNo 批号 FPrice 单价 FQty 期初在产品材料数量 初始化期间:用户手工录入 非初始化期间:(上期) FSum 期初在产品材料金额 初始化期间:用户手工录入 非初始化期间:(上期) FSumInQty 本年累计发生材料数量 初始化期间-用户手工录入;非初始化期间-未使用此字段 FSumInAmount 本年累计发生材料成本 初始化期间-用户手工录入;非初始化期间-未使用此字段 FSumOverQty 本年累计完工材料数量 初始化期间-用户手工录入;非初始化期间-未使用此字段 FSumOverAmount 本年累计完工材料成本 初始化期间-用户手工录入;非初始化期间-未使用此字段 3. 余额表cbBalance 字 段 含 义 说 明 FYear 会计年度 FPeriod 期间 FDepID 部门ID FTypeID 类型ID 1-期初数量 2-期初金额 3-期末数量 4-期末金额 FCostID 成本项目ID FProductID 成本对象ID FQty 期初在产品产量 初始化期间: 非初始化期间:cbBalance. FOnlnQty(上期) FBegBal 期初在产品成本 初始化期间: 非初始化期间:(上期) FYearQty 本年累计完工数量 未使用 FYearSum 本年累计完工成本 未使用 FYearExp 本年累计投入 未使用 FEndBal 期末在产品成本 FOnlnQty 期末在产品产量 帮助顾客成功 - 12 -
第五节 分配标准 一、分配标准定义 (一) 分配标准定义处理流程 cbStandardUnit :分配标准单元表 ,系统预设的分配标准单元保存在此表中,用户自定义的单一分配标准保存在此表中。分配标准单元是建立复合分配标准的基础,通过定义分配标准单元元素的四则运算就得到了复合分配标准的计算公式。 cb_Bmstanard :分配标准表,保存系统预设的分配标准以及用户自定义分配标准。 cbOnlineStd :在产品分配标准表,不可维护。 1. 新增单一分配标准过程 (1)检查名称和代码在cb_BmStandard是否已存在,如果是则不允许保存; (2)检查名称在cbStandardUnit表中是否已存在,如果是则不允许保存; (3)增加CB_BmStandard(分配标准表)记录 ; (4)增加CBStandardUnit(分配标准单元)记录; 由于单一分配标准可作为分配标准单元,所以每新增一个单一分配标准, cbStandardUnit表会增加一条记录。 (5)根据cb_BmStandard表的Fnum更新cbStandardUnit表FstandardID字段值: 2. 新增复合分配标准过程 (1)检查名称和代码在cb_BmStandard是否已存在,如果是则不允许保存; (2)检查名称在cbStandardUnit表中是否已存在,如果是则不允许保存; (3)增加CB_BmStandard表记录 二、分配标准设置 分配标准设置就是建立“部门—要素费用”与“分配标准”之间的对应关系。 材料费用、其他要素费用、辅助费用、制造费用的分配标准设置都保存在cbStandardset表中。 废品费用分配标准保存在cbWasterStdSet表中。 由于在产品分配标准是按照成本对象设置的,即:建立“成本对象”与“分配标准”之间的“一对一”的对应关系,所以在产品的分配标准设置直接保存在成本对象表中。 三、分配标准数据录入 1. 哪些分配标准数据必须录入? 1)用户已经使用的分配标准所对应的分配标准单元必须录入其“分配标准数据”。 在分配标准设置功能中: ——如果用户使用了某一单一的分配标准,由于单一的分配本身也是分配标准单元,所以必须录入 此分配标准数据; ——如果用户使用了复合分配标准,那就要看此复合分配标准计算公式中涉及到哪些分配标准单元, 被此复合标准引用的分配标准单元也必须进行费用录入。 从分配标准设置相关表(部门间费用分配标准设置表、cbStandardSet、cbCostobj、 cbWasterStdSet )可知道哪些标准已经被使用。 帮助顾客成功 - 13 -
2)对于投入产量、完工产量、废品产量、在产品产量等产量录入,其作用在成本系统不仅是分配标准单元,而且还是成本计算的依据。所以,即使分配标准设置未引用到此分配标准单元,也必须根据实际数量进行录入。 2. 分配标准数据录入对照表 分配标准录入就是按“系统预设的分配标准单元以及用户自定义的分配标准单元”录入各种分配标准的数值。用户自定义的分配标准单元就是用户自己增加的单一分配标准。 分配标准单元 录入的分配标准数据 录入口 名 称 保 存 位 置 期初在产品产量 系统自动获取,不用录入。 本期投入产量 产量录入—投入产量录入 cbInqty 本期实际完工产量 产量录入-完工产量录入(产品入库单) Icstockbill(Entry) Ftrantype=2 期末在产品产量 产量录入-在产品盘点产量录入 cbCostObjCheck 材料定额 BOM维护 可修复废品产量 废品产量录入 cbWasterCostObjInfo 不可修复废品产量 废品产量录入 cbWasterCostObjInfo 固定金额 分配标准数据录入 CbRationStandardInfo 固定比例 分配标准数据录入 CbRationStandardInfo 实际总工时 分配标准数据录入 CBManHourInfo 约当系数 分配标准数据录入 CbRationStandardInfo 一般耗用工时 分配标准数据录入,用途选择“一般耗用” CBManHourInfo 修复废品好用工时 分配标准数据录入,用途选择“修复废品 CBManHourInfo 用户自定义的 分配标准数据录入 CbRationStandardInfo 单一分配标准 分类法 分类法分配标准数据录入 cbSortStandardInfo 副产品 副产品分配标准数据录入(录入金额,以次金额CbDeputyInfo 作为副产品成本从总成本中扣减,剩余部分为标准产品成本) 从上表可见,分配标准的数据的录入工作分散在各个功能中。产量录入部分请参考第六节《产量录入》。本节只介绍CbRationStandardInfo表所涉及的数据录入。 3. 录入分配标准数据的过程 1)投产检查:检查该成本对象在该部门本期是否有投产,如果没有则数据不允许保存。 判断成本对象在cbInqty表中本期是否有数据、判断成本对象在cbBalance表本期是否存在期初数量,二者满足其一,则该成本对象本期有投产。 2)部门检查 在录入分配标准数据时,系统只允许录入“基本生产车间(=361)”的分配标准数据。 3)增加分配标准数据表记录 录入的是工时信息,则保存到CBManHourInfo; 录入的是约当系数,则保存到cbSortStandardInfo...等。 具体数据保存位置请参考“分配标准数据录入对照表”。 4. 分配标准数据的结转 期末结帐时,分配标准数据会自动结转到下期。 帮助顾客成功 - 14 -
四、分配标相关数据表 1. 分配标准单元表 cbStandardUnit 字 段 含 义 描 述 FItemID 分配标准单元内码 费用分配时引用此ID Fname 名称 FNumber 编码 FIsSys 是否系统预设 FItemID<=8 以及FitemID>= 70001 为系统预设 FStandardID 分配标准内码 来自Cb_bmStandard . Fnum ,仅对FisSys=0的记录有效 2. 分配标准表 cb_BmStandard 字 段 含 义 描 述 Fnum 流水号 被子表CbStandardSet的 FstandardID字段引用 FID 代码 Fname 名称 Fonline 按约当系数 Fcomplex 是否符合标准 Fformula 公式 复合标准才有计算公式 Fsys 是否系统预设 Fnum<=4 为系统预设 3. 分配标准数据录入 CbRationStandardInfo 字 段 含 义数 据 来 源 Fyear 会计年度 Fperiod 期间 取t_Department , FCostAccountype=361 FDeptID 部门内码 取cbCostobj FCostObjID 成本对象内码 取cbCostItem FCostItemID 成本项目内码 负数:取 * -1 FStandardID 分配标准内码 正数:取 用户手工录入 Fqty 分配标准数值 4. 分配标准设置表 Cbstandardset 字 段 含 义 数据来源 FdeptAll 是否统一设置 1:统一,0:分部门 FDeptID 部门内码 取t_Department . FCostAccountType=361 FExpID 要素费用内码 -1 :辅助费用; -2 :制造费用 1 :材料费用,即 其他值:其他要素费用,即cbExpense . FItemid FserviceID 劳务内码 取cbService . FitemID FstandardID 分配标准内码 取cb_BmStandard . Fnum 5. 废品费用—分配标准设置表 cbWasterStdSet,表结构和Cbstandardse相同。 帮助顾客成功 - 15 -
6. 在产品分配标准设置 CbCostobj 字 段 含 义 数据来源 FItemID 成本对象Id FstdID 在产品分配标准 取cbOnlStd . FitemID FstdSubID 下设标准 取cb_Bmstandard . FNum … 帮助顾客成功 - 16 -
第六节 产量录入 一、投入产量录入 (一) 投入产量在成本管理中的作用 投入产量就是指本期各种自制件的投产数量。可以手工录入,或从计划模块引入生产任务单中开工日期为当前期间、且已下达的生产任务单的下达数量。 其作用是—— z 投入产量信息是分配标准单元<投入产量>的数值来源; z 录入各种费用单据时(除材料费用:生产领料单),发生生产费用的车间至少有一种产品有投产数量,否则费用单据不允许保存; z 在费用分配时,费用分配时,仅在本期有投入产量的成本对象之间进行分配。所以一个成本对象,如果未录入投入产量,就不能负担任何费用,即使该产品本期有完工数量。 z 在成本计算时,仅处理本期有投入产量的成本对象。所以一个成本对象如果本期未投产,就不能负担任何成本。 (二) 如何判断一个成本对象在本期是否有投产 满足下述两个条件之一,表明该成本对象本期有投产。 1) 判断cbInQty中是否有该成本对象的本期投产信息; 2) 判断cbBalance中该成本对象是否有期初在产品产量。 二、完工产量录入 完工产量就是本期自制件的完工入库数量,即:产品入库单。可以在仓存系统录入,也可以在成本系统录入。产品在一个车间的完工数量不能为负。 三、在产品盘点产量录入 在产品盘点产量录入界面中,有“期末在产品帐存量”和“期末在产品盘点数”两个列。如果用户未录入盘点数,则系统将盘点数默认等于帐存数。成本计算过程以及成本报表都是以“期末在产品盘点数”为准。期末在产品帐存数的计算公式如下: 期末末在产品帐存数= 期初在产品数量 + 本期投入产量 – 本期完工产量 –本期废品转出产量 其中—— z 期初在产品数量取 z 本期投入产量取 z 本期完工产量取,=2 因为IcStockBill(Entry)是按物料ID来反映的完工产量,而成本系统要求按成本对象ID来 反映完工产量。所以,此处在取数时还要将IcStockBill(Entry)中物料的完工产量转换为成本对 象的完工产量。 z 本期废品转出产量取 ,FwasterTypeID=1 因为可修复废品(FwasterTypeID=0)的产量已经包含在本期完工产量中,所以“本期废品转 出产量”只取本期不可修复废品数量。 帮助顾客成功 - 17 -
四、劳务耗用量录入 通过劳务耗用量录入指明了辅助生产车间为那些基本生产车间提供了劳务,以及提供劳务的数量。劳务耗用量数据保存在cbAssExpenseInfo表中。这个表既是劳务耗用量录入表,也是辅助生产费用一次分配表。参考《费用分配-辅助生产费用分配—相关数据表》。 劳务耗用量录入界面中的“用途”有两个选项:一般耗用和修复废品耗用。区别是:用途为“一般耗用”的单据在“费用分配――辅助生产费用分配”中进行处理,而用途为“修复废品耗用”的单据在“废品处理――辅助生产费用分配”中进行分配。 五、产量录入相关数据表 1. 投入产量 cbInQty 字 段 含说 明 义 + 1 FInterID 单据ID 系统自动分配,用户不能手工修改。 FBillNo 单据号码 FDate 日期 FYear 会计年度 FPeriod 会计期间 =361 FDeptID 部门ID 只有部门属性为“基本生产部门”的部门才允许录入投入产量 FCostObjID 成本对象ID FQty 数量 FIsImport 是否外部数据引入 2. 期末在产品盘点产量 cbCostObjCheck 字 段 含 明 义说 Fyear 会计年度 Fperiod 会计期间 FdeptID 部门ID FCostObjID 成本对象ID Fqty 在产品数量 帮助顾客成功 - 18 -
第七节 费用录入 一、材料费用录入 ( 1 )仓存系统出库单中,只有生产领料单参与产品成本计算 材料费用录入,就是录入生产领料单。仓存系统出库单有多种事务类型:生产领料、其他出库、盘亏出库、销售出库、委外加工出库、赠品出库、调拨出库。其中只有生产领料单(=24)被视为生产费用,参与产品成本计算。 ( 2 )生产领料单——领料部门 非生产车间领料不是用于生产,应做其他出库单。非生产车间即使做了生产领料单,也不参与成本计算。在进行费用分配时,系统只处理部门属性为“基本生产车间”和“辅助生产车间”( IN (361,362))的生产领料单。 如果领料部门为辅助生产车间,则不用指定成本对象。因为K3中一个辅助生产车间只提供一种劳务,系统自动将领料单金额记入该车间所提供的劳务成本。 ( 3 )生产领料单——领料类型 生产领料单的领料类型有三种: 1)一般领料 (=12000); 2)修复废品领料(=12001); 3)残值退料 (=12002); 领料类型为“一般领料”的单据在“费用分配――材料费用分配”中进行处理,而领料类型为“修复废品领料”的单据在“废品处理――材料费用分配”中进行分配。 残值退料类型仅在录入红字领料单时才可见。残值退料是指不可修复废品经过拆卸等处理,还有一部分材料可以继续使用,这部分材料要退回仓库以备下次生产使用。 不可修复废品的净损失被完工产品成本负担。计算公式为: 不可修复废品净损失 = 不可修复废品成本 - 残值退料价值 – 索赔收入 残值退料时,成本对象必须指定到具体的产品。即:残值退料单成本对象不能指定为“转入制造费用”、“共耗费用”、或不指定成本对象。 ( 4 )生产领料单——投产检查 生产领料单在录入时候不做投产检查。 ( 5 )生产领料单——成本对象 生产领料单单据头上的成本对象是指材料费用的“受益者”或“受益范围”。费用单据上的成本对象有三种: 1、具体的成本对象:品种法、分步法、分类法、分批法成本对象; 2、转入制造费用 3、共耗费用 三者区别是: z 如果费用单据指定了具体的成本对象,则属于直接记入费用,意味这该次领料只用于生产一种 产品。无论该成本对象的BOM中是否包含被领用的物料,系统都直接将该领料单的金额记入成本 对象的成本。 z 如果所领的材料用于生产多种产品,且材料属于产品的构成,则成本对象应指定为“共耗费用”, 帮助顾客成功 - 19 -
该笔费用在“材料费用分配”功能中进行分配。取“分配标准设置——共耗材料费用分配标准设 置”为依据进行费用分配。 z 如果所领的材料不属于产品的构成部分,但有助于产品的形成,则成本对象应指定为 “转入 制造费用”。该笔费用在“制造费用分配”功能中进行分配,取“分配标准设置——制造费用分配 标准设置”为依据进行费用分配。 z 如果生产领料单未指定成本对象,系统按“共耗费用”处理。 z 如果生产领料单指定成本对象为“具体的成本对象”或“共耗费用”或未指定成本对象,则此 生产领料单帐务处理方式为: 借:生产成本 贷:原材料 z 如果生产领料单指定成本对象为“转入制造费用”则此生产领料单帐务处理方式为: 借:制造费用 贷:原材料 借:生产成本 贷:制造费用 二、人工费用录入、折旧费用录入、其他费用录入 这些费用单据的主要信息相同,这里统一解释—— ( 1 )人工、折旧、其他费用单据——部门 发生费用的部门的“部门核算类型”决定该笔费用是否记入成本。在进行费用分配时,系统只处理部门属性为“基本生产车间”和“辅助生产车间”( IN (361,362))的费用单据。 如果部门为辅助生产部门,则费用单据不用指定成本对象。因为K3中一个辅助生产车间只提供一种劳务,系统自动将费用单据金额直接记入该车间所提供的劳务成本。 ( 2 )人工、折旧、其他费用单据——用途 (生产领料单为领料类型) 人工、折旧、其他费费用单据的用途有两种: 1)一般耗用; 2)修复废品耗用; 用途为“一般耗用”的单据在“费用分配”功能中进行处理,而用途为“修复废品耗用”的单据在“废品处理费用分配”功能中进行分配。 ( 3 )人工、折旧、其他费用单据——投产检查 的费用单据在保时系统要做投产检查,判断费用单据指定的成本对象是否投产,本系统不处理没有投入产量信息但有费用发生的成本对象的费用单记录,这些单据将不参加费用分配和成本计算。 ( 4 )人工、折旧、其他费用单据——成本对象 参考材料费用录入。 ( 5 )人工、折旧、其他费用单据——要素费用代码 录入人工、折旧费用时对应的要素费用已知,不需指定要素费用代码。 录入其他费用时,需要指定用户自定义的要素费用用代码。 帮助顾客成功 - 20 -
三、费用录入相关数据表 1. 材料费用录入 IcStockBill 字 段 含 义说 明 FInterID 单据ID FTrantype=24 为生产领料单 FTranType 单据类型ID 只有本期的单据才能够进行费用分配 Fdate 日期 关联,只有 FdeptID 部门ID IN(361,362)的部门才记入生产成本 1-蓝字;-1-红字 。残值退料时,必须选择红字单据 FROB 红/蓝字 FCheckerID 审核人 费用分配前,本期有完工的自制件的生产领料单不能做凭证。 FVchInterID 凭证ID FCostOBJID 成本对象ID FCostOBJName 成本对象名称 1200 –一般领料 ;1201 - 修复废品领料;1202 - 残值退料 FPurposeID 领料类型 … 2. 人工、折旧、其他费用录入 cbCostExpenseInfo 字说 明 段 含 义 IcMaxNum FInterID 单据ID 系统自动分配,用户不能更改。 FBllNo 单据号码 FDate 单据日期 FYear 会计年度 FPeriod 会计期间 FExpID 要素费用ID FDeptID 部门ID FCostObjID 成本对象ID FCostItemID 成本项目ID FExpAcctID 费用科目ID FExpTypeID FPayAcctID 工资科目ID Famount 金额 FVchInterID 凭证ID 0-一般耗用;1-修复废品耗用;2-辅助生产部门耗用 FPurposeID 用途 FNote 备注 帮助顾客成功 - 21 -
第八节 费用分配 一、费用分配功能总体介绍 (一) “费用分配功能—分配对象”对照表 费用分配功能的分类 分配的对象 费用单据 部门 用途 成本对象 材料费用分配 本期的生产领料单 基本生产车间 一般耗用 非“转入制造费用” 其他费用分配 本期的除生产领料单基本生产车间 一般耗用 非“转入制造费用” 以外的费用单据 辅助费用分配 本期所有费用单据 辅助生产车间 一般耗用 -- 制造费用分配 本期所有费用单据 基本生产车间 一般耗用 “转入制造费用” 废品材料费用分配 本期的生产领料单 基本生产车间 修复废品用 非“转入制造费用” 废品其他费用分配 本期的除生产领料单基本生产车间 修复废品用 非“转入制造费用” 以外的费用单据 废品辅助费用分配 本期所有费用单据 辅助生产车间 修复废品用 -- 废品制造费用分配 本期所有费用单据 基本生产车间 修复废品用 “转入制造费用” (二) 理解 “分配标准数值” 在费用分配过程中,“分配标准数值”是一个重要的概念,具体含义见下例。 例1: 单一标准——按“产量”分配 要分配的费用 分配标准 成本对象 产量 分配标准数值分配结果 1 个 20 A产品 1 生产领料单: 产品产量 X物料100元 4 个 80 B产品 4 例2:复合标准——按“产量*定额”分配 X物料在 要分配的费用 分配标准 成本对象 产量各产品 分配标准数值分配结果 中的定额1 个10 50 A产品 1 * 10 = 10 生产领料单: 产量 * 定额 X物料100元 4 个 50 B产品 4 * = 10对于单一分配标准,用户录入的分配标准数据就是分配标准数值;对于复合分配标准,分配标准数值是通过分配标准公式计算得出。 无论是那一种分配标准,其本质都是按分配标准数值比例进行费用分配。 帮助顾客成功 - 22 -
二、材料费用分配 (一) 材料费用分配总体流程 对材料费用:IcStockbill(Entry)进行分配,分配结果写入材料费用分配表:cbMakeDistributeInfo。 材料出库核算 费用分配前的检查及准备工作 z 刷新新增部门的分配标准 z 成本对象投产检查 z 检查生产领料单是否已记帐 z 清除上次分配结果 分配直接材料费用 材料费用分配表 直接费用不需分配,直接将单据 cbMaterIelInfo 上面的金额作为成本对象负担的费用 即:将IcStcokBill(Entry)直接写入材料费用分配 表:cbMaterielInfo 分配间接材料费用 按部门循环,每次处理一个部门的生产领料单记录: z 计算出该部门各成本对象的分配标准数值 z 计算各成本对应负担到的成本 z 计算结果写入材料费用分配表 图:材料费用分配 (二) 材料费用分配的处理流程 --********** 注:1~ 4 步骤为费用分配前的检查及准备工作 ********************************** 1. 刷新新增部门的分配标准 用户在新增部门后,可能没有重新进行分配标准设置。如果分配标准设置的方式是所有部门“统一设置”,那么在费用分配时,系统根据其他部门的分配标准在cbStandardSet表中自动添加新增部门的分配标准设置信息。如果分配标准是“按部门”设置,那么用户必须手工设置,系统不会自动刷新。 2. 成本对象投产检查 此步骤检查直接材料费用单单据头指定的成本对象本期是否有投入产。 直接材料费用:在费用单据的单据头上直接指定了产品成本对象,而不是“转入制造费用”或“共耗费用”、也不为空—成本对象为空时,系统默认为“共耗费用”。 帮助顾客成功 - 23 -
判断生产领料单是否是直接费用: Not in ('MaterielMakeID','MaterielShareID','') 判断成本对象本期间是否投产: (1) 判断cbInQty中是否有该成本对象的本期投产信息; (2) 判断cbBalance中该成本对象是否有期初在产品产量。 满足上述条件之一,表明该成本对象本期有投产。否则,这种单据不能进行费用分配,程序不中断,但在最终的费用分配报告中会报错: “XXX单据指定的成本对象本期在XXX车间未投产”… 3. 检查生产领料单是否已记帐 判断方法: 存在于t_Voucher中,且='Cost'。 如果单据已记帐,程序中断,提示:“已存在材料费用生成凭证,不能进行费用分配”。 系统这样控制的原因是:如果领料单已记帐,单据单价不允许回填。如果领用的物料是本期有完工的自制件,其成本计算的顺序是: (1) 成本系统计算出自制件的制造成本; (2) 根据制造制造成本更新入库成本; (3) 根据入库成本计算发出成本。 也就是说在领用本期有完工的自制件时,还不能确定其发出成本。 4. 删除材料费用分配表: cbMaterielInfo本期数据 Delete FROM cbMaterielInfo WHERE FYear=xxxx AND FPeriod= y --********** 注:5~ 6 步骤为:处理直接材料费用 ************************************* 5. 判断本期是否存在直接材料费用,如果不存在,执行第(7)步。 判断IcStockBill表本期数据,满足以下条件的单据就是直接材料费用单据: (1) 已审核、未作废、领料类型为一般耗用的领料单: Ftrantype=24 AND FCancellation=0 AND >0 AND FPurposeID=12000 (2) 成本对象不是“转入制造费用”和“共耗费用”、成本对象不为空: Not in ('MaterielMakeID','MaterielShareID','') 6. 将直接材料费用单据信息:IcStcokBill(Entry)直接写入材料费用分配表:cbMaterielInfo 直接费用不需分配,直接将单据上面的金额作为成本对象负担的费用: ==》cbMaterielInfo .FCostObjID 成本对象ID t_IcItem. FCostProject ==》cbMaterielInfo .FCostItemID 成本项目ID IcStockBillEntry. FItemID==》cbMaterielInfo .FItemID 材料ID ==》cbMaterielInfo .FPrice 分配单价 ==》cbMaterielInfo .FQty 分配数量 ==》cbMaterielInfo .FAmount 分配金额 在导数据过程中,IcStockbillEntry关联t_Icitem表,将物料默认对应成本项目写入cbMaterielInfo. FcostItemID。但是如果物料未指定默认对应成本项目,则字段为空,还要根据要素费用对应的成本项目:更新 --**********注:7~ ?? 步骤为:处理间接材料费用************************************** 7. 开始部门循环; 8. 判断该部门是否存在间接材料费用 判断方法:IcStockBill. FCostObjName IN ( 'MaterielMakeID', 'MaterielShareID','' ) 如果此部门不存在间接材料费用,返回第7步,继续处理下一个部门的数据。 帮助顾客成功 - 24 -
间接材料费用:在领料单单据的单据头上指定的成本对象是“转入制造费用”或“共耗费用”、或者未指定成本对象。 9. 部门投产检查 判断该部门本期间是否投产: (1) 判断cbInQty中是否有该部门的本期投产信息; (2) 判断cbBalance中该部门是否有期初在产品产量。 该部门至少有一个成本对象投产,否则跳过此部门(该部门的所有领料单都不能分配),返回到第7步,继续处理下一个部门的数据。 10. 提取该部门可参与费用分配的所有记录,写入待分配数据表:#Result #Result表结构 字 段数 据 来 源 含 义 FInterID 领料单ID FentryID 领料单分录ID 领料单分录如果是自制件,此自制件对应的成本对象ID FselfCostObjID 物料对应成本对象ID 注意:这个成本对象ID不是领料单单据头上的成本对象IDt_Icitem获得 FqtyDecimal 数量精度 t_IcItem获得 FcostItemID 成本项目 Fqty 领料单数量 Fprice 领料单单价 Famount 领料单金额 从IcStockBill(Entry)中提取数据,满足下列条件的单据才能参与分配: IcStockBill .FDate>= '2003-09-01' AND FDate< '2003-10-01' --本期 . FTrantype=24 --领料单 . FCancellation=0 --未作废 . FStatus>0 --已审核 . FdeptID=361 --领用部门为:基本生产车间 . FCostObjName Not in ('MaterielMakeID') -- 成本对象不为“转入制造费用” . FPurposeID=12000 --领料类型为:一般耗用 . FDepID= xx --提取一个部门的数据 如果选择中“材料费用分配时只分配尚未分配费用”项,则还会加一个条件: AND not exists (Select * From cbMaterielInfo where FYear=2003 AND FPeriod=9 AND FInterID= AND FEntryID=) 待分配的费用:#Result FInterID FentryID FSelfCostObjID FQtyDecimalFCostItemIDFQtyFprice FAmount 1201 1 网卡 4 直接材料 3 100 300 1201 2 4 直接材料 40 100 4000 11. 要要素费用默认对象的成本项目更新# 只更新为成本项目为零的记录。 帮助顾客成功 - 25 -
12. 从cbStandardSet表中根据部门和要素费用找到分配标准内码:FStandardID; 13. 根据FStandardID 从 cb_BmStandard 表中得到该标准的分配公式:FFormula ; 比如cb_BmStandard .Fformula的值为: ~#d~@=~#a~@*~#b~@+~#c~@ 计算公式实际为:d = a * b + c ,其中 a、b、c是用户自定义的单一分配标准。 14. 解析计算公式,从计算从公式中分离出各个分配标准单元:a、b、c SELECT FName FROM cbStandardUnit WHERE '~#a~@*~#b~@+~#c~@' Like '%~#' + FName + '~@%' 15. 根据分配标准单元a、b、c创建临时表:#OnlineCostObj,FQty字段代表分配标准数值,Fquotiety字段代表费用分配百分比。这个表的主要作用是计算各个成本对象的分配标准数值,为最后的费用分配做准备。 #OnlineCostObj FcostObjID FdeptID FcostItemID a b c Fqty Fquotiety 16. 确认哪些成本对象可以负担费用 将当前期间该部门有投入产量的成本对象写入#OnlineCostObj #OnlineCostObj FcostObjID FdeptID FcostItemID a b c Fqty Fquotiety 家用电脑 一车间 直接材料 办公电脑 一车间 直接材料 打 印 机 一车间 直接材料 网 卡 一车间 直接材料 17. 用CBRationStandardInfo表中的数据来更新#OnlineCostObj表 a、b、c 三列数据,并计算出分配标准数值:Fqty= a * b + c UpDate t1 SET = FROM #OnlineCostObj t1 inner join CBRationStandardInfo t2 ON (= AND = AND =0) WHERE =2003 AND = 9 AND = 6 #OnlineCostObj FcostObjID FdeptID FcostItemID a b c Fqty Fquotiety 家用电脑 一车间 直接材料 2 3 4 10 办公电脑 一车间 直接材料 4 5 0 20 打 印 机 一车间 直接材料 0 7 0 0 网 卡 一车间 直接材料 0 0 10 10 说明:用什么表来更新#OnlineCostObj要看具体的分配标准单元—— 如果分配标准单元是实际总工时,则用CBManHourInfo表中的数据来更新#OnlineCostObj ; 如果分配标准单元是投入产量,则用cbInQty表中的数据来更新#OnlineCostObj ; 如果是自定义的分配标准,则用CBRationStandardInfo表中的数据来更新#OnlineCostObj 参考:标准数据录入对照表 18. 删除#OnlineCostObj表中分配标准数值(FQty)为零的数据,并结算出费用分配百分比(Fquotiety) 分配标准数值为零的成本对象不能负担费用:Delete #OnlineCostObj where Fqty=0 帮助顾客成功 - 26 -
对分配标准数值求和:SELECT isNull(SUM(FQTY),0) FROM #OnlineCostObj 计算出费用分配百分比:Update #OnlineCostObj Set FQuotiety=FQty/40 #OnlineCostObj FcostObjID FdeptID FcostItemID a b c Fqty Fquotiety 家用电脑 一车间 直接材料 2 3 4 10 办公电脑 一车间 直接材料 4 5 0 20 网 卡 一车间 直接材料 0 0 10 10 19. 创建临时表#MaterielInfo 此表结构与cbMaterielInfo结构相同,是cbMaterielInfo的模拟表。参考:材料费用分配表 20. 分配间接费用 INSERT INTO #MaterielInfo (FInterID, FEntryID, FCostObjID, FStdID, FStandardData, FQty, FAmount, FCostItemID) SELECT , , , 9 AS Expr1, , ROUND( * , ) AS Expr2, ROUND( * , 2) AS Expr3, FROM [#Result] t1 Cross join #OnlineCostObj t2 WHERE <> 待分配的费用:#Result FInterID FentryID FSelfCostObjID FQtyDecimalFCostItemIDFQtyFprice FAmount 1201 1 网卡 4 直接材料 3 100 300 1201 2 4 直接材料 40 100 4000 分配标准数值:#OnlineCostObj FcostObjID FdeptID FcostItemID a b c Fqty Fquotiety 家用电脑 一车间 直接材料 2 3 4 10 办公电脑 一车间 直接材料 4 5 0 20 网 卡 一车间 直接材料 0 0 10 10 分配结果:#MaterielInfo FInterID FentryID FCostObjID FCostItemIDFStdID FStandardData FQty FAmount 1201 2 家用电脑 直接材料 9 10 10 1000 1201 2 办公电脑 直接材料 9 20 20 2000 1201 2 网 卡 直接材料 9 10 10 1000 1201 1 家用电脑 直接材料 9 10 1 100 1201 1 办公电脑 直接材料 9 20 2 200 说明: 待分配的费用:#Result 中每一笔费用被分配到#OnlineCostObj表中的每个成本对象中,所以这两个表用Cross join交叉连接,得到的结果是二者的笛卡尔积,并将结果写入费用分配结果表:#MaterielInfo 。 上述#Result和#MaterielInfo表的笛卡尔积应该是6条记录,但是分配结果表#MaterielInfo中只有5条记录,原因是: “网卡”是自制件,一车间既生产网卡又领用网卡,为了避免自己耗用自己的情况,费用分配时加了一个条件:<>,过滤掉了“网卡” 耗用“网卡”的记录。 21. 对分配结果进行调差 调差方法: 比如 100元分配到 X和Y两个成本对象中:X负担到成本元,Y负担到成本元。 帮助顾客成功 - 27 -
分配后的总费用 元与分配前的总费用有一个差额。程序自动把元的差额放到#MaterielInfo表中FcostObjID值最小的成本对象X中,调差额后的结果为: X负担到成本元。 数量调差同理。 22. 将#MaterielInfo数据导入材料费用分配表:cbMaterielInfo 23. 返回第 7 步,继续处理下一个部门的数据。 三、其他费用分配 对其他费用表:CbCostExpenseInfo的费用单据进行分配,分配结果写入其他费用分配表:cbExpenseDistributeInfo。 参与分配的单据的条件参考:“费用分配功能 — 分配对象”对照表。 分配原理同材料费用分配。 四、制造费用分配 对材料费用:IcStockbill(Entry) 和其他费用:CbCostExpenseInfo进行分配,分配结果写入制造费用分配表:cbMakeDistributeInfo。 参与分配的单据的条件参考:“费用分配功能 — 分配对象”对照表。 分配原理同材料费用分配。 五、辅助生产费用分配 辅助生产费用分配分两步进行: 第一步:用代数分配法计算出单位劳务成本,再将辅助生产车间发生的所有费用分摊到各受益部门。分配结果写入辅助生产费用一次分配表:cbAssExpenseInfo ; 第二步:将基本生产车间负担到劳务成本分配到基本生产车间的各个成本对象中。并将分配结果写入辅助生产费用二次分配表:cbAssistDistrbuteInfo 。 (一) 辅助生产费用的一次分配 1. 用代数分配法计算出辅助生产成本 z 确定辅助生产车间本期发生费用 从材料费用耗用表:IcStockBill(Entry)和其它费用耗用表:cbCostExpenseInfo中得到辅 助生产车间所发生的费用。判断依据是: IcStockBill和cbCostExpenseInfo的的部门属性为辅助 生产车间。 z 确定辅助生产车间的为谁提供了劳务、提供了多少 从劳务耗用量表cbAssExpenseInfo中得到辅助生产车间为那些部门提供了劳务(cbAssExpenseInfo. FuseDeptID ),以及提供劳务的数量( )。 z 计算出劳务的单位成本 例:一车间是基本生产车间,维修车间、供电车间是辅助生产车间。本期劳务耗用如下表: 辅助生产车间 辅助生产车间 辅助生产车间的为谁提供了劳务、本期发生的费用 提供了多少 维修车间 10000 为供电车间提供维修:2小时; 为一车间提供维修:3小时; 供电车间 20000 为维修车间供电:100 KW; 为一车间供电:200 KW; 帮助顾客成功 - 28 -
设:维修单位成本为 X元 ,电单位成本为Y元,则: 10000 + 100 * Y = X *(2 + 3 ) 20000 + 2 * X = Y *(100+200) 求得: X = 5000 Y = 150 这个计算结果看上去有问题:X * (2+3) <> 10000 、 y * (100+200) <> 2000 。原因是:如果仅维修车间和供电车间相互提供劳务,X、Y不会有问题。但是维修和供电车间又为一车间提供劳务(第三变量),导致劳务成本虚增。 但是这种算法能够保证基本生产车间所负担到成本是正确的: 3 X + 200 Y = 10000+ 20000 。 2. 根据计算得出的劳务的单位成本更新辅助生产费用一次分配表:cbAssExpenseInfo 在此步骤只更新cbAssExpenseInfo表的 Fprice和Famount字段。 3. 调差 由于小数的四舍五入,分配前的费用与分配后的费用()可能不等。 调整方法是将差额加到最小的基本生产车间中。 cbAssExpenseInfo … FYear FPeriod FDeptID FuseDeptIDFServiceIDFQty FPrice Famount … 2003 9 维修 供 电 维修 2 5000 10000 2003 9 维修 一车间 维修 3 5000 15000 2003 9 供电 维 修 电 100 150 15000 2003 9 供电 一车间 电 200 150 15000 这部分数据是在“产量录入—劳务耗用量录入”功能中录入的 这部分数据是在“辅助生产费用一次分配”后系统自动更新的 说明: cbAssExpenseInfo既是产量录入—劳务耗用量表,也是辅助生产费用一次分配表。 (二) 辅助生产费用的二次分配 待分配的费用:cbAssExpenseInfo表中受益部门:FuseDeptID为基本生产车间的记录。 分配标准:取“费用分配标准设置—辅助生产费用分配标准设置”,=-1 。 分配原理同材料费用分配。 分配结果写入辅助生产费用二次分配表:cbAssistDistrbuteInfo 。 六、废品费用分配 分配原理与一般耗用费用分配相同。 七、费用分配相关表 1. 材料费用分配表 cbMaterielInfo 字 段 含 义 数 据 来 源 Fyear 会计年度 帮助顾客成功 - 29 -
Fperiod 期间 FitemID 物料内码 FcostObjID 直接材料费用: 间接材料费用:本部门本期有投产的、分配标准数值成本对象内码 不为零成本对象 FInterID 领料单码 FentryID 领料单分录 FstdID 分配标准 FcostItemID 先取,如果取不到则取 成本项目 Fstandarddata 费用分配过程计算得出 分配标准数据 Fprice 费用分配过程计算得出 单价 Fqty 费用分配过程计算得出 分配数量 Famount 费用分配过程计算得出 分配金额 2. 废品损失材料费用分配表 cbWMaterielInfo,表结果与cbMaterielInfo相同。 3. 其他费用分配表 cbExpenseDistributeInfo 字 段 含 义 数 据 来 源 Fyear 会计年度 Fperiod 期间 FInterID 单据内码 FCostObjID 成本对象内码 Famount 计算得出 分配金额 FcostItemID 先取cbCostExpenseInfo. FcostItemID,如果取不到成本项目ID 则取 Fstandarddata 分配标准数值 FstandardID 分配标准cbStandardSet. FStandardID ID 4. 废品损失其他费用分配表 cbWExpenseDistributeInfo,表结构与cbExpenseDistributeInfo相同。 5. 制造费用分配表 cbExpenseDistributeInfo 字 段 含 义 数 据 来 源 FYear 会计年度 FPeriod 期间 FDeptID 部门ID FStandardID 分配标准 ID FCostObjID 成本对象ID FStandardData 计算得出 分配标准数值 FAmount 计算得出 分配金额 FCostItemID 先取费用单据的FcostItemID,如果取不到则取成本项目ID 6. 废品费用制造费用分配表 cbWExpenseDistributeInfo,表结构和cbExpenseDistributeInfo相同。 帮助顾客成功 - 30 -
7. 辅助生产费用一次分配表 cbAssExpenseInfo 字 段 含 义 数 据 来 源 FInterID 单据ID FBillNo 单据号码 FDate 日期 FYear 会计年度 FPeriod 会计期间 FDeptID =362 提供劳务部门ID FUseDeptID IN (361,362,363)受益部门ID FServiceID 劳务ID FQty 提供劳务数量 FPrice 一次费用分配后,系统计算得出。 劳务单位成本 FAmount 一次费用分配后,系统计算得出。 劳务成本 FPurposeID 0- 一般耗用 用途 1- 修复可修复废品耗用 FIsImport 是否外部数据引入 8. 辅助生产费用二次分配表 cbAssistDistrbuteInfo 字 段 含 义 数 据 来 源 FYear 会计年度 FPeriod 会计期间 FServiceID 劳务cbAssExpenseInfo. FServiceID ID FStandardID 取“费用分配标准设置—辅助生产费用分配标准设分配标准ID 置”,=-1 FStandardData 计算得出 分配标准数值 FDeptID 受益部门ID: 部门ID FCostObjID 受益部门分配标准数值>0的成本对象 成本对象ID FQty 基本生产车间成本对象负担到的劳务数量 分配数量 FAmount 基本生产车间成本对象负担到的劳务成本 分配金额 FCostItemID 成本项目ID 9. 废品损失辅助生产费用二次分配表 cbWAssistDistrbuteInfo,表结构与cbAssistDistrbuteInfo相同。 10. 残值退料表 残值退料费用分配表 cbWBMaterielInfo 字 段 含 义 数 据 来 源 Fyear 会计年度 Fperiod 期间 FitemID 物料内码 FcostObjID 成本对象内码 FInterID 残值退料单ID FEntryID 残值退料单分录ID FCostItemID 先取,如取不到则取cbCostItem残值退料 中第一个标准成本项目为“直接材料”的成本项目。 FPrice 单价 Fqty 数量 帮助顾客成功 - 31 -
FAmount 金额 八、费用分配总结 费用分配完毕,分配结果写入费用分配表中。但是各费用分配表中有一部分数据是错误的——生产领料如果是本期有完工的自制件,那么其费用分配表中分配金额是错误的,分配数量、分配系数是正确的。 费用分配完毕,各费用分配表中的FCostItemID字段不能为NULL值或为零。 帮助顾客成功 - 32 -
第九节 成本计算 一、成本计算总体介绍 成本计算前的合法性检查 IcStockBillEntry 本期无完工有领料半成品出库核算, cb(W)MaterielInfo 更新库存单据及费用分配表 或cb(W)MakeDistributeInfo 或cb(W)AssistDistrbuteInfo 成本计算前的其他准备工作 分析成本对象的计算步骤 开始按生产步骤循环:FOR I=1 to MaxLevel 成本计算的结果 z 根据费用分配表计算出成本对象的投入总成本; 成本计算单cbCalInfo z 根据成本对象的投入总成本计算出完工产品成本、废品可修复成本计算cbWCalInfo 在产品成本、不可修复废品成本,结果写入成计算单;废品不可修复成本计算单cbWNCalInfo z 进行成本还原,计算结果写入成本还原系数表; 成本计算单材料明细表cbCalInfoDetail z 计算出分类方法下级明产品的成本,计算副产品成成本还原系数表cb_CostObj_RevQuo 本,计算结果写入产品成本计算单 产本成本计算单cbProductCalInfo 本期有完工有领料半成品出库入库核算 本期有完工有领料半成品出库出库核算 IcStockBillEntry cb(W)MaterielInfo 更新更新库存单据及费用分配表 或cb(W)MakeDistributeInfo 或cb(W)AssistDistrbuteInfo End 图:成本计算总图 帮助顾客成功 - 33 -
成本计算总图说明—— ( 1 )成本计算前的检查 在做成本计算前,要对数据进行合法性检查,看其是否满足进行成本计算的条件。 比如投产检查、 嵌套检查等。 ( 2 )在成本计算前,要对本期无完工有领料的半成品做出库核算 本期无完工,即本期无产品入库单。所以在成本计算之前,就可以确定本期无完工半成品的发出成本。 由于在费用分配前只对原材料做了出库核算,未对本期无完工半成品进行出库核算。所以在费用分配结束后,费用分配表表中本期无完工半成品的分配金额是错误的。 在成本计算之前,对本期无完工半成品进行出库核算,再更新费用分配表,至此费用分配表中本期无完工半成品的分配金额才是正确的。 如果生产领料单的成本对象指定为“材料共耗”或不指定成本对象,那么领料单的费用分配结果保存在cb(W)MaterielInfo表中; 如果生产领料单的成本对象指定为“转入制造费用”,那么领料单的费用分配结果保存在cb(W)MakeDistributeInfo表中; 如果生产领料单的领用部门为辅助生产车间,那么领料单的费用分配结果保存在cb(W)AssistDistrbuteInfo表中。 所以在对本期无完工半成品进行出库核算后,具体更新费用分配表的哪一个,还要看领料单的领用部门和成本对象。 ( 3 )分析本步法成本对象的步骤 K3成本系统判断一个成本对象是否是分步法不是通过BOM判断的,是通过领料关系判断的。 系统通过领料关系判断出每个自制件的核算步骤,成本计算是从最底层的步骤开始计算,逐级上推。 ( 4 )成本计算是基于费用分配的结果进行的 费用分配完成后, 费用已经分配到成本对象。但是对于一个成本对象所负担的费用分散在多张数据表中:cb(W)MaterielInfo、cb(W)ExpenseDistributeInfo、cb(W)AssistDistrbuteInfo cb(W)MakeDistributeInfo 。在成本计算过程中,会将这些表中的数据整合到一张数据表中,即:成本计算单。 ( 5 )成本计算过程调用了存货核算的出入库核算 例:产品C的生产过程为:一车间领用材料A,经过工序1生产出半成品B。半成品B入库,二车 间再领用B,经过工序2生产出最终的产成品C,产品C入库。 产品C的生产步骤: 工序1 工序2材料A 半成品B 产成品C 生产产品C涉及到的库存单据: 生产领料单 产品入库单 领用物料:A 入库物料:B 生产领料单 产品入库单 领用物料:B 入库物料:C 从上图可以看出: 帮助顾客成功 - 34 -
要计算C的制造成本,就必须先计算B的发出成本; 要计算B的发出成本,就必须先计算B的入库成本(制造成本); 要计算B的制造成本,就必须先计算材料A的发出成本 。 成本计算步骤是: 1、材料A出库核算; 2、半成品B入库核算; 3、半成品B出库核算; 4、产成品C入库核算。 其中第1步是原材料出库核算,是在费用分配前进行的;2、3、4步是自制件的出入库核算,是在成本计算过程中成本系统自动调用存货核算功能完成。 ( 6 )成本计算过程为什么按生产步骤循环? 分步法、分批法、分类法都是基于品种法的延伸,其中分步法的算法最复杂。每种成本对象都有自 己的生产步骤——品种法是单步骤生产,分批法、分类法可以是单步骤也可以是多步骤生产,从这个意义 上系统首先把所有的成本对象都当作分步法,程序的框架按分步法来搭建,在每个步骤循环内再对不同 类别的成本对象做进一步处理。所以这种处理方法可以理解为:在计算出分步成本的同时,顺便也计算 出了品种方法、分批法、分类法的成本。 ( 7 )费用分配完成后,材料费用分配结果已经写入材料费用分配表cb(w)MaterilelInfo。但是在成本计算过程为什么还要更新cb(W)MaterielInfo表 ? 如果存在本期有完工而且被领用的半成品,在做费用分配时,系统还不能确定该半成发出成本。所 以在费用分配时无论该半成品的生产领料单是否填写了单价,cbMaterielInfo表中该半成品的分配金额 都是错误的,但分配数量以及分配系数是正确的。 在成本计算过程中,计算出该半成品的生产成本,做入库和出库核算后,此时才能确定该半成品的发 出成本,发出成本乘以cbMaterielInfo表的分配系数来更新cbMaterielInfo表分配金额。此时,该半 成品在cbMaterielInfo表中的分配金额才是正确的。在此基础上才能保证耗用该半成品的下一步骤产品 的成本计算的正确性。 ( 8 )成本计算的目标——成本计算单 成本计算的过程和费用费用分配过程相似:“读信息==》处理==》写物理表”。 费用分配过程: 费用分配(读)费用单据 (写)费用分配表 成本计算过程: 成本计算(读)费用分配表 (写)成本计算单 此处介绍成本计算单结果表 二、成本计算处理流程 (一) 成本计算前合法性检查——中断性检查 中断检查未通过,弹出报错窗口,程序中断。 帮助顾客成功 - 35 -
1. 投产检查 z 说明 本期基本生产车间至少有一个成本对象有投产。 z 为什么要做投产检查? 在K3中,判断一个成本对象能够负担到成本只有两个依据: 该成本对象本期是否有投入产量; 该成本对象的分配标准数值大于零。 必须同时满足上述两个条件,成本对象在本期就可以负担到生产费用。如果本期没有任何成本对 象投产,生产费用就没有受益者——这是不合逻辑的。 z 检查方法 投入产量= + > 0 ( 投入产量计算公式:投入产量 = (计划开工日期在本期的)生产任务单数量+ 期初在产品数量 其中:在本期开工的生产任务,已经发生了人工、材料等费用,应负担到成本。期初在产品产量相当于以前期间开工未完成,本期继续加工,也要负担成本。) 2. 检查是否存在有期末在产品盘点数量为负数的成本对象 z 说明 在产品产量不能为负。 z 检查方法 ( 期初在产品产量+ 本期投入产量 – 期末完工数量 – 废品数量) < 0 + + – CBWasterCostObjInfo. FwastQty <0 3. 检查是否存在有完工入库而生成凭证的单据 z 说明 成本计算前,所有的产品入库单不能做凭证。 z 为什么要做记帐检查? 在成本计算前,产品入库单的入库成本还不能确定。在成本计算过程中,要根据计算出来的制造成本回填到产品入库单,而库存单据一旦生成凭证,其单价不可更改。所以成本计算时产品入库单不能记帐。 z 检查方法 存在于t_Voucher中,并且t_Voucher. FInternalInd='Cost' 4. 检查成本对象对应的废品产量是否有本期完工产量 z 说明 某一成本对象有废品产量,就必须有完工产量。 z 为什么要做此项检查? 这里说的废品是在车间中的产品的废品,不是材料废品。产品的废品分为两种,一种是可修复废品, 一种是不可修复废品。 可修复废品的产量已经包括在完工常量中,所以有可修复废品产量就必有完工产量。 不可修复废品产量不包括在完工常量中,其价值记入废品损失科目,废品损失是过渡科目,期末余额全部转入生产成本,也就是说本期的废品净损失全部由本期同品种的完工产品负担。所以有不可修复废品产量就必有完工产量。 z 检查方法 cbWasterCostObjInfo. FcostObjID 不存在于CBCompleteQty 中。 5. 检查成本对象对应的废品费用是否有本期完工产量 z 说明 一个成本对象有废品费用发生,就必须有完工产量。 帮助顾客成功 - 36 -
z 检查方法 根据废品费用分配相关表:cbWMaterielInfo、cbWExpenseDistributeInfo、 cbWAssistDistrbuteInfo、cbWMakeDistributeInfo以及废品索赔表:CBWasterAmends以及残值退 料表:CbWBMaterielInfo可以知道那些成本对象发生了废品费用。再判断这些发生了废品费用的 FcostObjID是否存在与完工产量表:cbComplateQty中。 6. 检查残值退料的部分红字退料单是否指定了具体的成本对象 z 说明 废品残值退料必须指定明确的成本对象。成本对象不能指定为“共耗费用”、不能指定为“转入制造费用”、成本对象不能为空。 z 为什么要做此项检查? 生产领料单的类型有三种: 1)12000 一般;2)12001修复废品 ;3)12002残值退料。 残值退料是指不可修复废品经过拆卸等处理,还有一部分材料可以继续使用,这部分材料要退回仓库以备下次生产使用。不可修复废品的净损失被完工产品成本负担。计算公式为: 不可修复废品净损失 = 不可修复废品成本 - 残值退料价值 兰字的残值退料单是针对具体的某个成本对象录入的,红字的残值退料单的用途是冲减兰字残 值退料单,所以红字残值退料单也必须指定成本对象。 z 检查方法 Not IN ('MaterielMakeID','MaterielShareID',’’) 且 =24 且FPurposeID=12002 7. 检查残值退料生产领料单上的物料能否取到成本项目 1)为什么要做此项检查? 成本计算过程,是费用对象化的过程。系统必须要为每一笔费用找到最终分配记入的成本项目。 在费用分配时,残值退料生产领料单取成本项目的顺序是: 1、取物料主文件中定义的成本项目; 2、如果从物料属性中取不到,则取成本项目中标准成本项目为“直接材料”的第一个成本项目。 如果都取不到,则 =0。 z 检查方法 =0 8. 分类法成本对象的标准产品未完工,副产品有完工 z 说明 副产品有完工,标准产品必须有完工。 注:普通的分类法无此判断。 9. 投产的成本对象是否指定在产品标准 z 说明 成本计算的最后阶段要计算完工产品和在产品成本,会用到在产品的分配标准设置。 10. 会计期间检查 z 说明 成本期间与存货核算期间必须一致。 因为成本计算过程要调用核算模块的出入库核算,并且回填本期产品入库单单价。 11. 领料嵌套检查 z 说明 帮助顾客成功 - 37 -
比如返工类型生产领料单—— 单据体分录:产品A; 单据头成本对象:产品A 这种自己领用自己情况就是领料嵌套,在成本系统是不允许的。 z 检查方法 领料嵌套检查是在“分析成本对象步骤” 过程中进行的。 (二) 成本计算前合法性检查——非中断性检查 非中断检查未通过,系统提示“数据合法性检查未通过,是否继续?”,选择“是”程序继续运行,将错误记录在成本计算报告中。 1. 检查有费用发生的辅助生产部门是否提供了劳务 z 说明 发生了费用的辅助生产部门必须给其他部门提供了相关劳务。 z 检查方法 从IcStockBill(Entry)和cbCostExpenseInfo中找到那些辅助生产车间发生了费用,再判断这些部 ID是否存在于劳务耗用量:cbAssExpenseInfo表中。 2. 检查是否存在有完工入库没有定义成本对象的产品 z 说明 A产品的计价方法使用分批认定法,本期录入了A产品入库单,批次:P001。但是用户未在“基础资料-成本对象”中增加A产品的“P001”批次对应的分批法成本对象。这种情况就是:有完工入库,但没有定义成本对象。 z 检查方法 从IcStockBil(lEntry)中过滤出分批认定法物料的产品入库单信息,得到FitemID和对应的批号:FbatchNo。判断该cbCostObj中是否存在这样的记录: = 且= . 3. 检查是否存在有完工入库但没有投产的成本对象 z 说明 有完工入库的成本对象本期必须具有相应投产数量。 z 检查方法 IcStockBill(Entry)关联cb_CostObj_Product,得到有完工入库的成本对象(FCostObjID)。判断FCostObjID是否存在和。 4. 检查是否存在没有进行材料费用分配的领料单 z 说明 费用分配是成本计算的基础。如果存在领料单的未分配或分配不成功,则费用分配表数据是错误的,成本计算结果也必然是错误的。 如果用户做过费用分配后,又录入生产领料单。然后跳过费用分配直接做成本计算。这种操作就会导致新录入的生产领料单未分配。 假如共耗材料费用按BOM定额分配,本期一车间生产领用物料X,成本对象指定为“同耗费用”。但本期一车间投产的所有产品的BOM中都不包含X,则物料X对于所有的成本对象的分配标准数值都为零,这种情况领料单分配不成功。 z 检查方法 帮助顾客成功 - 38 -
领料类型为“一般领料”的领料单的FCostObjID Not IN ('MaterielMakeID'),且领料单的FInterID不存在于cbMaterielInfo表中; 领料类型为“修复废品领料”的领料单的的FCostObjID Not IN ('MaterielMakeID'),且领料单的FInterID不存在于cbWMaterielInfo表中。 5. 检查是否存在没有进行其它费用分配的费用单 z 检查方法 用途为“一般耗用”的其他费用单CBCostExpenseInfo的FCostObjID Not IN ('MaterielMakeID'),且不存在于cbExpenseDistributeInfo表中; 用途为“修复废品耗用”的其他费用单CBWCostExpenseInfo的FCostObjID Not IN ('MaterielMakeID'),且不存在于cbWExpenseDistributeInfo表中。 6. 检查是否存在没有指定成本项目的材料费用分配单据 z 检查方法 =0 =0 7. 检查是否存在没有指定成本项目的其它费用分配单据 z 检查方法 =0 =0 8. 检查是否存在没有指定成本项目的辅助生产费用分配单据 z 检查方法 =0 =0 9. 检查是否存在没有指定成本项目的制造费用分配单据 z 检查方法 =0 =0 (三) 成本计算前的准备工作 1. 将产品的完工产量转换为成本对象的完工产量,写入cbComplateQty 仓存系统的完工信息保存在IcStockBill(Entry)表中,按物料ID()反映。成本系统的完工信息保存在cbComplateQty表中,按成本对象ID()反映。前者是“产品(或物料)的完工产量表”,后者是“成本对象的完工产量表”。在成本计算过程中,涉及到成本对象的完工产量都是从cbComplateQty中取数。在成本计算完毕,查看成本计算相关报表中的完工产量也都是从cbComplateQty中取数。 CbComplateQty的仅在成本计算时根据IcStockBill(Entry)更新。 所以如果在成本计算完毕,又在仓存系统新增了产品入库单,如果没有再跑一次成本计算,CbComplateQty表数据将是错误的。 成本计算前对cbComplateQty表的具体处理步骤如下—— 1)删除成本对象完工产量表cbComplateQty本期数据; 2)将IcStockBill(Entry)表中的产品产量转换为成本对象的产量,写入cbComplateQty. z品种法和分步法成本对象的完工产量 帮助顾客成功 - 39 -
“品种法和分步法成本对象”与“产品”的对应关系是“一对一”,对IcStockBillEntry按物料、部门汇总得到每个物料在每个部门的总产量,导入cbComplateQty。关联方法—— ==》 ==》 ==》 根据提取出所有品种法和分步法成本对象,从关联到,就可以知道IcStockBillEntry中那些物料对应的成本对象是品种法或分步法。 z分批法成本对象的完工产量 “分批法成本对象”与“产品”的对应关系是“多对一”,但是“分批法成本对象”与“产品—批次”的对应关系是“一对一”。 所以对IcStockBillEntry按物料、批次、部门汇总得到每个物料的每个批次在每个部门的总产量,写入cbComplateQty。 z分类法成本对象的完工产量 “品种法成本对象”与“产品”的对应关系是“一对多”,一个分类法成本对象包含多个产品。其中只有一个是标准产品,系数为1。非标准产品的系数是按标准产品定义的,即:一个“非标准产品”相当于多少个“标准产品”。 分类法成本对象的完工产量也是按标准产品来反映的。 例: 产品A , 系数:1 , 产量:5 分类法成本对象X 产品B , 系数: , 产量:6 产品C , 系数: , 产量:10 则: 成本对象X 的产量=(A的产量 * A的系数)+(B的产量* B的系数)+(C的产量* C的系数) = 程序的处理方法—— 对按FItemID、FDeptID汇总求出产品(分类法成本对象的子项产品,即上例中的A、B、C)在各部门的总产量,各子项乘以得到子项的标准产量,再对子项的标准产量求和得到分类法成本对象的产量。 3)删除cbComplateQty中非基本生产车间的完工产量信息 DELETE t1 from cbCompleteQty t1 inner join t_DepartMent t2 on (=) Where <>361 AND =2003 AND =5 2. 更新残值退料费用分配表本期数据 在费用分配过程,未对残值退料生产领料单费用进行分配。这部分费用是在成本计算前处理的。 1)删除CBWBMaterielInfo 本期数据; 2)将本期残值退料信息写入CBWBMaterielInfo 残值退料是一种红字生产领料单,在录入残值退料单时,系统要求成本对象必须指定为具体的品种,也就是说残值退料单一定是“直接记入费用”,所以直接将IcStockbill(Entry)中FPurposeID=12002的数据直接写入CBWBMaterielInfo。目前K3只支持基本生产部门做残值退料,只将部门属性为基本生产车间的残值退料单写入CBWBMaterielInfo。 IcStockBillEntry关联t_IcItem,取到写入 参考SQL: INSERT INTO CBWBMaterielInfo(FYear,FPeriod, FCostObjID, FInterID, FEntryID, FCostItemID,FQty,FPrice, FAmount) SELECT 2003,5,,, ,, ,, 帮助顾客成功 - 40 -
FROM ICStockBill u1 inner join ICStockBillEntry v1 ON = Inner join t_ICItem t1 ON = inner join cbCostObj t2 ON = Inner join t_Department t3 ON (= AND =361) Where = 24 AND >= '2003-05-01' AND < '2003-06-01' AND =0 AND >0 AND Not In(SELECT FItemID FROM cbCostObj WHERE FNumber In ('MaterielMakeID','MaterielShareID')) AND <>0 AND =12002 3)更新CBWBMaterielInfo表未找到成本项目的记录 在上步骤中先取,如取不到则取cbCostItem中第一个标准成本项目为“直接材料”的成本项目—— UPDATE CBWBMaterielInfo SET FCostItemID= (SELECT TOP 1 FItemID FROM cbCostItem WHERE FTypeID=901 ) WHERE FYear= '2003' AND FPeriod= '5' AND FCostItemID=0 or FCostItemID is Null 3. 重写在产品产量表 以前版本在产品产量盘点录入有时不能保存,在成本计算前重算保存未保存的在产品数量,并重写CBCostObjCheck。 4. 删除费用分配表中有冗余信息 用户先做费用分配,然后删除费用单据,然后直接进行成本计算而不在进行费用分配。这种情况下,费用分配表中有冗余信息,须删除。 删除cbExpenseDistributeInfo表中不存在于cbCostExpenseInfo中的记录。 删除cbMaterielInfo表中不存在于ICStockBill中的记录。 删除cbWExpenseDistributeInfo表中不存在于cbCostExpenseInfo中的记录。 删除cbWExpenseDistributeInfo表中不存在于cbCostExpenseInfo中的记录。 删除cbWMaterielInfo表中不存在于ICStockBill中的记录。 5. 本期无完工有领料半成品出库核算 1)自动审核金额调整单 将ICStockBill中未审核的金额调整单的FcheckerID 置为16394. 2)本期无完工有领料半成品出库核算 (四) 成本计算 在执行完合法性检查,以及完成其他准备工作后,开始真正的成本计算过程。 1. 分析分步法步骤 计算出每个投产成本对象的领料步骤,计算结果保存在临时表中。 2. 清除上次成本计算计算结果 删除以下数据表本期数据: 帮助顾客成功 - 41 -
z 成本计算单cbCalInfo z 废品成本计算单cbWCalInfo z 废品不可修复成本计算单cbWNCalInfo z 成本计算单直接材料分配明细表cbCalInfoDetail z 废品可修复材料成本计算单cbWCalInfoDetail z 成本还原表cbCalRevertInfofs z 产品成本计算单cbProductCalInfo 3. 开始按成本对象步骤循环:For i=1 to @MaxLevel 将本期有投产且领料步骤为“i”的所有成本对象ID写入 #CostObj, #CostObj表只有一个字段:FCostObjID。 创建这个表的目的是在后面的处理过程中,凡涉及到取成本对象ID的过程都会关联此表,这就保证在一个循环过程中,只处理一个步骤的成本对象。 4. 计算出各成本对象本期负担到的总费用 成本对象本期负担的总费用 = 期初在产品成本 + 本期发生的费用 费用分配完毕后,成本对象负担到的费用分散在多个费用分配表中,成本计算过程要将期初在产品成本以及各费用分配表中的数据整合到一起,以便得到每个成本对象负担到的总费用。 因为直接材料成本项目不仅要反映总金额,还要反映材料明细的构成,所以材料费用明细还要单独处理。 ( 1 )“计算成本对象总费用” 处理过程 这个合并过程涉及到两张临时表:#临时表1和#临时表2。 1、先将所有费用分配表数据倒入#临时表1, 2、然后#临时表1与 cbCostItem交叉连接,得到的结果是:在#calTab1表中每个部门的每个成本对象都有4个成本项目,其中有些记录数值全为零—— INSERT INTO #CalTab1(FDeptID,FCostObjID,FCostItemID) SELECT ,, FROM (SELECT Distinct FDeptID,FCostObjID FROM #CalTab1) v Cross join cbCostItem u 3、最后对#临时表1汇总,将汇总后的结果写入#临时表2。 至此,成本对象负担到的各种费用已经全部写入 #calTab,但#calTab还不是最终的成本计算单,因为还要进行完工产品在产品废品成本的计算。 处理过程简图 期初在产品成本 本期发生的费用 cb(W) #临时表1 cb(W) cb(W)MakeDistributeInfo .FAmount Cross join#临时表2 cb(W) cbCostItem #临时表1 (#临时表1 表结构同#临时表2) 帮助顾客成功 - 42 -
字 段 含 义 数 据 来 源 FDeptID 部门 FCostObjID 成本对象 FCostItemID 成本项目 FBegAmount 期初在产品成本 FNorAmount 本期发生的生产费用 FWasAmount 本期发生废品费用 FAskAmount 可修复废品废品索赔费用 =0 FYAskAmount 不可修复废品废品索赔费用=1 FBadAmount CbWBMaterielInfo 残值退料费用 ( 2 )“材料明细费用” 处理过程: 这个合并过程涉及到两张临时表:#临时表A和#临时表B。 1、先将所有费用分配表数据倒入#临时表A; 2、然后对#临时表1按FDeptID,FCostObjID,FCostItemID,FMaterielID,FBatchNo汇总,将汇总后的结果写入#临时表B。 处理过程简图 材料费用明细期初余额 cbCostObjDetail. FBegAmount 或 cbCalInfoDetail. FBegAmount 汇总 #临时表A#临时表B 材料费用明细本期发生的费用 #临时表A(#临时表A 表结构同#临时表B) 字 段 含 义 数 据 来 源 FCostObjID 成本对象ID FCostItemID 成本项目ID FMaterielID 物料ID FErpClsID 物料属性 帮助顾客成功 - 43 -
FQtyDecimal 数量精度 t_IcItem. FQtyDecimal FSpendCostObjID FBatchNo ICStockBillEntry. FBatchNo 批号 FBegAmount cbCostObjDetail. FbegAmount 或 期初材料金额 cbCalInfoDetail. FbegAmount FNorAmount 正常领料金额 FWasAmount 修复可修复废品耗用材料金额 FBegQty 或 期初材料数量 FNorQty 正常领料数量 FWasQty 修复可修复废品耗用材料数量 FBadAmount 残值退料金额 FBadQty 残值退料数量cbWBMaterielInfo. FBadQty 5. 计算完工产品成本、期末在产品成本、不可修复废品成本 ( 1 )没有废品情况下完工产品与在产品成本的计算 1)约当产量法 z 约当系数未设到成本项目 在产品约当产量= 约当系数 * 在产品产量 分配率 = 产品总投入成本/(完工产量产量+在产品约当产量) 在产品成本 =在产品约当产量 * 分配率 完工产品成本 =完工产品产量 * 分配率 z 约当系数设到成本项目 在产品直接材料约当产量= 在产品直接材料约当系数 * 在产品产量 在产品直接人工约当产量= 在产品直接人工约当系数 * 在产品产量 在产品制造费用约当产量= 在产品制造费用约当系数 * 在产品产量 直接材料分配率 = 直接材料总投入成本/(完工产量产量+在产品直接材料约当产量) 直接人工分配率 = 直接人工总投入成本/(完工产量产量+在产品直接人工约当产量) 制造费用分配率 = 制造费用总投入成本/(完工产量产量+在产品制造费用约当产量) 在产品直接材料成本 = 在产品直接材料约当产量 * 直接材料分配率 在产品直接人工成本 = 在产品直接人工约当产量 * 直接人工分配率 在产品制造费用成本 = 在产品制造费用约当产量 * 制造费用分配率 在产品成本 =在产品直接材料成本 + 在产品直接人工成本 + 在产品制造费用成本 z 数据来源 在产品产量:cbCostobjCheck 在产品约当系数:CBRationStandardInfo, FstandardID=-1 完工产品产量:cbComplateQty 总投入成本:各个费用分配表的汇总 2)按完工产品计算 在产品当作完工产品,即在产品所有成本项目约当系数为1,参照1)处理方式。 帮助顾客成功 - 44 -
3)按年初固定数计算 在产品成本= 年初固定数 完工产品成本= 总投入成本 - 在产品成本 年初固定数取数来源:????????? 4)只计算原材料费用 在产品直接材料约当系数为1,其他成本项目约当系数等于0,处理方式参考1)。 5)固定金额 处理方式同3) 。 6)按自定义标准 处理方式同5)。 7)固定比例 按比例计算出完工产品与在产品成本。 ( 2 )有废品情况下完工产品与在产品成本的计算 1)约当产量法 不可修复废品和期末在产品都按约当产量计算。 不可修复废品直接材料约当产量= 不可修复废品直接材料投入程度 * 不可修复废品产量 直接材料总投入成本 直接材料分配率 = 完工产量产量 + 在产品直接材料约当产量 + 不可修复废品直接材料约当产量 其他成本项目处理方式同直接材料。 2)按完工产品计算 在产品所有成本项目约当系数为1,参照1)处理方式。 3)按年初固定数计算 先确认期末在产品成本,用投入总成本减去期末在产品成本后,再在合格品成本与不可修复废品之间按投入程度分配。 4)只计算原材料费用 在产品直接材料约当系数为1,其他成本项目约当系数等于0,处理方式参考1)。 5)固定金额 处理方式同3) 。首先计算期末在产品成本,用投入总成本减去在产品成本后在合格品与不可修复废品之间按投入程度计算。 6)按自定义标准 处理方式同5)。 7)固定比例 首先对投入总成本按比例计算出期末在产品成本,用投入总成本减去期末在产品成本后在合格品与不可修复废品之间按投入程度计算。 6. 增加成本计算单记录 完工产品成本写入cbCalInfo 可修复废品净损失写入:cbWCalInfo 不可修复废品净损失写入:cbWNCalInfo 帮助顾客成功 - 45 -
材料费用明细写入cbCalInfoDetail 修复废品材料费用明细写入cbWCalInfoDetail 7. 成本还原 1)如果成本对象本期有完工,则删除成本还原表原有的数据 删除CB_CostObj_RevQuo表存在于cbComplateQty的记录。 2)求出每个成本对象的每个成本项目的还原系数,写入cb_CsotObj_RevQuo 计算方法是: 直接材料成本项目还原系数= 某成本对象的直接材料成本项目金额 / 该成本对象所有成本项目金额的总和 直接人工成本项目还原系数= 某成本对象的直接人工成本项目金额 / 该成本对象所有成本项目金额的总和 制造费用成本项目还原系数= 该成本对象的制造费用成本项目金额 / 该成本对象所有成本项目金额的总和 3)计算出还原结果写入cbCalRevertInfo 8. 计算分类成本对象下级明细产品成本、副产品成本 分类成本对象与其下级明物料的对应关系保存在cb_CostObj_Product表中,每个明细产品之间的系数比例关系也保存在此表中。计算方式就是用cbCalInfo中的分类方成本对象负担到的成本分别乘以cb_CostObj_Product表中各明细产品的系数,就计出各明细产品的成本。计算结果写入cbProductCalInfo。 副产品实际上就是分类法成本对象的明细产品,处理方式同上。 9. 本期有完工自制件入库核算 10. 本期间有完工且有领料的自制件出库核算 11. 更新本期费用分配表 12. 返回第 3)步,计算下一步骤成本对象成本。 三、成本计算相关数据表 成本计算相关数据表共有7张表—— z 成本计算单:cbCalInfo z 成本计算单直接材料分配明细表:cbCalinfoDetail z 废品不可修复成本计算单:cbWNCalInfo z 废品可修复材料成本计算单:cbWCalinfoDetail z 废品可修复成本计算单:cbWCalInfo z 完工产品成本计算单:cbProductCalInfo z 成本还原表:cbCalRevertInfo (一) 成本计算单 cbCalInfo 字 段 含 义 数 据 来 源 Fyear 会计年度 FPeriod 期间 FDeptID 部门内码 FCostItemID 成本项目内码 帮助顾客成功 - 46 -
FCostObjID 成本对象内码 tandardID FStandardID 分配标准内码费用分配表.FS FStdSubID 下设分配标准内码 分配表.Fstandarddata Fstandarddata 分配标准数值费用 FOverAmount 完工产品成本 FOnlineAmount 在产品成本 FRevertAmount 还原后完工产品成本 FRevQuo 还原系数 FLevel 计算步骤 (二) 废品可修复成本计算单 cbWCalInfo 字 段 含 义 说 明 Fyear 会计年度 FPeriod 期间 FDeptID 部门内码 FCostItemID 成本项目内码 FCostObjID 成本对象内码 可修复废品修复费用-可修复废品索赔收入 FOverAmount 可修复废品净损失 (三) 废品不可修复成本计算单 cbWNCalInfo 字 段 含 义 说 明 Fyear 会计年度 FPeriod 期间 FDeptID 部门内码 FCostItemID 成本项目内码 FCostObjID 成本对象内码 不可修复废品成本-不可修复废品索赔收入 FOverAmount 不可修复废品净损失- 不可修复废品残值退料金额 (四) 材料成本计算单 cbCalinfoDetail 字 段 含 义 说 明 Fyear 会计年度 Fperiod 期间 FDeptID 部门内码 FCostObjID 成本对象内码 FCostItemID 成本项目内码 FMaterielID 材料内码 FBatchNo 批次 FSpendCostObjID 半成品对应成本对象内码 FOverAmount 完工产品成本 FOnlineAmount 在产品成本 FOverQty 完工产品耗用数量 FOnlineQty 在产品耗用数量 FLevel 计算步骤 (五) 废品可修复材料成本计算单 cbWCalInfoDetail 字 段 含 义 说 明 Fyear 会计年度 帮助顾客成功 - 47 -
Fperiod 期间 FdeptID 部门内码 FCostObjID 成本对象内码 FCostItemID 成本项目内码 FMaterielID 材料内码 FbatchNo 批次 FSpendCostObjID 半成品对应成本对象内码 FOverAmount 完工产品成本 FoverQty 完工产品耗用数量 Flevel 计算步骤 (六) 产品成本计算单 cbProductCalInfo 字 段 含 义 说 明 FYear 会计年度 FPeriod 期间 FDeptID 部门ID FCostObjID 成本对象ID FCostItemID 成本项目ID FProductID 产品ID FBatchNo 批次 FAmount 产品成本 FQty 产品完工数量 FStandardQty 分配标准数值 FRevQuo 系数 FPrice 在产品耗用数量 FLevel 计算步骤 (七) 成本还原表 cbCalRevertInfo 字 段 含 义 说 明 Fyear 会计年度 FPeriod 期间 FDeptID 部门ID FCostObjID 成本对象ID FCostItemID 成本项目ID FSpendCostObjID 半成品成本对象内码 FSpendCostItemID 半成品成本项目内码 FMaterielID 产品成本 FAmount 金额 Frev 还原系数 四、成本计算报表 (一) 成本计算单 报表列 取数方式 期初在产品产量 期初在产品成本 本期投入产量 帮助顾客成功 - 48 -
本期投入成本 计算得出:本期完工产品总成本 + 期未在产品成本 —期初在产品成本 生产费用合计 计算得出:本期完工产品总成本 + 期未在产品成本 本期完工产品产量 本期完工产品总成本 CbCalInfo. FoverAmount 本期完工产品单位成本 计算得出:本期完工产品总成本/本期完工产品产量 期未在产品产量 期未在产品成本 CbCalInfo. FonlineAmount CbCalInfo. Fstandarddata 期未在产品分配标准数值 本年累计投入费用 cbInitBalance. FyearSum + 初始化后各期费用 本年累计完工产量 cbInitBalance. FyearQty + 初始化后各期完工数量 本年累计完工成本 cbInitBalance. FyearExp + 初始化后各期完工成本 帮助顾客成功 - 49 -
第十节 标准成本 一、标准成本数据录入 1. 标准单价引入(CBStdStdPrice) 1)物料上的标准成本 2)物料上的计划价 3)最新出库价 ICStockBillEntry. Fprice 过滤出出库单: in(21,24,28,29,41,43),对IcStockBill按Fdate排序,得到日期最大的出库单。 4)最新入库价 取数原理同上,只是单据类型不同—— in (1,2,5,10,40,100,101,41) . 2. 单位标准工时录入(CBStdStdManhour) 可以从物料中引入单位标准工时—— 3. 标准工资率录入(cbStdSalaryRate) 标准工资率:生产一个产品在一个小时要耗费多少工资。 4. 变动制造费用分配率录入(cbStdFloatMakeRate) 变动制造费用分配率:生产一个产品在一个小时要耗费多少变动制造费用。 5. 固定费用分预算(cbStdfixedMakebudget) 固定制造费用预算:生产一个产品在一个小时要耗费多少固定制造费用。 6. 标准产量录入(CBStdBudgetOutput) 标准成本的计算用不到“标准产量”,但是在报表分析中要用到标准产量。 帮助顾客成功 - 50 -
二、标准成本计算 合法性检查 检查所有的成本项目是否设置了对应的标准成本项目 检查已完工的成本对象的单位实际工时是否小于等于零 BOM嵌套检查 按BOM分析本步法成本对象的步骤 开始按BOM级次循环:FOR I=1 to MaxLevel 计算自 制件的标准成本,计算结果写入标准成本计算单 标准成本计算单 z 直接材料标准成本=材料标准单价*标准用量 cbStdCalInfo z 直接人工标准成本=单位标准工时*标准工资率 cbStdCalInfoDetailz 变动制造费用标准成本=单位标准工时*变动制造费用分配率 cbStdCalInfoOther z 固定制造费用标准成本=单位标准工时*固定制造费用预算 标准价格 t_IcItem 更新自制件标准成本 cbStdStdPrice End 图:标准成本计算总图 三、标准成本相关数据表 1. 标准成本数据录入 标准单价CBStdStdPrice 字 段 含 义 数 据 来 源 FItemID 物料ID Fyear 会计年度 Fperiod 会计期间 FStdPrice 标准单价 帮助顾客成功 - 51 -
单位标准工时录入 CBStdStdManhour、标准工资率录入CBStdSalaryRate、变动制造费用分配率CBStdFloatMakeRate、固定制造费用录入CBStdfixedMakebudget、标准产量录入CBStdBudgetOutput,这些表的结构和CBStdStdPrice相同,只是最后一个字段有所区别—— 单位标准工时:CBStdStdManhour .FstdManhour 标准工资率:CBStdSalaryRate. FSalaryRate 变动制造费用分配率:CBStdFloatMakeRate. FFloatMakeRate 固定制造费用预算:CBStdfixedMakebudget. FFixedMakeBudget 标准产量:CBStdBudgetOutput .FOutProduct 2. 标准成本计算单 cbStdCalInfo 字 来 源 段 含 义 数 据FYear 会计年度 FPeriod 会计期间 FCostObjID 成本对象ID FStdCostItemID t 标准成本项目ID FRelQty 实际产量 FPrice 标准单价 FAmount 标准成本 FLevel t 计算步骤 3. 直接材料标准成本计算单 cbStdCalInfoDetail 字 段 含 义 数 据 来 源 FYear 会计年度 FPeriod 会计期间 FCostObjID 成本对象ID FMaterielID t 物料ID FStdAmount 标准成本 FStdQty 标准用量 4. 其他标准成本计算单 cbStdCalInfoOther 字 段 含 义 数 据 来 源 FYear 会计年度 Fperiod 会计期间 FCostObjID 成本对象ID FStdCostItemID t 标准成本项目ID FrelQty 实际产量 FStdDisRate 分配率 FStdManHour 标准工时 Fprice t 标准单价 Famount 标准成本 FLevel t 计算步骤 帮助顾客成功 - 52 -
第十一节 期末处理 一、期末结帐处理流程 1. 更新cbBalance本期期末余额 1)删除cbBalance本期期末余额记录 删除cbBalance本期FOnlnQty<>0 和FEndBal<>0的记录。 2)新增本期期末余额记录 ==> (FtypeID=3) ==>(FtypeID=4) 2. 将cbBalance数据结转到下一期 1)删除cbBalance下一期记录; 2)将本期期末余额结转到下一期期初余额 (FtypeID=3)==> (FtypeID=1) (FtypeID=4)==> (FtypeID=2) 3. 材料成本期末余额结转到下一期 1)删除cbCostObjDetail下一期记录 2)增加cbCostObjDetail下一期记录 ==> ==> 3)更新cbCostObjDetail表下一期记录的FPrice字段 Update cbCostObjDetail SET FPrice=FSum/FQty WHERE FQty<>0 ... 4. 将分配标准数据接转到下一期间 1)删除CBRationStandardInfo下一期记录 2)将CBRationStandardInfo记录结转到下一期 5. 结转标准成本数据 1)删除CBStdSalaryRate CBStdStdManhour、CBStdFloatMakeRate、CBStdStdPrice下一期数据; 2)CBStdSalaryRate CBStdStdManhour、CBStdFloatMakeRate、CBStdStdPrice本期数据结转到下一期。 6. 结转成本类型数据 1)删除cbCostTypeInfo下一期数据; 2)cbCostTypeInfo本期数据结转到下一期。 7. 更新t_systemprofile表 1)更新t_systemprofile表成本系统的'CurrentYear'; 2)更新t_systemprofile表成本系统的'CurrentPeriod' 帮助顾客成功 - 53 -