На языке 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;
См. также: