Перейти к публикации

Открывание и закрывание документов Компас v21 через API


Рекомендованные сообщения

Добрый день!
Компас 21.0.6.

Код

private const string _progId = "Kompas.Application.5";

private static KompasObject _kompas5;
_kompas5 = System.Runtime.InteropServices.Marshal.GetActiveObject(_progId) as KompasObject;

private static IApplication _kompas7;
_kompas7 = _kompas5.ksGetApplication7() as IApplication;

private IKompasDocument doc = _kompas7.ActiveDocument;
doc = _kompas7.Documents.Open(fileName, true, false); //Открываю другой документ
//В Компасе открыто два документа
//_kompas7.Documents.Count здесь показывает 2 документа
doc.Close(DocumentCloseOptions.kdSaveChanges);
//В Компасе открыт один документ
//Но _kompas7.Documents.Count здесь все еще показывает 2 документа
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);

Т.е. ссылка на второй документ есть, а данных там нет. Получаю исключение при обращении по этой ссылке.

В компасе 19 и 20 все вышеописанные действия выполняются без ошибок.

Что не так?

Ссылка на сообщение
Поделиться на других сайтах


Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...