Ну вот небольшое макрос, который несколько облегчит работу (но не решит проблему).
Зайдите в справочник TechnologiCS Заблокированные документы и добавьте в модуль вот такой код
Const PRO_ENG_DOCTYPE = "Документ Pro/Engineer"
Const PRO_FILE_TYPE = "Файл Pro/Engineer"
Sub FormMacro_CloseProEngDOCs(TCSActiveModule) 'Закрыть документы Pro/Engineer
Call DoCloseProEngDOCs( TCSActiveModule, True )
End Sub
Sub FormMacro_RefreshProEngDOCs(TCSActiveModule) 'Обновить документы Pro/Engineer
Call DoCloseProEngDOCs( TCSActiveModule, False )
End Sub
Sub DoCloseProEngDOCs( TCSActiveModule, DoClose )
If TCSActiveModule.Properties("TYPE_NOTE").AsString<>PRO_ENG_DOCTYPE Then
Call TCSApp.ShowErrorMessage( "Документ не является документом '" + PRO_ENG_DOCTYPE + "'! Не могу продолжать работу." )
Exit Sub
End If
TCSApp.FileTypes.Filter.Active = False
Call TCSApp.FileTypes.Refresh
Call TCSApp.FileTypes.First
If Not TCSApp.FileTypes.Locate( "DESC", PRO_FILE_TYPE, 0 ) Then
Call TCSApp.ShowErrorMessage( "Не могу найти тип файла '" + PRO_FILE_TYPE + "'! Не могу продолжать работу." )
Exit Sub
End If
FileTypeId = TCSApp.FileTypes.Properties("ID").AsInteger
FileTypeExt = TCSApp.FileTypes.Properties("EXT").AsString
OldMode = TCSApp.ShowOneTreeNodeData
TCSApp.ShowOneTreeNodeData = False
Set Files = TCSActiveModule.Properties("FILES").AsIDispatch
TCSApp.ShowOneTreeNodeData = OldMode
Set Msgs = TCSApp.CreateStrings
'Dim Msgs As ICSDNStrings
If Not Files Is Nothing Then
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Folder = Fso.GetFolder( TCSActiveModule.GetDefaultUnloadPath )
For Each File in Folder.Files
Names = Split( File.Name, "." )
NamesLen = UBound( Names, 1 )
If ( "." + Names(NamesLen-1)=FileTypeExt ) And ( TCSApp.StringToIntDef( Names(NamesLen), -1 )<>-1 ) Then
If Not Files.Locate( "NAME", File.Name, 0 ) Then
If TCSApp.MessageBoxAskYesNo( "Запрос", "Обнаружен новый файл '" + File.Name + "'. Добавить его как тип '" + PRO_FILE_TYPE + "' ?", False, 0, False )=1 Then
Call Files.AddFile( File.Path, FileTypeId )
I = Msgs.Add( "Добавлен файл '"+File.Name+"' с типом '" + PRO_FILE_TYPE + "'" )
End If
End If
End If
Next
End If
If DoClose Then
Call TCSActiveModule.CloseDoc( True )
Else
Call TCSActiveModule.SaveDoc
End If
If Msgs.Count>0 Then
Call Msgs.ShowModal( "В файловом составе были проведены следующие изменения", TCSApp.ScreenWidth / 2, TCSApp.screenHeight / 2 )
End If
End Sub
Замените на правильное значение константы PRO_ENG_DOCTYPE, PRO_FILE_TYPE (в коде).
Затем создайте два макроса FormMacro_CloseProEngDOCs(TCSActiveModule) Закрыть документы Pro/Engineer и FormMacro_RefreshProEngDOCs Обновить документы Pro/Engineer.
Теперь на указанных документах можно запускать в данном окне эти макросы вместо стандартных команд Закрыть документ, Обновить документ ( в TechnologiCS 5.7 можно команды на панель вынести, а стандартные вообще скрыть).
Это просто пример демонстрирующий возможности, более менее рабочий, но скорей всего требует доработки.
Что он делает - просто сам добавляет файлы автоматически выставляя им тип файла и далее вызывает стандартный обработчик. С эскизами не совсем понято что именно вы делаете, так что здесь в примере отсутствует.
Ограничения примера
В будущем думаю проблема будет решаться значительно легче (сейчас перерабатываем эти механизмы) , а пока попробуйте вот такой вариант.