Создание неуникального индекса в таблице справочника НСИ

На языке Fore приведены примеры создания неуникального индекса в таблице справочника НСИ. Данный индекс позволят быстрее выполнять запросы.

Для выполнения примеров предполагается наличие справочника НСИ с идентификатором MDM_DICT_INDEX. Данный справочник должен содержать неуникальный ключ с идентификатором NUI0. В состав ключа входят только простые атрибуты, содержащие одно значение.

Результат выполнения примеров: в дочерней таблице справочника MDM_DICT_INDEX будет создан неуникальный индекс на основе неуникального ключа NUI0.

Примечание. Если неуникальный ключ в табличном справочнике НСИ содержит заимствованные атрибуты или атрибуты с множественными значениями, то создание неуникального индекса на его основе невозможно.

Пример

Добавьте ссылки на системные сборки: Metabase, Rds.

Sub UserProc;
Var
    MB: IMetabase;
    Dict: IRdsDictionary;
    Keys: IRdsNonUniqueKeys;
    Key: IRdsNonUniqueKey;
Begin
    // Получаем текущий репозиторий
    MB := MetabaseClass.Active;
    // Получаем справочник НСИ
    Dict := MB.ItemById("MDM_DICT_INDEX").Edit As IRdsDictionary;
    // Получаем коллекцию неуникальных ключей табличного справочника НСИ
    Keys := Dict.NonUniqueKeys;
    // Находим ключ с идентификатором NUI0
    Key := Keys.FindById("NUI0");
    // Создаем на основе данного ключа неуникальный индекс в дочерней таблице справочника
    (Key As IMetaIndex).Enabled := True;
    // Сохраняем изменения
    (Key.Dictionary As IMetabaseObject).Save;
End Sub UserProc;

См. также:

Примеры