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

*API интерфейсов. Версия 7 > Работа со спецификацией *


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

Интерфейс объекта спецификации.
Иерархия:
IKompasAPIObject
ISpecificationObject
Описание:
Различаются несколько типов объектов спецификации (см. ksSpecificationObjectTypeEnum). Данный интерфейс позволяет получить общие параметры для объектов спецификации и изменить общие параметры для базовых и вспомогательных объектов спецификации.
Примечание:
1. После изменения параметров объекта спецификации требуется вызвать метод ISpecificationObject::Update.
2. Данный интерфейс можно получить у базового ISpecificationBaseObject и вспомогательного ISpecificationCommentObject объектов спецификации и через безопасный массив ISpecificationDescription::Objects для остальных типов объектов спецификации.


## AdditionalBlock - Номер блока дополнительных разделов

Тип данных: long
Синтаксис Automation:
```
AdditionalBlock = iObject.AdditionalBlock    Получить свойство (* )
iObject.AdditionalBlock = AdditionalBlock    Установить свойство (* )
AdditionalBlock = iObject.GetAdditionalBlock()    Получить свойство (**)
iObject.SetAdditionalBlock (AdditionalBlock)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_AdditionalBlock (&AdditionalBlock)    Получить свойство
iObject->put_AdditionalBlock (AdditionalBlock)    Установить свойство
```
Примечание:
1. Свойство доступно только для базового и вспомогательного объекта спецификации.
2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


## AdditionalColumns - Дополнительные колонки

Тип данных: указатель на интерфейс ISpecificationColumns коллекции колонок объекта спецификации
Синтаксис Automation:
```
AdditionalColumns = iObject.AdditionalColumns    Получить свойство (* )
AdditionalColumns = iObject.GetAdditionalColumns()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_AdditionalColumns (&AdditionalColumns)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## AdditionalSection - Номер дополнительного раздела

Тип данных: long
Синтаксис Automation:
```
AdditionalSection = iObject.AdditionalSection    Получить свойство (* )
iObject.AdditionalSection = AdditionalSection    Установить свойство (* )
AdditionalSection = iObject.GetAdditionalSection()    Получить свойство (**)
iObject.SetAdditionalSection (AdditionalSection)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_AdditionalSection (&AdditionalSection)    Получить свойство
iObject->put_AdditionalSection (AdditionalSection)    Установить свойство
```
Примечание:
1. Свойство доступно только для базового и вспомогательного объекта спецификации.
2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


## AttachedDocuments - Присоединенные документы

Тип данных: указатель на интерфейс IAttachedDocuments коллекции присоединенных документов
Синтаксис Automation:
```
AttachedDocuments = iObject.AttachedDocuments    Получить свойство (* )
AttachedDocuments = iObject.GetAttachedDocuments()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_AttachedDocuments (&AttachedDocuments)    Получить свойство
```
Примечание:
1. Получить коллекцию можно только для базовых и вспомогательных объектов спецификации, если в стиле для заданного раздела установлен признак ручное заполнение или чтение из основной надписи.
2. Свойство доступно только для чтения.


## BlockNumberByIndex - Номер блока

Тип данных: long
Синтаксис Automation:
```
BlockNumber = iObject.BlockNumberByIndex (index)    Получить свойство (* )
BlockNumber = iObject.GetBlockNumberByIndex (index)    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_BlockNumberByIndex (index, &BlockNumber)    Получить свойство
Входные параметры:
index    - индекс объекта в общем массиве объектов спецификации.
```
Примечание:
1. Свойство позволяет получить номер блока объекта спецификации.
2. Один и тот же базовый объект спецификации может быть вставлен в спецификации несколько раз в нескольких блоках.
3. Свойство доступно только для чтения.


## Columns - Колонки объекта спецификации

Тип данных: указатель на интерфейс ISpecificationColumns коллекции колонок объекта спецификации
Синтаксис Automation:
```
Columns = iObject.Columns    Получить свойство (* )
Columns = iObject.GetColumns()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Columns( &Columns )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Delete - Удалить объект

Синтаксис Automation:
```
BOOL Delete();
```
Синтаксис COM:
```
HRESULT Delete( [out, retval] BOOL* Result );
```
Примечание:
Метод позволяет удалить базовый или вспомогательный объект спецификации из документа и из коллекции.


## Edit - Редактировать объект

Синтаксис Automation:
```
BOOL Edit();
```
Синтаксис COM:
```
HRESULT Edit ([out, retval] BOOL* Result);
```
Примечание:
Метод позволяет запустить процесс визуального редактирования для базового или вспомогательного объекта спецификации.


## FirstOnSheet - Размещать объект в начале нового листа спецификации

Тип данных: BOOL
Синтаксис Automation:
```
FirstOnSheet = iObject.FirstOnSheet    Получить свойство (* )
iObject.FirstOnSheet = FirstOnSheet    Установить свойство (* )
FirstOnSheet = iObject.GetFirstOnSheet()    Получить свойство (**)
iObject.SetFirstOnSheet (FirstOnSheet)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_FirstOnSheet (&FirstOnSheet)    Получить свойство
iObject->put_FirstOnSheet (FirstOnSheet)    Установить свойство
Значения свойства:
TRUE    - объект спецификации разместить в начале новой страницы спецификации,
FALSE    - объект спецификации разместить после предыдущего.
```
Примечание:
1. Свойство доступно только для базового и вспомогательного объекта спецификации.
2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


## IncrementPosition - Позиция объекта возрастает

Тип данных: BOOL
Синтаксис Automation:
```
IncrementPosition = iObject.IncrementPosition    Получить свойство (* )
iObject.IncrementPosition = IncrementPosition    Установить свойство (* )
IncrementPosition = iObject.GetIncrementPosition()    Получить свойство (**)
iObject.SetIncrementPosition (IncrementPosition)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_IncrementPosition (&IncrementPosition)    Получить свойство
iObject->put_IncrementPosition (IncrementPosition)    Установить свойство
Значения свойства:
TRUE    - номер позиции объекта должен быть на единицу больше номера позиции предшествующего ему объекта,
FALSE    - номер позиции объекта совпадает с номером позиции предыдущего объекта.
```
Примечание:
1. Свойство доступно только для базового и вспомогательного объекта спецификации.
2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


## NestedBlock - Номер блока вложенных разделов

Тип данных: long
Синтаксис Automation:
```
NestedBlock = iObject.NestedBlock    Получить свойство (* )
iObject.NestedBlock = NestedBlock    Установить свойство (* )
NestedBlock = iObject.GetNestedBlock()    Получить свойство (**)
iObject.SetNestedBlock (NestedBlock)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_NestedBlock (&NestedBlock)    Получить свойство
Object->put_NestedBlock (NestedBlock)    Установить свойство
```
Примечание:
1. Свойство доступно только для базового и вспомогательного объекта спецификации.
2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


## NestedSection - Номер вложенного раздела

Тип данных: long
Синтаксис Automation:
```
NestedSection = iObject.NestedSection    Получить свойство (* )
iObject.NestedSection = NestedSection    Установить свойство (* )
iObject.GetNestedSection()    Получить свойство (**)
iObject.SetNestedSection (NestedSection)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_NestedSection (&NestedSection)    Получить свойство
iObject->put_NestedSection (NestedSection)    Установить свойство
```
Примечание:
1. Свойство доступно только для базового и вспомогательного объекта спецификации.
2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


## ObjectType - Тип объекта

Тип данных: из перечисления ksSpecificationObjectTypeEnum
Синтаксис Automation:
```
ObjectType = iObject.ObjectType    Получить свойство (* )
ObjectType = iObject.GetObjectType()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_ObjectType (&ObjectType)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Section - Номер раздела

Тип данных: long
Синтаксис Automation:
```
Section = iObject.Section    Получить свойство (* )
Section = iObject.GetSection()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Section (&Section)    Получить свойство
```
Примечание:
1. При создании базового или вспомогательного объекта спецификации номер раздела передается в метод Add. Переместить уже созданные объекты из одного раздела в другой нельзя.
2. Свойство доступно только для чтения.


## State - Состояние объекта

Тип данных: из перечисления ksSpecificationObjectStateEnum
Синтаксис Automation:
```
State = iObject.State    Получить свойство (* )
State = iObject.GetState()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_State (&State)    Получить свойство
Значения свойства:
ssIndependent    - объект создан в данном документе,
ssFromInsert    - объект пришел из вставки другого документа (фрагмента, детали или подсборки),
ssEdit    - объект из вставки другого документа, но редактировался в данном документе.
```
Примечание:
Свойство доступно только для чтения.


## Subsection - Номер подраздела

Тип данных: long
Синтаксис Automation:
```
Subsection = iObject.Subsection    Получить свойство (* )
iObject.Subsection = Subsection    Установить свойство (* )
Subsection = iObject.GetSubsection()    Получить свойство (**)
iObject.SetSubsection (Subsection)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Subsection (&Subsection)    Получить свойство
iObject->put_Subsection (Subsection)    Установить свойство
```
Примечание:
1. Свойство доступно только для базового и вспомогательного объекта спецификации.
2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


## UniqueNumber - Уникальный номер, присваивается при создании

Тип данных: double
Синтаксис Automation:
```
UniqueNumber = iObject.UniqueNumber    Получить свойство (* )
Objects = iObject.GetBaseObjects()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_UniqueNumber (&UniqueNumber)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Update - Обновить данные

Синтаксис Automation:
```
BOOL Update();
```
Синтаксис COM:
```
HRESULT Update ([out, retval] BOOL* Result);
```
Примечание:
После изменения параметров объекта спецификации требуется вызвать данный метод, чтобы новые данные попали в модельный объект спецификации. Если объект спецификации еще не создан, метод Update создает объект спецификации в документе.
Для ускорения работы функции при массовом изменении спецификации рекомендуется воспользоваться методом ISpecificationDescription::NeedRebuild.
