Вот примерчик. Но еще раз обращу внимание это именно связанная номенклатура для использования в АПИ, в самом TechnologiCS ее не видно, а в АПИ можно использовать как вам требуется.
Ошибку со связанной номенклатурой постараемся поправить в ближайшем сервис паке на 5.7
Sub FormMacro_Test(TCSActiveModule)'Тест связанных через АПИ позиций
Const MY_FLG = 12345 'Мой флаг
Set ApiLinks = TCSActiveModule.Properties("API_NmkUserLinks").AsIDispatch
If Not ApiLinks Is Nothing Then
If TCSApp.NmkClasses.ShowModal( "Выберите класс номенклатуры, которую хотите привязать" )>0 Then
ClassId = TCSApp.NmkClasses.Properties("ID").AsInteger
If TCSApp.Nomenclatures( ClassId ).ShowModal( "Выберите номенклатуру котороую хотите привязать" )>0 Then
Dim KeyProperties(2)
Dim KeyValues(2)
KeyProperties(0) = "USER_FLAG"
KeyProperties(1) = "NMK_ID"
KeyProperties(2) = "NMK_ATTACH_ID"
KeyValues(0) = MY_FLG
KeyValues(1) = TCSApp.Nomenclatures( ClassId ).Properties("ID").AsInteger
KeyValues(2) = ClassId
If Not ApiLinks.Locate( KeyProperties, KeyValues, 0 ) Then
Call ApiLinks.CancelChanges
Call ApiLinks.CreateNew
For i=0 To 2
ApiLinks.Properties( KeyProperties(i) ).Value = KeyValues(i)
Next
ApiLinks.Properties( "REM" ).AsString = "Связанная номенклатура для АПИ"
Call ApiLinks.SaveChanges
End If
I = ApiLinks.ShowModal( "Связнные номенклатурные позиции (доступны только через АПИ)" )
End If
End If
End If
End Sub