Тема: Пустой NodeID узла дерева

Подскажите, пожалуйста: почему после создания средствами API нового узла дерева его ID имеет "пустое значение"?
Вот пример, иллюстрирующий "поведение" TechnologiCS`а в этом случае:

Sub FormMacro_Test_CreateNewNode(TCSActiveModule)'Пример для форума
 Dim Nodes, sName1, sName2, iNode 
 
 'Запрашиваем название для нового классификатора
 sName1 = TCSApp.InputBox("Запрос", "Введите название", "Пример") 
                                                
 '"Подключаемся" к корневым узлам
 Set Nodes = TCSActiveModule.DbTree.RootNodes   
 If Not Nodes Is Nothing Then
  'Выбираем "верхушку" классификатора
  Nodes.Item(0).Selected=True
  
  'Создаём узел с заданным названием
  Call TCSActiveModule.DbTree.CreateNew
   TCSActiveModule.DbTree.Properties("NODETEXT").Value = sName1     
  On Error resume Next
  Call TCSActiveModule.DbTree.SaveChanges
  Call TCSActiveModule.DbTree.CancelChanges 
  Call TCSActiveModule.DbTree.RefreshTree
  'Только что созданный узел является выбранным, поэтому получаем его название и ИД
  sName2= TCSActiveModule.DbTree.Selected.Text
  iNode = TCSActiveModule.DbTree.Selected.NodeId
  'Проверяем, есть ли числовое значение у ИД
  If iNode Is Nothing Then
   Call TCSApp.ShowMessageBox("Сообщение", "NodeID Is Nothing для узла с именем "& sName2)
  Else
   Call TCSApp.ShowMessageBox("Сообщение", "NodeID для узла с именем "& sName2 &" = " & Cstr(iNode))     
  End If 
 End If  
End Sub

Пробовал искать перебором всех узлов - тот же результат. Текст нового узла классификатора функция находит, а значение NodeID возвращает пустое.

Re: Пустой NodeID узла дерева

А если убрать проверку

If iNode Is Nothing Then

и написать просто

 Call TCSApp.ShowMessageBox("Сообщение", "NodeID для узла с именем "& sName2 &" = " & Cstr(iNode))     

?

На самом деле проблема в строке

On Error resume Next

Она глушит сообщения об ошибках.  Если ее  убрать - сразу видно будет что в строке что указана выше имеется ошибка.

Re: Пустой NodeID узла дерева

Спасибо. Ваш совет помог.
Но теперь, если после создания нового узла обращаться к корневым узлам (например, как в примере выше, к Nodes) возникает ошибка:

Object is no longer valid
CSDN.RootDbNodes

Это так и должно быть?
И как поступать в этом случае - создавать заново?

Re: Пустой NodeID узла дерева

Если не ошибаюсь, не валидна будет переменная  Nodes

Если брать CSDN.RootDbNodes или инициализировать переменную заново
Nodes = CSDN.RootDbNodes

должно работать (не проверял правда)