背景说明:在销售发票或销售订单做自定义项引用设置时保存系统报错:报错原因:这种报错是因为自定义项在单据上直接使用了,没有做引用,对应单据的数据库中已经存储数值了,因此在做自定义项引用保存时系统检查数据库中对应字段有值,就会提示这个。由于项目实施时设置混乱,界面上不好检查出哪些单据做了引用,因此提供后台查询脚本,便捷查询出哪些单据的自定义项存储的数据。根据现场业务情况来决定是清除对应字段的内容还是更换其他自定义项来使用。脚本1:如果引用的自定义项是销售订单表头,请修改下面脚本范本查询自定义项使用的单据,查询哪个自定义项就直接修改下面脚本中红色字体中的数字即可,如查询销售订单表头自定义项1的使用情况:selectb.unitcode公司编码,a.vreceiptcode销售订单号,a.dr是否删除,a.vdef1销售订单表头自定义项,a.pk_defdoc1销售订单表头自定义项主键fromso_salealeftjoinbd_corpbona.pk_corp=a.pk_corpwherea.vdef1isnotnullora.pk_defdoc1isnotnull举例说明:如果查询销售订单表头自定义项15的使用情况,脚本改为:selectb.unitcode公司编码,a.vreceiptcode销售订单号,a.dr是否删除,a.vdef15销售订单表头自定义项,a.pk_defdoc15销售订单表头自定义项主键fromso_salealeftjoinbd_corpbona.pk_corp=a.pk_corpwherea.vdef15isnotnullora.pk_defdoc15isnotnull脚本2:特别说明:销售订单表体和销售发票表体的自定义项都存储在一个表里so_saleexecute,因此引用检查时都检查这个表,发现这个表里对应的自定义项有值就会报引用关系,不区分是销售订单还是销售发票的,(产品bug,补丁解决:2.0-2.5patch_销售订单和发票自定义项引用冲突..\u8c重要通版补丁\2.0-2.5patch_销售订单和发票自定义项引用冲突.zip)因此这个查询脚本有2个,一个是查询销售订单表体自定义项的数据的,一个是查询销售发票的表体自定义项的数据的。查询销售订单的对应自定义项值,就直接修改下面脚本中红色字体中的数字即可,如查询销售订单表体自定义项1的使用情况:selectdistincta.vreceiptcode销售订单单据号,b.unitcode公司编码,a.dr删除标志,d.vdef1销售订单表体自定义项,d.pk_defdoc1销售订单表体自定义项主键fromso_salealeftjoinbd_corpbona.pk_corp=b.pk_corpleftjoinso_saleexecutedond.csaleid=a.csaleidwherea.csaleidin(selectcsaleidfromso_saleexecutewherevdef1isnotnullorpk_defdoc1isnotnull)查询销售发票的对应自定义项值,就直接修改下面脚本中红色字体中的数字即可,如查询销售发票表体自定义项1的使用情况:selectdistincta.vreceiptcode销售发票单据号,b.unitcode公司编码,a.dr删除标志,d.vdef1销售发票表体自定义项,d.pk_defdoc1销售发票表体自定义项主键fromso_saleinvoicealeftjoinbd_corpbona.pk_corp=b.pk_corpleftjoinso_saleexecutedond.csaleid=a.csaleidwherea.csaleidin(selectcsaleidfromso_saleexecutewherevdef1isnotnullorpk_defdoc1isnotnull)脚本3:如果引用的自定义项是销售发票表头,请修改下面脚本范本查询自定义项使用的单据,查询哪个自定义项就直接修改下面脚本中红色字体中的数字即可,如查询销售发票表头自定义项1的使用情况:selectb.unitcode公司编码,so.vreceiptcode销售发票单据号,so.dr是否删除,so.vdef1销售发票表头自定义项,so.pk_defdoc1销售发票表头自定义项主键fromso_saleinvoicesoleftjoinbd_corpbonb.pk_corp=so.pk_corpwhereso.vdef1isnotnullorso.pk_defdoc1isnotnull脚本4、特别说明:销售订单表体和销售发票表体的自定义项都存储在一个表里so_saleexecute,因此引用检查时都检查这个表,发现这个表里对应的自定义项有值就会报引用关系,不区分是销售订单还是销售发票的,因此这个查询脚本有2个,一个是查询销售订单表体自定义项的数据的,一个是查询销售发票的表体自定义项的数据的。查询销售订单的对应自定义项值,就直接修改下面脚本中红色字体中的数字即可,如查询销售订单表体自定义项1的使用情况:selectdistincta.vreceiptcode销售订单单据号,b.unitcode公司编码,a.dr删除标志,d.vdef1销售订单表体自定义项,d.pk_defdoc1销售订单表体自定义项主键fromso_salealeftjoinbd_corpbona.pk_corp=b.pk_corpleftjoinso_saleexecutedond.csaleid=a.csaleidwherea.csaleidin(selectcsaleidfromso_saleexecutewherevdef1isnotnullorpk_defdoc1isnotnull)查询销售发票的对应自定义项值,就直接修改下面脚本中红色字体中的数字即可,如查询销售发票表体自定义项1的使用情况:selectdistincta.vreceiptcode销售发票单据号,b.unitcode公司编码,a.dr删除标志,d.vdef1销售发票表体自定义项,d.pk_defdoc1销售发票表体自定义项主键fromso_saleinvoicealeftjoinbd_corpbona.pk_corp=b.pk_corpleftjoinso_saleexecutedond.csaleid=a.csaleidwherea.csaleidin(selectcsaleidfromso_saleexecutewherevdef1isnotnullorpk_defdoc1isnotnull)