---
title: "Интерфейс IDocuments"
type: interface
api: [api7]
tags: [interface, api7, idocuments]
sources:
  - idocuments.html
---

*API интерфейсов. Версия 7 > Приложение > Коллекция документов *


## Интерфейс IDocuments

Коллекция документов, открытых в приложении КОМПАС-3D.
Иерархия:
IKompasAPIObject
IKompasCollection
IDocuments
Примечание:
Данный интерфейс может быть получен от интерфейса приложения IApplication с помощью свойства IApplication::Documents.


## Add - Создать новый документ и добавить его в коллекцию

Синтаксис Automation:
```
LPDISPATCH Add (long Type, BOOL Visible);
```
Синтаксис COM:
```
HRESULT Add([in] DocumentTypeEnum Type, [in, defaultvalue(TRUE)] VARIANT_BOOL Visible, [out, retval] IKompasDocument** Result);
Входные параметры:
Type    - тип документа из перечисления DocumentTypeEnum,
Visible    - видимость документа: TRUE создавать документ в видимом режиме, FALSE в слепом.
Возвращаемое значение:
указатель на интерфейс IKompasDocument
```


## AddCustomDocument - Создать новый документ по идентификатору и добавить его в коллекцию

Синтаксис Automation:
```
LPDISPATCH AddCustomDocument( BSTR DocumentTypeId );
```
Синтаксис COM:
```
HRESULT AddCustomDocument( BSTR DocumentTypeId, IKompasDocument** Result);
Возвращаемое значение:
указатель на интерфейс IKompasDocument
```


## AddCustomDocumentEx - Создать новый документ и добавить его в коллекцию

Синтаксис Automation:
```
LPDISPATCH AddCustomDocumentEx( BSTR DocumentTypeId, BOOL Visible );
```
Синтаксис COM:
```
HRESULT AddCustomDocumentEx( BSTR DocumentTypeId, BOOL Visible, IKompasDocument * * Result );
Возвращаемое значение:
указатель на интерфейс IKompasDocument
Входные параметры:
DocumentTypeId    - идентификатор специализации документа,
Visible    - TRUE - видимый документ, FALSE - скрытый документ.
Версия КОМПАС v22
```


## AddNewDocumentFromTemplate - Создать новый документ по шаблону и добавить его в коллекцию

Синтаксис Automation:
```
LPDISPATCH AddNewDocumentFromTemplate( BSTR TemplateFileName );
```
Синтаксис COM:
```
HRESULT AddNewDocumentFromTemplate( BSTR TemplateFileName, IKompasDocument** Result);
Возвращаемое значение:
указатель на интерфейс IKompasDocument
```


## AddNewDocumentFromTemplateEx - Создать новый документ по шаблону и добавить его в коллекцию

Синтаксис Automation:
```
LPDISPATCH AddNewDocumentFromTemplateEx( BSTR TemplateFileName, BOOL Visible );
```
Синтаксис COM:
```
HRESULT AddNewDocumentFromTemplateEx( BSTR TemplateFileName, BOOL Visible, IKompasDocument * * Result );
Возвращаемое значение:
указатель на интерфейс IKompasDocument
Входные параметры:
TemplateFileName    - путь к файлу шаблона,
Visible    - TRUE - видимый документ, FALSE - скрытый документ.
Версия КОМПАС v22
```


## AddWithDefaultSettings - Создать новый документ с параметрами из настроек для новых документов

Синтаксис Automation:
```
LPDISPATCH AddWithDefaultSettings( DocumentTypeEnum Type, BOOL Visible );
```
Синтаксис COM:
```
HRESULT AddWithDefaultSettings( DocumentTypeEnum Type, BOOL Visible, IKompasDocument** Result );
Входные параметры:
Type    - тип документа DocumentTypeEnum,
Visible    - TRUE видимый, - FALSE - невидимый.
Возвращаемое значение:
индекс линии разрыва,
указатель на интерфейс IKompasDocument.
```


## DocumentSynchronize - Синхронизировать с зависимыми документами

Тип данных: BOOL
Синтаксис Automation:
```
DocumentSynchronize = Object.DocumentSynchronize    Получить свойство (* )
Object.DocumentSynchronize = DocumentSynchronize    Установить свойство (* )
DocumentSynchronize = Object.GetDocumentSynchronize()    Получить свойство(**)
Object.SetDocumentSynchronize( DocumentSynchronize )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_DocumentSynchronize( &DocumentSynchronize )    Получить свойство
Object.put_DocumentSynchronize( DocumentSynchronize )    Установить свойство
Свойство позволяет устанавливать и получать признак синхронизации с зависимыми документами. Реализовано только для спецификации.
```


## GetEmbodimentsTree - Дерево исполнений

Синтаксис Automation:
```
VARIANT GetEmbodimentsTree( BSTR FileName, ksVariantMarkingTypeEnum MarkingType, BOOL AddSystemDelimer, BOOL AddSpaces, long * CurrentEmbodiment );
```
Синтаксис COM:
```
HRESULT GetEmbodimentsTree( BSTR FileName, ksVariantMarkingTypeEnum MarkingType, BOOL AddSystemDelimer, BOOL AddSpaces, long * CurrentEmbodiment, VARIANT * Tree );
Входные параметры:
FileName    - Имя файла,
MarkingType    - Формат возвращаемых обозначений ksVariantMarkingTypeEnum,
AddSystemDelimer    - Возвращать системные разделители в обозначении,
AddSpaces    - Добавить пробелы для определения уровня исполнения в дереве исполнений,
CurrentEmbodiment    - Индекс текущего исполнения в списке исполнений.
Возвращаемое значение:
- Дерево исполнений. Массив узлов дерева исполнений. SAFEARRAY BSTR - (VT_ARRAY | VT_BSTR)
```


## GetLoadCombinations - Получить массив типов загрузки в виде массива SAFEARRAY BSTR - (VT_ARRAY | VT_BSTR)

Синтаксис Automation:
```
VARIANT GetLoadCombinations (LPCTSTR PathName, long * CurrentIndex);
```
Синтаксис COM:
```
HRESULT GetLoadCombinations([in] BSTR PathName, [out] long * CurrentIndex, [out, retval] VARIANT * Value );
Входные параметры:
PathName    - полное имя файла документа, состоящее из пути, имени и расширения файла.
Выходные параметры:
CurrentIndex    - текущий индекс типа загрузки, по которому загружается документ по умолчанию.
Возвращаемое значение:
тип значения VARIANT - массив типов загрузки в виде массива SAFEARRAY BSTR - (VT_ARRAY    VT_BSTR)
```
Примечание:
Метод позволяет получить массив типов загрузки документа до открытия документа.
Метод в настоящее время используется только для сборки 3D. У сборки 3D есть три умолчательных способа загрузки, индексы которых соответствуют перечислению ksLoadStateEnum:
| Полная | 0 | - полная загрузка, |
| --- | --- | --- |
| Пустая | 1 | - все компоненты не загружены, |
| Упрощенная | 2 | - все компоненты загружены частично. |
Кроме этого, могут быть еще и пользовательские типы загрузки.


## GetLoadCombinationsParam - Получить интерфейс типов загрузки документа

Синтаксис Automation:
```
LPDISPATCH GetLoadCombinationsParam (BSTR PathName);
```
Синтаксис COM:
```
HRESULT GetLoadCombinationsParam (BSTR PathName, ILoadCombinationsParam ** Result );
Входные параметры:
PathName - имя документа
Возвращаемое значение:
Указатель на интерфейс ILoadCombinationsParam
```


## GetOpenDocumentParam - Получить интерфейс параметров открытия документа

Синтаксис Automation:
```
LPDISPATCH GetOpenDocumentParam();
```
Синтаксис COM:
```
HRESULT GetOpenDocumentParam( IOpenDocumentParam ** Result );
Возвращаемое значение:
Указатель на интерфейс IOpenDocumentParam
```


## Item - Документ, заданный по имени, ссылке или по индексу

Тип данных: указатель на интерфейс документа IKompasDocument
Синтаксис Automation:
```
document = iObject.Item (Index)    Получить свойство(* )
document = iObject.GetItem (Index)    Получить свойство(**)
```
Синтаксис COM:
```
iObject->get_IItem ( Index, &Document )    Получить свойство
Входные параметры:
Index    - Тип VARIANT, полное имя PathName документа, ссылка на документ или индекс в коллекции.
```
Примечание:
1. Свойство доступно только для чтения.
2. Полное имя файла документа состоит из пути, имени и расширения файла.


## LockTemplatesSettings - Игнорировать настройки шаблонов новых документов при создании документов через функции API

Тип данных: BOOL
Синтаксис Automation:
```
LockTemplatesSettings = Object.LockTemplatesSettings    Получить свойство (* )
Object.LockTemplatesSettings = LockTemplatesSettings    Установить свойство (* )
LockTemplatesSettings = Object.GetLockTemplatesSettings()    Получить свойство(**)
Object.SetLockTemplatesSettings( LockTemplatesSettings )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_LockTemplatesSettings( &LockTemplatesSettings )    Получить свойство
Object.put_LockTemplatesSettings( LockTemplatesSettings )    Установить свойство
Версия КОМПАС v22
```


## Open - Открыть документ

Синтаксис Automation:
```
LPDISPATCH Open (LPCTSTR PathName, BOOL Visible, BOOL ReadOnly);
```
Синтаксис COM:
```
HRESULT Open([in] BSTR PathName, [in, defaultvalue(TRUE)] VARIANT_BOOL Visible, [in, defaultvalue(FALSE)] VARIANT_BOOL ReadOnly, [out, retval] IKompasDocument** Result);
Входные параметры:
PathName    - полное имя файла документа, состоящее из пути, имени и расширения файла,
Visible    - видимость документа: TRUE создавать документ в видимом режиме, FALSE в невидимом,
ReadOnly    - TRUE - открыть документ только для чтения.
Возвращаемое значение:
указатель на интерфейс IKompasDocument    - в случае успешного завершения,
NULL    - в случае неудачи.
```
Примечание:
Открывает существующий документ и добавляет его в коллекцию.


## OpenDocument - Открыть документ с заданными параметрами открытия документа

Синтаксис Automation:
```
LPDISPATCH OpenDocument( BSTR FileName, IOpenDocumentParam * Param )
```
Синтаксис COM:
```
HRESULT OpenDocument( BSTR FileName, IOpenDocumentParam * Param, IKompasDocument ** Result );
Возвращаемое значение:
Указатель на интерфейс документа IKompasDocument
Входные параметры:
FileName    - имя файла документа
Param    - указатель на интерфейс параметров открытия документа IOpenDocumentParam
```


## OpenEx - Открыть документ

Синтаксис Automation:
```
LPDISPATCH OpenEx (LPCTSTR PathName, BOOL Visible, BOOL ReadOnly, VARIANT LoadCombinationIndex);
```
Синтаксис COM:
```
HRESULT OpenEx([in] BSTR PathName, [in, defaultvalue(TRUE)] VARIANT_BOOL Visible, [in, defaultvalue(FALSE)] VARIANT_BOOL ReadOnly, [in]VARIANT LoadCombinationIndex, [out, retval] IKompasDocument** Result);
Входные параметры:
PathName    - полное имя файла документа, состоящее из пути, имени и расширения файла,
Visible    - видимость документа: TRUE создавать документ в видимом режиме, FALSE в невидимом,
ReadOnly    - TRUE - открыть документ только для чтения,
LoadCombinationIndex    - тип VARIANT - индекс загружаемого набора или имя набора.
Возвращаемое значение:
указатель на интерфейс IKompasDocument    - в случае успешного завершения,
NULL    - в случае неудачи.
```
Примечание:
1. Открывает существующий документ и добавляет его в коллекцию.
2. Для сборки 3D можно задать индекс набора для загрузки. Для других типов документов индекс загружаемого набора игнорируется.


## RecoverError - Признак ошибки после открытия файла с восстановлением

Тип данных: ksRecoverErrorEnum
Синтаксис Automation:
```
RecoverError = Object.RecoverError    Получить свойство (* )
Object.RecoverError = RecoverError    Установить свойство (* )
RecoverError = Object.GetRecoverError()    Получить свойство(**)
Object.SetRecoverError( RecoverError )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_RecoverError( &RecoverError )    Получить свойство
Object.put_RecoverError( RecoverError )    Установить свойство
```


## RecoverMode - Признак открытия файлов в режиме восстановления

Тип данных: BOOL
Синтаксис Automation:
```
RecoverMode = Object.RecoverMode    Получить свойство (* )
Object.RecoverMode = RecoverMode    Установить свойство (* )
RecoverMode = Object.GetRecoverMode()    Получить свойство(**)
Object.SetRecoverMode( RecoverMode )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_RecoverMode( &RecoverMode )    Получить свойство
Object.put_RecoverMode( RecoverMode )    Установить свойство
```


## RecoverModeErrorList - Список ошибок, исправленных при открытии файла с восстановлением

Тип данных: VARIANT
Синтаксис Automation:
```
RecoverModeErrorList = Object.RecoverModeErrorList( )    Получить свойство(* )
RecoverModeErrorList = Object.GetRecoverModeErrorList()    Получить свойство(**)
```
Синтаксис COM:
```
Object.get_RecoverModeErrorList( &RecoverModeErrorList )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.
Список ошибок возвращается в виде массива VT_ARRAY | VT_I4.
