SetAttributeValue(Attribute: Integer; Value: Variant; [Options: RdsDictionaryElementDataOptions = 0]);
Attribute. Индекс атрибута, значение которого необходимо изменить.
Value. Новое значение атрибута.
Options. Параметры изменения значения атрибута.
Метод SetAttributeValue позволяет изменить значение указанного атрибута элемента.
Указываемое в параметре Value значение должно иметь тот же тип, который имеет атрибут с индексом Attribute. Если атрибут принимает множественные значения, то в качестве значения в параметр Value передаётся массив типа Variant. В отдельном элементе массива задаётся одно из значение, формирующее множественное значение. Если в параметр Value передаётся массив, состоящий из одного элемента, то значение элемента массива будет использоваться как отдельное значение без учёта того, что передаётся массив.
Для изменения значения параметрического атрибута параметр Options должен быть равен RdsDictionaryElementDataOptions.AllowChangeParamAttribute.
Для выполнения примера предполагается наличие репозитория НСИ с идентификатором RDS_REPO, содержащим параметрический справочник с идентификатором DICT. Данный справочник содержит атрибут с идентификатором PARAM, связанный с целочисленным параметром.
Добавьте ссылки на системные сборки Metabase, Rds.
Sub UserProc;
Var
Mb: IMetabase;
RdsKey: Integer;
Dict: IRdsDictionary;
Attrs: IRdsAttributes;
AttrKey, AttrInd: Integer;
ParamsVal: IRdsParamValues;
DictInst: IRdsDictionaryInstance;
Elements: IRdsDictionaryElements;
Element: IRdsDictionaryElement;
Data: IRdsDictionaryElementData;
Begin
Mb := MetabaseClass.Active;
RdsKey := Mb.ItemById("RDS_REPO").Key;
Dict := Mb.ItemByIdNamespace("DICT", RdsKey).Edit As IRdsDictionary;
Attrs := Dict.Attributes;
AttrKey := Attrs.FindById("PARAM").Key;
ParamsVal := Dict.Params.CreateValues;
ParamsVal.FindById("PARAM").Value := 0;
DictInst := Dict.Open(ParamsVal);
Elements := DictInst.Elements;
Element := Elements.Item(1);
Data := Element.Data;
AttrInd := Data.AttributeIndex(AttrKey);
Data.SetAttributeValue(AttrInd, 2, RdsDictionaryElementDataOptions.AllowChangeParamAttribute);
DictInst.Update(Element.Key, Data);
End Sub UserProc;
После выполнения примера справочник будет открыт с заданным значением параметра. Затем будет изменено значение параметра для первого элемента.
См. также: