CreateByElement(DictionaryKey: Integer; ElementKey: Integer);
CreateByElement(DictionaryKey: uinteger; ElementKey: integer);
DictionaryKey. Ключ справочника НСИ;
ElementKey. Ключ элемента справочника НСИ.
Конструктор CreateByElement создает новый шаблон зависимостей в соответствии с указанными параметрами справочника НСИ и элемента справочника.
Для получения ключей объекта и справочника используйте свойство IMetabaseObjectDescriptor.Key, либо метод IMetabase.GetObjectKeyById. Для получения ключа элемента используйте свойство IRdsDictionaryElement.Key, либо IRdsDictionaryElements.Element.
Для выполнения примера предполагается наличие справочников НСИ с идентификаторами «DICT» и «DICT1».
Добавьте ссылки на системные сборки Metabase, Rds.
Sub UserProc;
Var
MB: IMetabase;
Obj, Dictionary: IMetabaseObjectDescriptor;
Elements: IRdsDictionaryElements;
Depends: IMbElementDependents;
Template: IMbElementDependentTemplate;
Begin
MB := MetabaseClass.Active;
Dictionary := MB.ItemById("Dict_1");
Obj := MB.ItemById("Obj_1");
Elements := (Dictionary.Open(Null) As IRdsDictionaryInstance).Elements;
// Настройки объекта:
Dictionary := Dictionary.EditDescriptor;
Dictionary.ElementDependenciesTrackingType := MbElementDependenciesTrackingType.Dependents;
Dictionary.SaveDescriptor;
// Новый шаблон для добавления зависимости
// Шаблон создается для первого элемента справочника НСИ
Template := New MbElementDependentTemplateClass.CreateByElement(Dictionary.Key, Elements.Element(1));
Template.ObjectKey := Obj.Key;
// Коллекция зависимостей элементов
Depends := Dictionary.ElementDependents;
Depends.Add(Template);
Depends.Database.Update(Depends);
Debug.WriteLine("Количество записей зависимости элементов справочника НСИ от объектов: " + Depends.Count.ToString);
End Sub UserProc;
Imports Prognoz.Platform.Interop.Rds;
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Obj, Dictionary: IMetabaseObjectDescriptor;
Elements: IRdsDictionaryElements;
Depends: IMbElementDependents;
Template: MbElementDependentTemplateClass = New MbElementDependentTemplateClassClass();
Begin
MB := Params.Metabase;
Dictionary := MB.ItemById["Dict_1"];
Obj := MB.ItemById["Obj_1"];
Elements := (Dictionary.Open(Null) As IRdsDictionaryInstance).Elements;
// Настройки объекта:
Dictionary := Dictionary.EditDescriptor();
Dictionary.ElementDependenciesTrackingType := MbElementDependenciesTrackingType.mbeledeptratypDependents;
Dictionary.SaveDescriptor();
// Новый шаблон для добавления зависимости
// Шаблон создается для первого элемента справочника НСИ
Template.CreateByElement(Dictionary.Key, Elements.Element[1] As Integer);
Template.ObjectKey := Obj.Key;
// Коллекция зависимостей элементов
Depends := Dictionary.ElementDependents;
Depends.Clear();
Depends.Add(Template);
Depends.Database.Update(Depends);
System.Diagnostics.Debug.WriteLine("Количество записей зависимости элементов справочника НСИ от объектов: " + Depends.Count.ToString());
End Sub;
После выполнения примера для указанного справочника будет включена функция отслеживания зависимостей элементов справочника от объектов репозитория. Для первого элемента будет создана новая зависимость от указанного объекта. Список зависимостей будет сохранен в базу репозитория.
См. также: