# kompas_worker.py from PyQt6.QtCore import QObject, pyqtSignal import pythoncom from parser.main import KompasDocumentParser class KompasWorker(QObject): result_ready = pyqtSignal(object) error_occurred = pyqtSignal(str) def run_kompas(self): try: # Инициализируем COM правильно pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED) # Выполняем работу с КОМПАС parser = KompasDocumentParser() documents = parser.get_open_documents() # Отправляем результат обратно self.result_ready.emit(documents) except Exception as e: import traceback error_msg = f"[Ошибка] {e}\n{traceback.format_exc()}" self.error_occurred.emit(error_msg) finally: pythoncom.CoUninitialize()