SetData(Data: IRdsDictionaryElementData);
Data. Обновляемые данные.
Метод SetData устанавливает данные, которые необходимо обновить.
Для получения данных справочника НСИ используйте метод IRdsDictionaryElements.CreateData.
Для выполнения примера в репозитории требуется наличие табличного справочника НСИ с идентификатором DICT.
Добавьте ссылки на системные сборки: Metabase, Rds.
Sub UserProc;
Var
mb: IMetabase;
RdsDictObj: IMetabaseObject;
RdsDict: IRdsDictionary;
DictInst: IRdsDictionaryInstance;
Batch: IRdsDictionaryBatchUpdate;
Attr: IRdsAttribute;
data: IRdsDictionaryElementData;
Filters: IRdsDictionaryFilterConditions;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем справочник
RdsDictObj := mb.ItemById("DICT_COPY1").Edit;
DictInst := RdsDictObj.Open(Null) As IRdsDictionaryInstance;
// Создаем пакет для обновления элементов
batch := DictInst.CreateBatch(RdsDictionaryBatchType.Update) As IRdsDictionaryBatchUpdate;
data := DictInst.Elements.CreateData;
RdsDict := RdsDictObj As IRdsDictionary;
// Выбираем атрибут справочника
Attr := RdsDict.Attributes.FindById("NAME");
// Фильтруем элементы справочника по выбранному атрибуту
Filters := batch.Filter;
If Filters.FindByAttribute(Attr) <> Null Then
Filters.Clear;
End If;
// Задаем новое значение элементов по выбранному атрибуту
data.Value(data.AttributeIndex(Attr.Key)) := "Element " + DateTime.Now.ToString;
// Обновляем данные
batch.SetData(data);
batch.Execute;
End Sub UserProc;
В результате выполнения примера у всех элементов справочника DICT будут заменены наименования.
См. также: