Re: Удаление классификатора

Нужно удалить классификатор в одном из ном. справочников (несколько уровней вложенности, около 1000 нод).

Насоздавали легко,


    TCSActiveModule.DbTree.CreateNew                           
    TCSActiveModule.DbTree.Properties("NodeText").Value = "qqq"
    TCSActiveModule.DbTree.SaveChanges

а удалять не понятно как... ошибки - методы не поддерживаются.


    
    Call TCSActiveModule.DbTree.DeleteAction.Execute

Re: Удаление классификатора

Call TCSActiveModule.DbTree.DeleteRecord( True ) 

Re: Удаление классификатора

Чудеса smile Вроде бы пробовал так, а теперь работает, спасибо!

Re: Удаление классификатора

Скрипт для удаления классификатора
(не тестировал особо, но работает уверенно)


Sub Req_KillTree(TCSActiveModule)           
  NI = TCSActiveModule.DbTree.Selected.NodeID
  Req = True
  Do While Req                                             
    If TCSActiveModule.DbTree.Selected.Count > 0 Then 'у исходной ноды есть дочерние ноды
      TCSActiveModule.DbTree.Selected.Item(0).Selected = True 
      Call Req_KillTree(TCSActiveModule)
    End If
    '
    If TCSActiveModule.DbTree.Selected.NodeID = NI Then
      Req = False                                      
    Else
      TCSActiveModule.DbTree.DbNodeByNodeId(NI).Selected = True
    End If 
  Loop
  Call TCSActiveModule.DbTree.DeleteRecord( True )
  Kill_Ct = Kill_Ct + 1
End Sub

Public Kill_Ct

Sub FormMacro_IV_KillTree(TCSActiveModule)
  Kill_Ct = 0
  Call Req_KillTree(TCSActiveModule)
  Call TCSApp.ShowMessageBox("Сообщение", "Скрипт завершил работу. Удалено " + cstr(Kill_Ct) + " нод дерева.")
End Sub

Re: Удаление классификатора

Так есть эта функция в демонстрационной базе:

CSDN_ClearData.FullDeleteNode( DbTree, DeletedNodeId )

Тестировано и работает  :)