Исходный код
Option Explicit
Call TDMSComments_Remove_Example("Проверка свойств Has и Handle у комментария")
' Пример поочередно создает и удаляет комментарий у выбранного пользователя
Sub TDMSComments_Remove_Example(commText)
Dim Comments, userDialog, retVal, user, comment, dict
' Открываем диалог выбора пользователя
Set userDialog = ThisApplication.Dialogs.SelectUserDlg
retVal = userDialog.Show
' Проверяем был ли выбран пользователь, и диалог закрыт по кнопке OK
If (userDialog.Users.Count = 0) or (retVal <> True) Then Exit Sub
' Берем первого выбранного в диалоге пользователя и инициализируем коллекцию его комментариев
Set user = userDialog.Users(0)
Set Comments = user.Comments
Set dict = ThisApplication.Dictionary
' Проверяем права текущего пользователя
If (ThisApplication.CurrentUser.Type = tdmSystemAdministrator) Then
' Проверяем наличие ранее созданного комментария, если находим, удаляем его
If (dict.Exists(user.Login)) Then
If (Comments.Has (dict(user.Login))) Then
Set comment = Comments(dict(user.Login))
Comments.Remove(comment)
MsgBox "Комментарий успешно удалён!"
Exit Sub
End If
End If
' Создаем новый комментарий
Set comment = Comments.Create
comment.Text = commText
' Если в словаре нет ключа комментария, создаем его
If Not ThisApplication.Dictionary.Exists(user.Login) Then
' Создаем запись в словаре по логину пользователя,
' в качестве значения используем объект комментарий
dict.Add user.Login, comment.Handle
Else
dict(user.Login) = comment.Handle
End If
MsgBox("Комментарий успешно создан!")
Else
MsgBox("Чтобы создать или удалить комментарий нужно обладать правами администратора!")
End If
End Sub