Вопрос
Удаление значения из списка значений пользовательского поля
3 октября 2011 11:12
У меня в карточке договора есть поле типа "Перечисление". Мне нужно скрывать одно значение в этом поле для определенного типа договора. Как это сделать программно?
Нравится
2 комментария
3 октября 2011 14:24
Андрей, попробуйте использовать подобный код для удаления значения перечисления при определенном типе договора:
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; }
3 октября 2011 14:58
Спасибо, Наталья :twisted:. Ключевым для меня в вашем ответе было то, что нужно присваивать значение System.EmptyValue перед изменением списка значений в поле типа "Перечисление".
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать