Files
cc-1c-skills/docs/1c-extension-spec.md
T
Nick Shirokov aae69664c5 Add CFE extension source format specification
New spec covers: extension Configuration.xml properties, borrowed vs own
objects (ObjectBelonging/ExtendedConfigurationObject), type extension
mechanisms (xr:PropertyState, xr:ExtendedProperty), module interceptors
(&Before/&After/&Instead), diff markers, predefined items, and full
directory structure reference.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:36:27 +03:00

41 KiB
Raw Blame History

Спецификация формата выгрузки расширений конфигурации 1С (CFE)

Формат: XML-выгрузка расширения конфигурации 1С:Предприятие 8.3 (Конфигуратор → Конфигурация → Расширения → Выгрузить расширение в файлы). Версия формата: 2.17 (платформа 8.3.178.3.24).

Связанные спецификации:


1. Общая структура выгрузки расширения

Configuration.xml                  # Корневой файл — свойства и состав расширения
ConfigDumpInfo.xml                 # Служебный файл — версии объектов
Languages/                         # Языки (всегда заимствованные)
Roles/                             # Роли (собственные)
Subsystems/                        # Подсистемы (собственные или заимствованные)
CommonModules/                     # Общие модули
CommonPictures/                    # Общие картинки
CommonCommands/                    # Общие команды
Catalogs/                          # Справочники
Documents/                         # Документы
Enums/                             # Перечисления
...                                # Другие типы объектов

Ключевые отличия от конфигурации

Аспект Конфигурация Расширение
Корневой Ext/ Есть (модули, интерфейс, справка) Нет
ObjectBelonging в Properties Нет Adopted (всегда)
ConfigurationExtensionPurpose Нет Patch / Customization / AddOn
KeepMappingToExtendedConfigurationObjectsByIDs Нет true / false
NamePrefix Пустой или нет Префикс для собственных объектов
CompatibilityMode Да Нет (используется ConfigurationExtensionCompatibilityMode)
Свойства режимов работы Полный набор Сокращённый набор
Объекты в ChildObjects Только собственные Собственные и заимствованные

2. Configuration.xml — корневой файл расширения

2.1. Общая структура

<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses"
    xmlns:v8="http://v8.1c.ru/8.1/data/core"
    xmlns:xr="http://v8.1c.ru/8.3/xcf/readable"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:app="http://v8.1c.ru/8.2/managed-application/core"
    ... version="2.17">
  <Configuration uuid="...">
    <InternalInfo>...</InternalInfo>
    <Properties>...</Properties>
    <ChildObjects>...</ChildObjects>
  </Configuration>
</MetaDataObject>

Пространства имён и корневой элемент идентичны конфигурации. Атрибут version соответствует версии формата выгрузки.

2.2. InternalInfo

Содержит 7 записей xr:ContainedObject — аналогично конфигурации. ClassId фиксированные, ObjectId уникальны для каждого расширения.

2.3. Properties — свойства расширения

Свойства идут в фиксированном порядке. Набор свойств отличается от конфигурации — часть свойств специфична для расширений, часть свойств конфигурации отсутствует.

Специфичные свойства расширения

Свойство Тип Описание
ObjectBelonging enum Всегда Adopted — расширение «принято» к основной конфигурации
ConfigurationExtensionPurpose enum Назначение расширения: Patch (исправление), Customization (адаптация), AddOn (дополнение)
KeepMappingToExtendedConfigurationObjectsByIDs xs:boolean Сохранять привязку к объектам по идентификаторам
NamePrefix xs:string Префикс имён собственных объектов (напр. Расш1_, МоёРасш_)
ConfigurationExtensionCompatibilityMode enum Режим совместимости расширения (Version8_3_17, Version8_3_24, ...)

Общие свойства (совпадают с конфигурацией)

Свойство Тип Описание
Name xs:string Имя расширения (идентификатор)
Synonym LocalString Отображаемое имя
Comment xs:string Комментарий
DefaultRunMode enum Режим запуска (ManagedApplication)
UsePurposes list Назначения (PlatformApplication)
ScriptVariant enum Язык скриптов (Russian / English)
DefaultRoles list Роли по умолчанию
Vendor xs:string Поставщик
Version xs:string Версия расширения
DefaultLanguage ref Язык по умолчанию (Language.Русский)
BriefInformation LocalString Краткая информация
DetailedInformation LocalString Подробная информация
Copyright LocalString Авторские права
VendorInformationAddress LocalString Адрес поставщика
ConfigurationInformationAddress LocalString Адрес информации
InterfaceCompatibilityMode enum Совместимость интерфейса

Примечание: Свойства DefaultRunMode, UsePurposes, DefaultRoles, DefaultLanguage, InterfaceCompatibilityMode опциональны — могут отсутствовать в расширении (в отличие от конфигурации, где они обязательны).

Свойства конфигурации, отсутствующие в расширении

В расширениях нет следующих свойств:

  • CompatibilityMode (заменено на ConfigurationExtensionCompatibilityMode)
  • DataLockControlMode
  • ObjectAutonumerationMode
  • ModalityUseMode
  • SynchronousPlatformExtensionAndAddInCallUseMode
  • DatabaseTablespacesUseMode
  • MainClientApplicationWindowMode
  • UpdateCatalogAddress
  • IncludeHelpInContents
  • UseManagedFormInOrdinaryApplication
  • UseOrdinaryFormInManagedApplication
  • Content
  • StandaloneConfigurationRestrictionRoles

2.4. Порядок свойств

<Properties>
  <ObjectBelonging>Adopted</ObjectBelonging>
  <Name>ИмяРасширения</Name>
  <Synonym>...</Synonym>
  <Comment/>
  <ConfigurationExtensionPurpose>Patch</ConfigurationExtensionPurpose>
  <KeepMappingToExtendedConfigurationObjectsByIDs>true</KeepMappingToExtendedConfigurationObjectsByIDs>
  <NamePrefix>Расш1_</NamePrefix>
  <ConfigurationExtensionCompatibilityMode>Version8_3_17</ConfigurationExtensionCompatibilityMode>
  <DefaultRunMode>ManagedApplication</DefaultRunMode>          <!-- опционально -->
  <UsePurposes>...</UsePurposes>                                <!-- опционально -->
  <ScriptVariant>Russian</ScriptVariant>
  <DefaultRoles>...</DefaultRoles>                              <!-- опционально -->
  <Vendor/>
  <Version/>
  <DefaultLanguage>Language.Русский</DefaultLanguage>           <!-- опционально -->
  <BriefInformation/>
  <DetailedInformation/>
  <Copyright/>
  <VendorInformationAddress/>
  <ConfigurationInformationAddress/>
  <InterfaceCompatibilityMode>TaxiEnableVersion8_2</InterfaceCompatibilityMode>  <!-- опционально -->
</Properties>

2.5. ChildObjects — состав расширения

Содержит как собственные объекты расширения, так и заимствованные из основной конфигурации. Порядок типов аналогичен конфигурации.

<ChildObjects>
  <Language>Русский</Language>                          <!-- заимствованный -->
  <Subsystem>Расш1_МояПодсистема</Subsystem>              <!-- собственный -->
  <CommonPicture>Расш1_МояКартинка</CommonPicture>       <!-- собственный -->
  <Role>Расш1_ОсновнаяРоль</Role>                        <!-- собственный -->
  <CommonModule>Расш1_МодульСервер</CommonModule>         <!-- собственный -->
  <CommonModule>ОбщийМодульКонфигурации</CommonModule>    <!-- заимствованный -->
  <Catalog>Контрагенты</Catalog>                         <!-- заимствованный -->
  <Catalog>Расш1_Проекты</Catalog>                       <!-- собственный -->
  <Enum>Расш1_ВидыДокументов</Enum>                      <!-- собственный -->
  <InformationRegister>Расш1_ДатыРабот</InformationRegister> <!-- собственный -->
</ChildObjects>

В ChildObjects не видно различие между собственными и заимствованными — оно определяется по содержимому XML-файла объекта (свойство ObjectBelonging и наличие ExtendedConfigurationObject).

Правило именования: собственные объекты расширения обычно имеют NamePrefix в начале имени (напр. Расш1_Справочник1, Расш1_Проекты), заимствованные — имя объекта из основной конфигурации без префикса (напр. Контрагенты, Валюты).


3. ConfigDumpInfo.xml

Формат идентичен конфигурации:

<?xml version="1.0" encoding="UTF-8"?>
<ConfigDumpInfo xmlns="http://v8.1c.ru/8.3/xcf/dumpinfo"
    xmlns:xen="http://v8.1c.ru/8.3/xcf/enums"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    format="Hierarchical" version="2.17">
  <ConfigVersions>
    <Metadata name="Configuration.ИмяРасширения" id="uuid" configVersion="sha1"/>
    <Metadata name="Language.Русский" id="uuid" configVersion="sha1"/>
    <Metadata name="Role.Расш1_ОсновнаяРоль" id="uuid" configVersion="sha1"/>
    <!-- ... все объекты расширения ... -->
  </ConfigVersions>
</ConfigDumpInfo>

Включает записи для всех объектов расширения (и собственных, и заимствованных). Атрибут configVersion — 40-символьный SHA1-хеш версии объекта.


4. Заимствованные и собственные объекты

Расширение может содержать два типа объектов:

4.1. Заимствованные объекты (Adopted)

Объекты, существующие в основной конфигурации, которые расширение модифицирует или дополняет.

Признаки:

  • <ObjectBelonging>Adopted</ObjectBelonging> в Properties
  • <ExtendedConfigurationObject>uuid</ExtendedConfigurationObject> — UUID объекта в основной конфигурации
  • Минимальный набор свойств (только те, что изменяются)
<Catalog uuid="81de7e56-...">
  <InternalInfo>
    <xr:GeneratedType name="CatalogObject.Валюты" category="Object">...</xr:GeneratedType>
    <!-- ... стандартные GeneratedType ... -->
  </InternalInfo>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>Валюты</Name>
    <Comment/>
    <ExtendedConfigurationObject>7aadbb67-...</ExtendedConfigurationObject>
  </Properties>
  <ChildObjects>
    <!-- заимствованные и собственные реквизиты, формы -->
  </ChildObjects>
</Catalog>

Заимствованные объекты не содержат полного набора свойств — только ObjectBelonging, Name, Comment, ExtendedConfigurationObject и те свойства, которые расширение изменяет (напр. CodeLength, DefaultListForm).

4.2. Собственные объекты (Own)

Объекты, созданные непосредственно в расширении.

Признаки:

  • Нет элемента ObjectBelonging
  • Нет элемента ExtendedConfigurationObject
  • Полный набор свойств (как в объектах конфигурации)
  • Имя обычно начинается с NamePrefix расширения
<Catalog uuid="7dcd4d14-...">
  <InternalInfo>
    <xr:GeneratedType name="CatalogObject.Расш5_Справочник1" category="Object">...</xr:GeneratedType>
    <!-- ... -->
  </InternalInfo>
  <Properties>
    <Name>Расш5_Справочник1</Name>
    <Synonym/>
    <Comment/>
    <Hierarchical>false</Hierarchical>
    <CodeLength>9</CodeLength>
    <!-- ... полный набор свойств как в конфигурации ... -->
  </Properties>
  <ChildObjects/>
</Catalog>

Формат полностью совпадает с форматом объектов конфигурации (см. 1c-config-objects-spec.md).


5. Заимствованные дочерние элементы

Дочерние элементы заимствованных объектов (реквизиты, табличные части, значения перечислений) также маркируются как заимствованные или собственные.

5.1. Заимствованные реквизиты

<Attribute uuid="259e5f94-...">
  <InternalInfo/>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ОсновнаяВалюта</Name>
    <Comment/>
    <ExtendedConfigurationObject>206abcd3-...</ExtendedConfigurationObject>
    <Type>
      <v8:Type>cfg:CatalogRef.Валюты</v8:Type>
    </Type>
  </Properties>
</Attribute>

Заимствованный реквизит содержит ObjectBelonging: Adopted и ExtendedConfigurationObject. Набор свойств минимальный (Name, Comment, ExtendedConfigurationObject, Type).

5.2. Собственные реквизиты в заимствованном объекте

<Attribute uuid="7fabdcb4-...">
  <Properties>
    <Name>Расш5_Реквизит1</Name>
    <Synonym/>
    <Comment/>
    <Type>
      <v8:Type>cfg:CatalogRef.Расш5_Справочник1</v8:Type>
    </Type>
    <PasswordMode>false</PasswordMode>
    <!-- ... полный набор свойств ... -->
  </Properties>
</Attribute>

Собственный реквизит не имеет ObjectBelonging и ExtendedConfigurationObject. Содержит полный набор свойств.

5.3. Заимствованные значения перечислений

<EnumValue uuid="9bc7380f-...">
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>НаценкаНаКурсДругойВалюты</Name>
    <ExtendedConfigurationObject>c9ab3890-...</ExtendedConfigurationObject>
    <Synonym>...</Synonym>
    <Comment/>
  </Properties>
</EnumValue>

5.4. Заимствованные формы

Метаданные формы (файл .xml в каталоге Forms/):

<Form uuid="8fcebcc1-...">
  <InternalInfo/>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ФормаСписка</Name>
    <Comment/>
    <ExtendedConfigurationObject>5f91b00f-...</ExtendedConfigurationObject>
    <FormType>Managed</FormType>
  </Properties>
</Form>

Содержимое формы (расширение) хранится в Forms/ФормаСписка/Ext/Form.xml, модуль формы — в Forms/ФормаСписка/Ext/Form/Module.bsl.


6. Расширение свойств (xr:PropertyState и xr:ExtendedProperty)

Расширения могут изменять свойства заимствованных реквизитов. Для этого используются специальные XML-конструкции.

6.1. PropertyState — уведомление об изменении

Элемент xr:PropertyState в InternalInfo реквизита указывает, что свойство было изменено расширением.

<Attribute uuid="a1752169-...">
  <InternalInfo>
    <xr:PropertyState>
      <xr:Property>Type</xr:Property>
      <xr:State>Notify</xr:State>
    </xr:PropertyState>
  </InternalInfo>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>Наценка</Name>
    <ExtendedConfigurationObject>87429f11-...</ExtendedConfigurationObject>
    <Type>
      <v8:Type>xs:decimal</v8:Type>
      <v8:NumberQualifiers>
        <v8:Digits>10</v8:Digits>
        <v8:FractionDigits>2</v8:FractionDigits>
        <v8:AllowedSign>Any</v8:AllowedSign>
      </v8:NumberQualifiers>
    </Type>
  </Properties>
</Attribute>

Значения xr:State:

Значение Описание
Notify Свойство изменено расширением, платформа выводит предупреждение
MultiState Свойство расширено (тип отличается от основной конфигурации)

6.2. ExtendedProperty — расширение типа

Когда расширение изменяет тип реквизита, используется конструкция xr:ExtendedProperty:

<Type xsi:type="xr:ExtendedProperty">
  <xr:ExtendValue xsi:type="v8:TypeDescription">
    <v8:Type>xs:string</v8:Type>
    <v8:StringQualifiers>
      <v8:Length>60</v8:Length>
      <v8:AllowedLength>Variable</v8:AllowedLength>
    </v8:StringQualifiers>
  </xr:ExtendValue>
</Type>

Свойство Type получает атрибут xsi:type="xr:ExtendedProperty", а значение оборачивается в xr:ExtendValue. При этом в InternalInfo указывается <xr:State>MultiState</xr:State>.


7. Модули в расширениях

7.1. Типы модулей

Расширения поддерживают те же типы модулей, что и конфигурация:

Модуль Файл Для каких объектов
Модуль объекта Ext/ObjectModule.bsl Справочники, документы, обработки
Модуль менеджера Ext/ManagerModule.bsl Справочники, документы, регистры
Модуль набора записей Ext/RecordSetModule.bsl Регистры
Модуль формы Forms/Имя/Ext/Form/Module.bsl Формы
Общий модуль CommonModules/Имя/Ext/Module.bsl Общие модули
Модуль команды Commands/Имя/Ext/CommandModule.bsl Команды

7.2. Декораторы перехвата

Модули расширений используют специальные аннотации-декораторы для перехвата вызовов процедур основной конфигурации:

Декоратор Описание
&Перед("ИмяПроцедуры") Выполняется до оригинальной процедуры
&После("ИмяПроцедуры") Выполняется после оригинальной процедуры
&Вместо("ИмяПроцедуры") Заменяет оригинальную процедуру
&ИзменениеИКонтроль("ИмяПроцедуры") Копия с контролем изменений (diff-маркеры)

Пример &Перед / &После

&НаКлиенте
&Перед("ПодборИзКлассификатора")
Процедура Расш5_ПодборИзКлассификатораПеред(Команда)
    // Код выполняется ДО оригинальной процедуры
КонецПроцедуры

&НаКлиенте
&После("ПодборИзКлассификатора")
Процедура Расш5_ПодборИзКлассификатораПосле(Команда)
    // Код выполняется ПОСЛЕ оригинальной процедуры
КонецПроцедуры

Пример &Вместо

&НаСервере
&Вместо("ЗаполнитьПодменюПараметрыПрописиВалюты")
Процедура Расш5_ЗаполнитьПодменюПараметрыПрописиВалюты()
    // Полная замена оригинальной процедуры
    // ПродолжитьВызов() — вызов оригинальной реализации
    ПродолжитьВызов();
КонецПроцедуры

Пример &ИзменениеИКонтроль

&ИзменениеИКонтроль("РеквизитыРедактируемыеВГрупповойОбработке")
Функция Расш5_РеквизитыРедактируемыеВГрупповойОбработке()
    Результат = Новый Массив;
    Результат.Добавить("СпособУстановкиКурса");
#Удаление
    Результат.Добавить("ФормулаРасчетаКурса");
#КонецУдаления
#Вставка
    Результат.Добавить("НоваяФормулаРасчетаКурса");
#КонецВставки
    Возврат Результат;
КонецФункции

7.3. Diff-маркеры в коде

Внутри процедур с декоратором &ИзменениеИКонтроль используются diff-маркеры для отслеживания изменений:

Маркер Описание
#Удаление Начало блока удалённого кода
#КонецУдаления Конец блока удалённого кода
#Вставка Начало блока вставленного кода
#КонецВставки Конец блока вставленного кода

Маркеры могут быть вложенными и чередующимися — типичный паттерн «удалить → вставить»:

#Удаление
    ИначеЕсли Выборка.Дата > Дата Тогда
#КонецУдаления
#Вставка
    ИначеЕсли Выборка.Дата < Дата Тогда
#КонецВставки

7.4. Именование процедур расширения

Собственные процедуры расширения именуются с NamePrefix:

  • Расш5_ПрочитатьАрхивВнутр() — при NamePrefix = Расш5_
  • МоёРасш_ПроверитьДату() — при NamePrefix = МоёРасш_
  • Расш1_ПриОпределенииНастроек() — при NamePrefix = Расш1_

8. Предопределённые элементы в расширениях

Расширения могут добавлять предопределённые элементы к заимствованным справочникам. Файл: Каталог/Ext/Predefined.xml.

<?xml version="1.0" encoding="UTF-8"?>
<PredefinedData xmlns="http://v8.1c.ru/8.3/xcf/predef"
    xmlns:v8="http://v8.1c.ru/8.1/data/core"
    xmlns:xr="http://v8.1c.ru/8.3/xcf/readable"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:type="CatalogPredefinedItems" version="2.17">
  <Item id="9b751d8b-...">
    <Name>НовыйЭлемент</Name>
    <Code>000000001</Code>
    <Description>Новый элемент</Description>
    <IsFolder>false</IsFolder>
    <ExtensionState>Native</ExtensionState>
  </Item>
</PredefinedData>

Отличие от Predefined.xml конфигурации

Аспект Конфигурация Расширение
Пространство имён http://v8.1c.ru/8.3/xcf/predef (то же) То же
ExtensionState Нет Native — элемент создан расширением

9. Языки (Languages/)

Язык в расширении всегда заимствованный:

<Language uuid="9453bb96-...">
  <InternalInfo/>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>Русский</Name>
    <Comment/>
    <ExtendedConfigurationObject>0663bf5b-...</ExtendedConfigurationObject>
    <LanguageCode>ru</LanguageCode>
  </Properties>
</Language>

UUID в ExtendedConfigurationObject одинаков для всех расширений одной конфигурации — это UUID языка в основной конфигурации.


10. Роли (Roles/)

10.1. Собственная роль расширения (без прав)

Минимальная роль без Ext/Rights.xml:

<Role uuid="c630865b-...">
  <Properties>
    <Name>Расш1_ОсновнаяРоль</Name>
    <Synonym/>
    <Comment/>
  </Properties>
</Role>

Собственные роли расширений в изученных примерах не имеют каталога Ext/ с Rights.xml. Права могут задаваться через конфигуратор.

10.2. DefaultRoles

Ссылки на роли по умолчанию в Configuration.xml:

<DefaultRoles>
  <xr:Item xsi:type="xr:MDObjectRef">Role.Расш1_ОсновнаяРоль</xr:Item>
</DefaultRoles>

11. Подсистемы (Subsystems/)

11.1. Собственная подсистема расширения

<Subsystem uuid="...">
  <Properties>
    <Name>Расш1_МояПодсистема</Name>
    <Synonym>...</Synonym>
    <Comment/>
    <Picture>
      <xr:Ref>CommonPicture.Расш1_МояКартинка</xr:Ref>
    </Picture>
    <IncludeHelpInContents>false</IncludeHelpInContents>
    <IncludeInCommandInterface>true</IncludeInCommandInterface>
    <Content>
      <xr:Item xsi:type="xr:MDObjectRef">Catalog.Расш1_Проекты</xr:Item>
      <xr:Item xsi:type="xr:MDObjectRef">Catalog.Расш1_Задачи</xr:Item>
      <xr:Item xsi:type="xr:MDObjectRef">DataProcessor.Расш1_Обработка1</xr:Item>
      <!-- ... -->
    </Content>
  </Properties>
  <ChildObjects/>
</Subsystem>

11.2. Заимствованная подсистема

<Subsystem uuid="...">
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>Закупки</Name>
    <ExtendedConfigurationObject>f230c0c7-...</ExtendedConfigurationObject>
    <Content>
      <!-- пустой или с добавленными объектами -->
    </Content>
  </Properties>
  <ChildObjects>
    <Subsystem>Расш1_Документы</Subsystem>   <!-- дочерняя подсистема -->
  </ChildObjects>
</Subsystem>

Заимствованная подсистема может содержать элементы Content (добавленные расширением команды/объекты) и дочерние подсистемы в ChildObjects.

11.3. CommandInterface в расширении

Командный интерфейс подсистемы в расширении: Subsystems/Имя/Ext/CommandInterface.xml.

<CommandInterface version="2.17">
  <CommandsVisibility>
    <xr:Command>
      <xr:CommandID>Document.ЗаказНаПеремещение.StandardCommand.OpenList</xr:CommandID>
      <xr:Visibility>
        <xr:Common>false</xr:Common>
        <xr:Value name="Role.Расш1_ОсновнаяРоль">true</xr:Value>
      </xr:Visibility>
    </xr:Command>
  </CommandsVisibility>
  <CommandsOrder>
    <xr:Group name="NavigationPanelOrdinary">
      <xr:CommandID>...</xr:CommandID>
    </xr:Group>
  </CommandsOrder>
</CommandInterface>

12. Общие модули (CommonModules/)

12.1. Заимствованный общий модуль

<CommonModule uuid="a32b77fa-...">
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ZipАрхивы</Name>
    <ExtendedConfigurationObject>b92e2bb8-...</ExtendedConfigurationObject>
  </Properties>
</CommonModule>

Модуль расширения: CommonModules/ZipАрхивы/Ext/Module.bsl — содержит процедуры с декораторами перехвата.

12.2. Собственный общий модуль

Формат аналогичен конфигурации (без ObjectBelonging и ExtendedConfigurationObject), со всеми свойствами (Server, ExternalConnection, ClientManagedApplication и т.д.).


13. Другие типы заимствованных объектов

13.1. Константы

<Constant uuid="...">
  <InternalInfo>
    <xr:GeneratedType name="ConstantManager.ИмяКонстанты" category="ConstantManager">...</xr:GeneratedType>
    <xr:GeneratedType name="ConstantValueManager.ИмяКонстанты" category="ConstantValueManager">...</xr:GeneratedType>
    <xr:GeneratedType name="ConstantValueKey.ИмяКонстанты" category="ConstantValueKey">...</xr:GeneratedType>
  </InternalInfo>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ИмяКонстанты</Name>
    <ExtendedConfigurationObject>81d26b82-...</ExtendedConfigurationObject>
    <Type>
      <v8:Type>xs:boolean</v8:Type>
    </Type>
  </Properties>
</Constant>

13.2. Функциональные опции

<FunctionalOption uuid="...">
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ИмяФункциональнойОпции</Name>
    <ExtendedConfigurationObject>d2699502-...</ExtendedConfigurationObject>
    <Location>Constant.ИмяКонстанты</Location>
  </Properties>
</FunctionalOption>

13.3. Определяемые типы

Заимствованный (минимальный):

<DefinedType uuid="...">
  <InternalInfo>
    <xr:GeneratedType name="DefinedType.ИмяОпределяемогоТипа" category="DefinedType">...</xr:GeneratedType>
  </InternalInfo>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ИмяОпределяемогоТипа</Name>
  </Properties>
</DefinedType>

Собственный (с полным описанием типа):

<DefinedType uuid="...">
  <Properties>
    <Name>Расш1_Координата</Name>
    <Synonym>...</Synonym>
    <Type>
      <v8:Type>xs:decimal</v8:Type>
      <v8:NumberQualifiers>
        <v8:Digits>15</v8:Digits>
        <v8:FractionDigits>10</v8:FractionDigits>
        <v8:AllowedSign>Any</v8:AllowedSign>
      </v8:NumberQualifiers>
    </Type>
  </Properties>
</DefinedType>

13.4. Элементы стиля

<StyleItem uuid="...">
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ИмяЭлементаСтиля</Name>
    <ExtendedConfigurationObject>3d428bdf-...</ExtendedConfigurationObject>
    <Type>Font</Type>
  </Properties>
</StyleItem>

Тип: Color, Font, Border.

13.5. Общие картинки

<CommonPicture uuid="...">
  <InternalInfo/>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ИмяКартинки</Name>
  </Properties>
</CommonPicture>

Собственные картинки могут иметь каталог Ext/ с Picture.xml и файлом изображения:

CommonPictures/Расш1_МояКартинка/
  Ext/
    Picture.xml          # <Picture><xr:Abs>Picture.png</xr:Abs>...</Picture>
    Picture/
      Picture.png        # Файл изображения

13.6. Общие команды

<CommonCommand uuid="...">
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ИмяКоманды</Name>
    <Group>FormCommandBarImportant</Group>
  </Properties>
</CommonCommand>

13.7. Планы обмена

<ExchangePlan uuid="...">
  <InternalInfo>
    <xr:ThisNode>c335c2b8-...</xr:ThisNode>
    <xr:GeneratedType .../>
  </InternalInfo>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ИмяПланаОбмена</Name>
    <ExtendedConfigurationObject>0c01b26a-...</ExtendedConfigurationObject>
  </Properties>
  <ChildObjects/>
</ExchangePlan>

13.8. Планы счетов

<ChartOfAccounts uuid="...">
  <InternalInfo>
    <xr:GeneratedType .../>
  </InternalInfo>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>Хозрасчетный</Name>
    <ExtendedConfigurationObject>3796bdf5-...</ExtendedConfigurationObject>
  </Properties>
  <ChildObjects/>
</ChartOfAccounts>

13.9. Регистры сведений

Заимствованный (минимальный):

<InformationRegister uuid="...">
  <InternalInfo>...</InternalInfo>
  <Properties>
    <ObjectBelonging>Adopted</ObjectBelonging>
    <Name>ИмяРегистра</Name>
    <ExtendedConfigurationObject>...</ExtendedConfigurationObject>
    <InformationRegisterPeriodicity>Quarter</InformationRegisterPeriodicity>
    <WriteMode>Independent</WriteMode>
  </Properties>
  <ChildObjects>
    <Resource uuid="...">
      <Properties>
        <ObjectBelonging>Adopted</ObjectBelonging>
        <Name>ИмяРесурса</Name>
        <ExtendedConfigurationObject>...</ExtendedConfigurationObject>
        <Type>...</Type>
      </Properties>
    </Resource>
  </ChildObjects>
</InformationRegister>

Собственный регистр — полный набор свойств, аналогично конфигурации.


14. Назначения расширений (ConfigurationExtensionPurpose)

Значение Русское название Описание
Patch Исправление Минимальные исправления ошибок. Наибольшие ограничения
Customization Адаптация Доработка под требования заказчика. Средний уровень ограничений
AddOn Дополнение Добавление новой функциональности. Минимальные ограничения

Назначение влияет на то, какие модификации допускает платформа при подключении расширения.


15. Структура каталогов (сводка)

15.1. Собственный объект (полная структура)

Catalogs/Расш1_Проекты.xml                       # Метаданные (полные)
Catalogs/Расш1_Проекты/
  Ext/
    ObjectModule.bsl                             # Модуль объекта
    ManagerModule.bsl                            # Модуль менеджера
    Predefined.xml                               # Предопределённые (опц.)
  Forms/
    ФормаЭлемента.xml                            # Метаданные формы
    ФормаЭлемента/
      Ext/
        Form.xml                                 # Содержимое формы
        Form/
          Module.bsl                             # Модуль формы
    ФормаСписка.xml
    ФормаСписка/
      Ext/
        Form.xml
        Form/
          Module.bsl
  Templates/
    ПФ_MXL_Акт.xml                               # Метаданные макета
    ПФ_MXL_Акт/
      Ext/
        Template.xml                             # Содержимое макета
  Commands/
    ИмяКоманды.xml                               # Метаданные команды
    ИмяКоманды/
      Ext/
        CommandModule.bsl                        # Модуль команды

15.2. Заимствованный объект (минимальная структура)

Catalogs/Валюты.xml                              # Метаданные (сокращённые)
Catalogs/Валюты/
  Ext/
    ManagerModule.bsl                            # Расширение модуля менеджера
    Predefined.xml                               # Предопред. элементы (опц.)
  Forms/
    ФормаСписка.xml                              # Метаданные (сокращённые)
    ФормаСписка/
      Ext/
        Form.xml                                 # Расширение формы
        Form/
          Module.bsl                             # Расширение модуля формы

15.3. Минимальное расширение (пустое)

Configuration.xml                                # Корневой файл
ConfigDumpInfo.xml                               # Версии объектов
Languages/
  Русский.xml                                    # Язык (заимствованный)

15.4. Типичное расширение с ролью

Configuration.xml
ConfigDumpInfo.xml
Languages/
  Русский.xml
Roles/
  Расш1_ОсновнаяРоль.xml

16. Отличия заимствованного объекта от обычного (сводная таблица)

Аспект Обычный (конфигурация) Заимствованный (расширение) Собственный (расширение)
ObjectBelonging Нет Adopted Нет
ExtendedConfigurationObject Нет UUID объекта конфигурации Нет
Набор Properties Полный Минимальный + изменённые Полный
InternalInfo GeneratedType GeneratedType + PropertyState GeneratedType
Реквизиты в ChildObjects Полные Заимствованные + собственные Полные
Модули Полные С декораторами перехвата Полные
Формы Полные С расширениями (Ext/) Полные