FieldsOnly: IStringList
Свойство FieldsOnly определяет список полей/атрибутов для обновления.
По умолчанию свойство не задано, при установке обновления выполняется обновление всех полей таблицы/атрибутов справочника. Способ обновления данных определяется свойством IMetabaseUpdateDataObjectNode.BatchMode.
Для обновления отдельных полей/атрибутов укажите их идентификаторы в свойстве FieldsOnly. Заданные поля/атрибуты будут обновлены при установке обновления для всех записей таблицы/элементов справочника в соответствии с выбранным способом обновления данных объекта.
Для обновления отдельных записей/элементов используйте свойство IMetabaseUpdateDataObjectNode.PrimaryKeysOnly.
Совет. Если в обновление включены записи таблицы/элементы справочника, которых нет в обновляемом объекте, убедитесь, что в обновление добавлены все обязательные атрибуты.
Для выполнения примера предполагается наличие репозитория НСИ с идентификатором REP_NSI, расположенного в нём справочника НСИ с идентификатором DICT_1. В справочнике НСИ предполагается наличие обычных атрибутов ATTR4, ATTR5, элементов справочника с ключами «1», «2».
Добавьте ссылки на системные сборки: Metabase, Collections.
Sub UserProc;
Var
Mb: IMetabase;
MUpdate: IMetabaseUpdate;
RootFolder: IMetabaseUpdateFolderNode;
Node: IMetabaseUpdateDataObjectNode;
Begin
//Определение текущего репозитория
Mb := MetabaseClass.Active;
//Вызов менеджера обновлений для создания нового обновления
MUpdate := Mb.CreateUpdate;
//Создание структуры обновления
RootFolder := MUpdate.RootFolder;
Node := RootFolder.Add(MetabaseUpdateNodeType.DataObject) As IMetabaseUpdateDataObjectNode;
//Определение способа обновления объекта
Node.BatchMode := ObjectUpdateDataBatchMode.UpdateInsert;
//Получение объекта (справочника НСИ), расположенного в объекте-контейнере (репозитории НСИ)
Node.Object := Mb.ItemByIdNamespace("DICT_1", Mb.ItemById("REP_NSI").Key).Bind;
//Определение способа обновления данных объекта
Node.UpdatePart := MetabaseObjectUpdatePart.DataMetadata;
//Перечисление атрибутов
справочника, которые необходимо обновить
Node.FieldsOnly.Add("ATTR4");
Node.FieldsOnly.Add("ATTR5");
//Перечисление элементов справочника, которые необходимо обновить
Node.PrimaryKeysOnly.Add(1, Null);
Node.PrimaryKeysOnly.Add(2, Null);
//Определение полного пути и имени файла, в который будет сохранено
обновление
MUpdate.SaveToFileNF("C:\Dict_1.pefx");
End Sub UserProc;
После выполнения примера будет создано новое обновление. Файл обновления будет расположен в указанной директории. В обновление будут включены атрибуты ATTR4, ATTR5 элементов с ключами «1», «2» справочника НСИ DICT_1.
Для установки созданного обновления в обновляемом репозитории предполагается наличие репозитория НСИ с идентификатором REP_NSI, расположенного в нём справочника НСИ с идентификатором DICT_1. В справочнике НСИ предполагается наличие обычных атрибутов ATTR4, ATTR5, элементов справочника с ключами «1», «2». При установке обновления будут обновлены только атрибуты ATTR4, ATTR5 элементов справочника с ключами «1», «2». Остальные атрибуты и элементы обновлены не будут.
См. также: