Sub FormMacro_FindSerial(BalanceModule)
Dim sSerial 'строка серийного номера
Dim sQuote2 : sQuote2=Chr(34)
sSerial = TCSapp.InputBox("Поиск индивидуального номера", _
"Введите индивидуальный номер", sEmpty)
If Len(sSerial) Then
Dim idNmk
Call BalanceModule.Filter.ClearFilter
Call BalanceModule.Filter.ApplyFilter
idNmk = RS_General_Lib.FindSingleNomenclaturesByNumberString(sSerial)
If idNmk Then
Dim idClassNmk, idClassCurr 'Ссылка на базовый класс и текущий
Dim objNmk, objCurr
Dim cClass 'классы номенклатуры
Dim sNote, sName
Dim i
Set objNmk = TCSApp.SingleNmkFromId(idNmk)
objNmk.UserModuleName = objNmk.UniqueUserModuleName
Set objCurr = TCSApp.SingleNmkFromId(BalanceModule.Properties("ID").AsInteger)
objCurr.UserModuleName = objCurr.UniqueUserModuleName
idClassNmk = objNmk.Properties("NMK_CLASSIF_TYPE_REF").AsInteger
idClassCurr = objCurr.Properties("NMK_CLASSIF_TYPE_REF").AsInteger
If idClassNmk = idClassCurr Then
BalanceModule.DbTree.DbNodeByNodeId(objNmk.Properties("NODE_ID").AsInteger).Selected = True 'Здесь еще работает
i = BalanceModule.Locate("ID", idNmk, 0) 'Вылетает ошибка
' Set cClass = BalanceModule.ChildModules.ModuleByName("NmkSerialNumRest").AsIDispatch
' i = BalanceModule.ActionList.ActionByName("ShowDataChildAction").Execute
'SendCase "%4"
Else
Set cClass = TCSApp.NmkClasses
cClass.UserModuleName = cClass.UniqueUserModuleName
i = cClass.Locate("ID", idClassNmk, 0)
sNote = RS_General_Lib.GetNoteName1(idNmk, -1, RS_General_Lib.nnsNote)
sName = RS_General_Lib.GetNoteName1(idNmk, -1, RS_General_Lib.nnsName)
Call TCSapp.ShowDetailedMessage("Номенклатура найдена", _
"Найдено" & vbCrLf & sNote & sSpace & sName & vbCrLf & _
"в справочнике " & _
sQuote2 & cClass.Properties("NAME").DisplayText & sQuote2, _
"Закройте сообщение и перейдите в указанный класс")
'Call TCSApp.DeleteModuleByUserModuleName(cClass.UserModuleName)
With BalanceModule
Call .Filter.ClearFilter
Call .Filter.NewFilterItem(.Properties("NOTE"), RS_General_Lib.fkEQ, sNote)
Call .Filter.NewFilterItem(.Properties("NAME"), RS_General_Lib.fkEQ, sName)
Call .Filter.ApplyFilter
End With
Call TCSApp.DeleteModuleByUserModuleName(cClass.UserModuleName)
End if
Call TCSApp.DeleteModuleByUserModuleName(objNmk.UserModuleName)
Call TCSApp.DeleteModuleByUserModuleName(objCurr.UserModuleName)
End If 'idNmk
End If 'Len(sSerial)
End Sub