Удаление значения из списка значений пользовательского поля

У меня в карточке договора есть поле типа "Перечисление". Мне нужно скрывать одно значение в этом поле для определенного типа договора. Как это сделать программно?

Нравится

2 комментария

Андрей, попробуйте использовать подобный код для удаления значения перечисления при определенном типе договора:

var ContrTypeIDDefault = 'Default'; 
var CurrentContrTypeID = '{3D51B409-B691-4F77-9723-359C65399AB4}';
 
var Initialized = false;
if (!Initialized) {
             var BaseEnum = Services.GetNewItemByUSI('enm_xxx');
             var EnumCache = {};
             EnumCache.ContrTypeIDDefault = BaseEnum;                               
             var EnumCacheItem = BaseEnum.CreateCopy();                                
             EnumCacheItem.Remove(EnumCacheItem.ItemsByCode('Code'));
             EnumCache.CurrentContrTypeID = EnumCacheItem;                      
             Initialized = true;
 }                  
var Item = EnumCache.CurrentContrTypeID;
if (Assigned(Item)&&(Dataset.Values('ContractTypeID') == CurrentContrTypeID)) {
             edtEnumControl.DataField.Enum = System.EmptyValue;	
             edtEnumControl.DataField.Enum = Item;                              
} else {
             edtEnumControl.DataField.Enum = System.EmptyValue;
	     edtEnumControl.DataField.Enum = EnumCache.ContrTypeIDDefault;
}

Спасибо, Наталья :twisted:. Ключевым для меня в вашем ответе было то, что нужно присваивать значение System.EmptyValue перед изменением списка значений в поле типа "Перечисление".

Показать все комментарии