
**需求:将资金调拨单自定义基础资料携带到收款单明细、付款单明细。**
**方案步骤:**
1. 单据上增加基础资料字段。
资金调拨单明细增加自定义基础资料字段:资金项目 ,字段名、标识、绑定实体属性都是:F_PZTJ_ZJXM
付款单明细增加基础资料字段:资金项目 ,字段名、标识、绑定实体属性都是:F_PZTJ_ZJXM
付款单源单明细增加基础资料字段:资金项目 ,字段名、标识、绑定实体属性都是:F_PZTJ_ZJXM_SRC
收款单明细增加基础资料字段:资金项目 ,字段名、标识、绑定实体属性都是:F_PZTJ_ZJXM
收款单源单明细增加基础资料字段:资金项目 ,字段名、标识、绑定实体属性都是:F_PZTJ_ZJXM_SRC
资金调拨单明细,如下图1:

图1
2. 单据转换关系:资金调拨单-->付款单
2.1在原转换下扩展一级,将规则状态取消启用后才能修改。如图2:

图2
2.2设置字段映射关系,目标单字段:付款单源单明细.资金项目SRC 对应的源单字段:明细.资金项目。

图3
2.3 插件策略,注册python脚本插件,代码如下:

图4
python脚本代码:
```
import clr
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
def AfterConvert(e):
headEntity = e.Result.FindByEntityKey("FBillHead")
for item in headEntity:
data=item["PAYBILLENTRY"]
src=item["PAYBILLSRCENTRY"]
if len(data)!=len(src):
continue
for index in range(len(data)):
data[index]["F_PZTJ_ZJXM_ID"]=src[index]["F_PZTJ_ZJXM_SRC_ID"]
data[index]["F_PZTJ_ZJXM"]=src[index]["F_PZTJ_ZJXM_SRC"]
```

图5
2.4 将规则状态勾选启用,保存后生效。
3. 单据转换关系:资金调拨单-->收款单
与第2步方法一样。这里不再叙述,直接上代码。
在插件策略,注册python脚本插件,代码如下:
```language
import clr
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
def AfterConvert(e):
headEntity = e.Result.FindByEntityKey("FBillHead")
for item in headEntity:
data=item["RECEIVEBILLENTRY"]
src=item["RECEIVEBILLSRCENTRY"]
if len(data)!=len(src):
continue
for index in range(len(data)):
data[index]["F_PZTJ_ZJXM_ID"]=src[index]["F_PZTJ_ZJXM_SRC_ID"]
data[index]["F_PZTJ_ZJXM"]=src[index]["F_PZTJ_ZJXM_SRC"]
```

图6
4、效果:

------------------------------------------------------
声明:本文只做知识分享和记录,不做其他任何收益。
方案参考自:
1、费用报销单、差旅费报销单明细字段携带到付款单明细
原文链接:https://wenku.my7c.com/article/221725918690068480?productLineId=1
2、收付款单支持携带上游二开字段到明细,配置即可
原文链接:https://wenku.my7c.com/questions/203523255104483840/answers/203523255255478784?productLineId=1
资金调拨单自定义基础资料携带到付款单、收款单明细.docx