Гордон, вы правы, мне необходимо разузловывать именно активные версии. Теперь сваял следующее сомнительное произведение:
'-------------------------------------------------
Sub show_spec(specID As Long)
iPos = iPos + 1
On Error Resume Next
Dim spec, version As Object
Set version = App.NmkSpecificationVersions(specID)
Call version.first
cs1 = version.Properties("ID").displaytext
If (cs1 = "") Then GoTo 100
Set spec = App.NmkSpecification(specID, cs1)
On Error GoTo 90
If (spec Is Nothing) Then GoTo 100
Call spec.first
While Not spec.EOF
Dim number, designation, name, sID As String
' читаем (для теста удобно)
sID = spec.Properties("NMK_ID").displaytext
number = spec.Properties("POSITION").displaytext
designation = spec.Properties("NMK_NOTE").displaytext
name = spec.Properties("NMK_NAME").displaytext
' ну, тут добавляем в коллекшн, просто обходим все дерево итерационно
Call childs.Add(sID, sID)
Call spec.Next
' отображаем
mySheet.Cells(iPos, 3) = sID
mySheet.Cells(iPos, 4) = number
mySheet.Cells(iPos, 5) = designation
mySheet.Cells(iPos, 6) = name
iPos = iPos + 1
Wend
90
Set spec = Nothing
100
End Sub
'-----------
вызывается эта красота примерно так:
While childs.Count
Dim sID As String
sID = childs.Item(1)
Call childs.Remove(1)
Call show_spec(CLng(sID))
Wend
Сомнительность произведения в том, что всю информацию оно все равно не выдает! Правда, записей триста вываливается, но не более. Может, из-за того, что NmkSpecificationVersions тоже объект TCS_App?
Вы не подскажете какое-нибудь решение?