
@[TOC](目录)
### 背景
在单据上二开自定义多选基础资料之后,在保存操作的校验规则中的唯一性校验找不到该字段。BOS配置不支持对多选基础资料进行唯一性校验,因为多选基础资料数据实际上存在另一个独立的数据表中。那有些场景确有此需求应该如何实现呢?考虑**二开保存校验器插件**实现。
### 步骤
1. 新增多选基础资料字段
2. 到操作列表找到保存操作
3. 注册python脚本

### Python脚本(以供应商联系人页签为例)
```python
import clr
clr.AddReference("mscorlib")
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Newtonsoft.Json')
from Kingdee.BOS import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Util import *
from System import *
from System.Collections.Generic import *
from System.Data import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.DynamicForm import *
from System.Collections.Generic import List
from Newtonsoft.Json import JsonConvert
from Newtonsoft.Json.Linq import *
from Kingdee.BOS.Core.Validation import *
from Kingdee.BOS.Log import Logger
def OnAddValidators(e):
validator = OneValidator()
validator.EntityKey = "FBillHead"
validator.AlwaysValidate = True
e.Validators.Add(validator)
class OneValidator(AbstractValidator):
def Validate(self, dataEntities, validateContext,ctx):
for bill in dataEntities:
contact = bill["SupplierContact"]
b