Re: Скрипт создания параметра номенклатуры

Здраствуйте!
Пытаюсть написать скрипт для создания параметра номенклатуры. Делаю по примеру из форума.
Вот, что у меня получилось:

Sub FormMacro_NomerTP(TCSActiveModule)
Dim Par       
Dim I 
Dim Childs
Dim Nmk

For i = 0 To TCSActiveModule.SelectedRowsCount - 1
    If TCSActiveModule.GotoSelectedRow(i) Then     
        Set Nmk = TCSApp.Nomenclatures(TCSApp.NmkClasses.Properties("ID").AsInteger)
        Set Childs = TCSActiveModule.CSDN_QueryInterface(IID_IChildModules)
        Set Childs = Nmk.ChildModules
        Set Par = Childs.ModuleByName("NmkParameters").Value
        If Not Par.SetParameterValueByParCode("N_TP", "Test", 0, True) Then Call TCSApp.MessageBox("Нет прав?")
        Set Par = Nothing
        Set Childs = Nothing
        Set Nmk = Nothing 
    End If
Next
End Sub


Скрипт не работает, подскажите почему?

Re: Скрипт создания параметра номенклатуры

Фух. Даже не знаю что и сказать. Что значит не работает? А написано зедсь уж совсем не понятно что если честно. Для скрипта еще важно откуда его вызывают.

Вот пример работающий, устанавливает значения параметров с кодами N_TP, N_TP1. параметры конечно должны существовать. Вызывать из номенклатурника, рабочего стола. В принципе должен работать в спецификации и ТП( но не проверял)


Sub FormMacro_Test(TCSActiveModule)

If  TCSActiveModule.SelectedRowsCount>0 Then 

  For i=0 To TCSActiveModule.SelectedRowsCount-1 

    If TCSActiveModule.GotoSelectedRow(i) Then

      'Вариат 1
      Set Pars = TCSActiveModule.Properties("Parameters").AsIDispatch
      If Not Pars Is Nothing Then
         R = Pars.SetParameterValueByParCode("N_TP", "Test", 0, True)
         If Not R Then Call TCSApp.MessageBox("Нет прав?") 
      End If      
      Set Pars = Nothing

      'Вариат 2 намного проще, но рабоатет не совсеми
      If TCSActiveModule.CanEditValue Then Call TCSActiveModule.SetParameterValue( "N_TP1", "Test" )          

    End If

  Next

Else
  Call TCSApp.ShowMessageBox( "", "Выделите записи!" )
End If
 
End Sub