Исходный текст
Option Explicit
Call TestClsProperties()
'=====================================================================
'Протестировать свойства и методы объекта TDMSClassifier.
'Для выполнения скрипта необходимы права системного администратора.
'=====================================================================
Sub TestClsProperties()
Dim clsCol, cls, clsNew, RetVal, usersNum, objectsNum, SelectClassifDlg
'Получить ссылку на первый по порядку узел классификатора и его содержание (коллекцию)
Set cls = ThisApplication.Classifiers(0)
Set clsCol = cls.Classifiers
If cls.CanAssign <> False Then
'Если узел присваиваемый, проверить - есть ли ссылающиеся на него
'пользователи или объекты
objectsNum = cls.AssignedObjects.Count
usersNum = cls.AssignedUsers.Count
If usersNum > 0 Or objectsNum > 0 Then
MsgBox "Классификатор " & cls.Description & _
" назначен для " & usersNum & " пользователей." & Chr(13) &_
"На классификатор " & cls.Description & _
" ссылаются атрибуты " & objectsNum & " объектов.", vbInformation
Else: MsgBox "Классификатор " & cls.Description & Chr(13) &_
"не присвоен ни одному объекту/пользователю системы.", vbInformation
End If
Else
'Если узел неприсваиваемый, скорее всего это узел-"папка",
'содержащий подразделы. Создадим новый классификатор в его составе
Set clsNew = clsCol.Create
clsNew.Description = "New classifier for test"
clsNew.Code = "NT"
clsNew.Comments(0) = "Тестовый комментарий"
RetVal = MsgBox ("Создан новый классификатор " & clsNew.Description & Chr(13) & _
"Родительский узел: " & clsNew.Parent.Description & Chr(13) & _
"Корневой узел: " & clsNew.Root.Description & Chr(13) & _
"Системное имя (по умолчанию): " & clsNew.SysName & Chr(13) & _
"Дескриптор (handle): " & clsNew.Handle & Chr(13) & Chr(13) & _
"Удалить его из коллекции?", vbInformation + vbYesNo)
If RetVal <> vbNo Then clsNew.Erase
End If
End Sub
'=====================================================================