Ошибка при попытке создания копии фильтра с другим названием

При попытке создания фильтра путем копирования уже существующего фильтра возникает ошибка:

TSObjectLibrary.Filters: Дублируется значение свойства 'UID'. Значение '{CAE2A991-7CEE-4E64-A401-55C449801955}' уже существует

Использую вот такой код:

var Filters = Dataset.SelectQuery.Items(0).Filters.Items(0);
var LikeFilter = Filters.ItemsByCode(FilterName);
var Parameters = SelectQuery.Parameters;
var Parameter = Parameters.ItemsByName(FilterName);
var Name = FilterName+'1';
var TempLikeFilter = LikeFilter.CreateCopy();
TempLikeFilter.Code = Name;
TempLikeFilter.IsEnabled = true;
var TempParameter = Parameter.CreateCopy();
TempParameter.Name = Name;
TempParameter.Value = SearchValue;
TempLikeFilter.ValueExpression.Parameter = TempParameter;
Filters.Add(TempLikeFilter);   

На последней строчке происходит ошибка. Помогите разобраться, пожалуйста.

Нравится

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

надо добавить что-то типа такого:

    TempLikeFilter.UID = <тут новый GUID>;

"Валерий Андрусик" написал:надо добавить что-то типа такого:
TempLikeFilter.UID = <тут новый GUID>;

Спасибо, помогло :smile:

Теперь вот так работает:

var Filters = Dataset.SelectQuery.Items(0).Filters.Items(0);
var LikeFilter = Filters.ItemsByCode(FilterName);
var Parameters = SelectQuery.Parameters;
var Parameter = Parameters.ItemsByName(FilterName);
var Name = FilterName+'1';
 
var TempLikeFilter = LikeFilter.CreateCopy();
TempLikeFilter.UID = Connector.GenGUID();
TempLikeFilter.Code = Name;
TempLikeFilter.IsEnabled = true;
 
var TempParameter = Parameter.CreateCopy();
TempParameter.UID = Connector.GenGUID();
TempParameter.Name = Name;
TempParameter.Value = SearchValue;
TempLikeFilter.ValueExpression.Parameter = TempParameter;
 
Filters.Add(TempLikeFilter);
Parameters.Add(TempParameter);
Показать все комментарии