# Спецификация формата выгрузки расширений конфигурации 1С (CFE) Формат: XML-выгрузка расширения конфигурации 1С:Предприятие 8.3 (Конфигуратор → Конфигурация → Расширения → Выгрузить расширение в файлы). Версия формата: `2.17` (платформа 8.3.17–8.3.24). > **Связанные спецификации:** > - Корневая структура конфигурации — [1c-configuration-spec.md](1c-configuration-spec.md) > - Объекты метаданных — [1c-config-objects-spec.md](1c-config-objects-spec.md) > - Подсистемы — [1c-subsystem-spec.md](1c-subsystem-spec.md) > - Управляемые формы — [1c-form-spec.md](1c-form-spec.md) > - Роли — [1c-role-spec.md](1c-role-spec.md) > - Сводный индекс — [1c-specs-index.md](1c-specs-index.md) --- ## 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` соответствует версии формата выгрузки. ### 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. Порядок свойств ```xml Adopted ИмяРасширения ... Patch true Расш1_ Version8_3_17 ManagedApplication ... Russian ... Language.Русский TaxiEnableVersion8_2 ``` ### 2.5. ChildObjects — состав расширения Содержит как **собственные** объекты расширения, так и **заимствованные** из основной конфигурации. Порядок типов аналогичен конфигурации. ```xml Русский Расш1_МояПодсистема Расш1_МояКартинка Расш1_ОсновнаяРоль Расш1_МодульСервер ОбщийМодульКонфигурации Контрагенты Расш1_Проекты Расш1_ВидыДокументов Расш1_ДатыРабот ``` В `ChildObjects` не видно различие между собственными и заимствованными — оно определяется по содержимому XML-файла объекта (свойство `ObjectBelonging` и наличие `ExtendedConfigurationObject`). **Правило именования:** собственные объекты расширения обычно имеют `NamePrefix` в начале имени (напр. `Расш1_Справочник1`, `Расш1_Проекты`), заимствованные — имя объекта из основной конфигурации без префикса (напр. `Контрагенты`, `Валюты`). --- ## 3. ConfigDumpInfo.xml Формат идентичен конфигурации: ```xml ``` Включает записи для **всех** объектов расширения (и собственных, и заимствованных). Атрибут `configVersion` — 40-символьный SHA1-хеш версии объекта. --- ## 4. Заимствованные и собственные объекты Расширение может содержать два типа объектов: ### 4.1. Заимствованные объекты (Adopted) Объекты, существующие в основной конфигурации, которые расширение модифицирует или дополняет. **Признаки:** - `Adopted` в Properties - `uuid` — UUID объекта в основной конфигурации - Минимальный набор свойств (только те, что изменяются) ```xml ... Adopted Валюты 7aadbb67-... ``` Заимствованные объекты **не содержат** полного набора свойств — только `ObjectBelonging`, `Name`, `Comment`, `ExtendedConfigurationObject` и те свойства, которые расширение изменяет (напр. `CodeLength`, `DefaultListForm`). ### 4.2. Собственные объекты (Own) Объекты, созданные непосредственно в расширении. **Признаки:** - **Нет** элемента `ObjectBelonging` - **Нет** элемента `ExtendedConfigurationObject` - Полный набор свойств (как в объектах конфигурации) - Имя обычно начинается с `NamePrefix` расширения ```xml ... Расш5_Справочник1 false 9 ``` Формат полностью совпадает с форматом объектов конфигурации (см. [1c-config-objects-spec.md](1c-config-objects-spec.md)). --- ## 5. Заимствованные дочерние элементы Дочерние элементы заимствованных объектов (реквизиты, табличные части, значения перечислений) также маркируются как заимствованные или собственные. ### 5.1. Заимствованные реквизиты ```xml Adopted ОсновнаяВалюта 206abcd3-... cfg:CatalogRef.Валюты ``` Заимствованный реквизит содержит `ObjectBelonging: Adopted` и `ExtendedConfigurationObject`. Набор свойств минимальный (Name, Comment, ExtendedConfigurationObject, Type). ### 5.2. Собственные реквизиты в заимствованном объекте ```xml Расш5_Реквизит1 cfg:CatalogRef.Расш5_Справочник1 false ``` Собственный реквизит **не имеет** `ObjectBelonging` и `ExtendedConfigurationObject`. Содержит полный набор свойств. ### 5.3. Заимствованные значения перечислений ```xml Adopted НаценкаНаКурсДругойВалюты c9ab3890-... ... ``` ### 5.4. Формы в расширениях В расширении существуют **два принципиально разных сценария** работы с формами: | Сценарий | Описание | `` | ID элементов | `callType` | |----------|----------|:------------:|:------------:|:----------:| | **Собственная форма** на заимствованном объекте | Новая форма, не существующая в базовой конфигурации | Нет | Обычные (1+) | Нет | | **Заимствованная форма** | Расширение существующей формы базовой конфигурации | Есть | Базовые + 1000000+ | Есть | > **Как отличить:** Если файл метаданных формы (`.xml`) содержит `Adopted` — это заимствованная форма. Собственные формы не имеют `ObjectBelonging`. #### 5.4.1. Метаданные заимствованной формы Файл `.xml` в каталоге `Forms/`: ```xml
Adopted ФормаСписка 5f91b00f-... Managed ``` Содержимое формы хранится в `Forms/ФормаСписка/Ext/Form.xml`, модуль формы — в `Forms/ФормаСписка/Ext/Form/Module.bsl`. #### 5.4.2. Структура Form.xml заимствованной формы Form.xml заимствованной формы — **двухчастный файл**: Part 1 (результирующая форма) и BaseForm (исходная форма). Обе части содержат **только визуальные элементы** — атрибуты, события, параметры и команды базовой конфигурации **НЕ включаются**. ```xml
Расш1_ПриСозданииПосле Расш1_НоваяКомандаВместо ``` **Ключевые правила:** 1. **Часть 1** (до ``) — **результирующая форма**. Содержит визуальные элементы (AutoCommandBar + ChildItems) из базовой конфигурации плюс элементы расширения. Атрибуты базовой конфигурации (DynamicList, QueryText и др.) **не включаются** — только реквизиты расширения (id ≥ 1000000) или пустой ``. Events и Commands — только добавленные расширением (с `callType`). 2. **Часть 2** (``) — **визуальный снимок исходной формы**. Содержит только AutoCommandBar + ChildItems + пустой ``. НЕ содержит Events, Commands, Parameters. Все `` в кнопках заменены на `0`. Платформа использует BaseForm для контроля совместимости при обновлении конфигурации. 3. **Правило `0`**: во всех кнопках базовой формы (как в Part 1, так и в BaseForm) значение `` заменяется на `0`. Ссылки на команды конфигурации не сохраняются. Только кнопки, добавленные расширением, сохраняют ссылку на команду (напр. `Form.Command.XXX`). 4. Элемент `` всегда идёт **последним** в `
` и имеет атрибут `version`. #### 5.4.3. Нумерация ID элементов | Диапазон | Принадлежность | |----------|---------------| | `-1` | Авто-командная панель (`AutoCommandBar`) — фиксированный ID | | `1` – `999999` | Элементы базовой формы (сохраняют оригинальные ID) | | `1000000`+ | Реквизиты (`Attributes`) и команды (`Commands`), добавленные расширением | > **Важно:** Визуальные элементы форм (элементы в `ChildItems`), добавленные расширением в тело базовой формы, могут использовать ID из обычного диапазона (продолжая нумерацию базовой формы). Диапазон 1000000+ гарантирован для `Attributes` и `Commands`. #### 5.4.4. Атрибут callType — перехват событий и команд В заимствованных формах события и действия команд используют атрибут `callType` для определения момента перехвата: | Значение | Описание | |----------|----------| | `Before` | Обработчик расширения вызывается **до** оригинального обработчика | | `After` | Обработчик расширения вызывается **после** оригинального обработчика | | `Override` | Обработчик расширения **заменяет** оригинальный обработчик | ##### События формы (form-level) ```xml Расш1_ПриСозданииНаСервереПосле Расш1_ПриОткрытииПеред Расш1_ПередЗаписьюНаСервереПосле Расш1_ОбработкаОповещенияПосле ``` ##### События элементов формы (element-level) ```xml Расш1_БанкПриИзменении Расш1_БанкОчистка ... Расш1_СписокВыборПеред ...
``` ##### Действия команд (Command Action) Команда может иметь **несколько элементов ``** с разными `callType`: ```xml Расш1_ПодборИзКлассификатораПеред Расш1_ПодборИзКлассификатораПосле Расш1_НоваяКомандаВместо Расш1_ЗапросКорректировкиПосле ``` > **Отличие от обычной формы:** В обычной форме (конфигурации или собственной форме расширения) у `` и `` **нет** атрибута `callType` — обработчик вызывается напрямую. #### 5.4.5. Собственная форма на заимствованном объекте Расширение может добавить к заимствованному объекту **собственную форму**, не существующую в базовой конфигурации. Такая форма: - **Не имеет** `ObjectBelonging` и `ExtendedConfigurationObject` в метаданных формы - **Не содержит** `` в Form.xml - **Не использует** атрибут `callType` - Использует обычную нумерацию ID (1+) - Формат полностью совпадает с форматом форм конфигурации (см. [1c-form-spec.md](1c-form-spec.md)) ```xml Расш1_МояФорма ... Managed ... ``` ```xml
ПриСозданииНаСервере ... ...
``` #### 5.4.6. Модуль заимствованной формы Модуль формы (`Forms/Имя/Ext/Form/Module.bsl`) в заимствованной форме использует те же декораторы перехвата, что и другие модули расширений (см. раздел 7.2): ```bsl &НаСервере &Вместо("ЗаполнитьПодменюПараметры") Процедура Расш1_ЗаполнитьПодменюПараметры() ПродолжитьВызов(); КонецПроцедуры &НаКлиенте &ИзменениеИКонтроль("ПараметрыНаЯзыке") Функция Расш1_ПараметрыНаЯзыке(КодЯзыка) // ... тело с #Вставка / #Удаление маркерами ... КонецФункции // Обработчик собственной команды расширения (без декоратора) &НаКлиенте Процедура Расш1_НоваяКомандаВместо(Команда) // ... КонецПроцедуры ``` > **Обработчики событий с `callType`** (определённые в Form.xml секции Events/Action) реализуются в модуле как обычные процедуры **без** аннотаций-декораторов — привязка к событию уже задана в XML через `callType`. --- ## 6. Расширение свойств (xr:PropertyState и xr:ExtendedProperty) Расширения могут изменять свойства заимствованных реквизитов. Для этого используются специальные XML-конструкции. ### 6.1. PropertyState — уведомление об изменении Элемент `xr:PropertyState` в `InternalInfo` реквизита указывает, что свойство было изменено расширением. ```xml Type Notify Adopted Наценка 87429f11-... xs:decimal 10 2 Any ``` Значения `xr:State`: | Значение | Описание | |----------|----------| | `Notify` | Свойство изменено расширением, платформа выводит предупреждение | | `MultiState` | Свойство расширено (тип отличается от основной конфигурации) | ### 6.2. ExtendedProperty — расширение типа Когда расширение изменяет тип реквизита, используется конструкция `xr:ExtendedProperty`: ```xml xs:string 60 Variable ``` Свойство `Type` получает атрибут `xsi:type="xr:ExtendedProperty"`, а значение оборачивается в `xr:ExtendValue`. При этом в `InternalInfo` указывается `MultiState`. --- ## 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-маркеры) | #### Пример &Перед / &После ```bsl &НаКлиенте &Перед("ПодборИзКлассификатора") Процедура Расш5_ПодборИзКлассификатораПеред(Команда) // Код выполняется ДО оригинальной процедуры КонецПроцедуры &НаКлиенте &После("ПодборИзКлассификатора") Процедура Расш5_ПодборИзКлассификатораПосле(Команда) // Код выполняется ПОСЛЕ оригинальной процедуры КонецПроцедуры ``` #### Пример &Вместо ```bsl &НаСервере &Вместо("ЗаполнитьПодменюПараметрыПрописиВалюты") Процедура Расш5_ЗаполнитьПодменюПараметрыПрописиВалюты() // Полная замена оригинальной процедуры // ПродолжитьВызов() — вызов оригинальной реализации ПродолжитьВызов(); КонецПроцедуры ``` #### Пример &ИзменениеИКонтроль ```bsl &ИзменениеИКонтроль("РеквизитыРедактируемыеВГрупповойОбработке") Функция Расш5_РеквизитыРедактируемыеВГрупповойОбработке() Результат = Новый Массив; Результат.Добавить("СпособУстановкиКурса"); #Удаление Результат.Добавить("ФормулаРасчетаКурса"); #КонецУдаления #Вставка Результат.Добавить("НоваяФормулаРасчетаКурса"); #КонецВставки Возврат Результат; КонецФункции ``` ### 7.3. Diff-маркеры в коде Внутри процедур с декоратором `&ИзменениеИКонтроль` используются diff-маркеры для отслеживания изменений: | Маркер | Описание | |--------|----------| | `#Удаление` | Начало блока удалённого кода | | `#КонецУдаления` | Конец блока удалённого кода | | `#Вставка` | Начало блока вставленного кода | | `#КонецВставки` | Конец блока вставленного кода | Маркеры могут быть вложенными и чередующимися — типичный паттерн «удалить → вставить»: ```bsl #Удаление ИначеЕсли Выборка.Дата > Дата Тогда #КонецУдаления #Вставка ИначеЕсли Выборка.Дата < Дата Тогда #КонецВставки ``` ### 7.4. Именование процедур расширения Собственные процедуры расширения именуются с `NamePrefix`: - `Расш5_ПрочитатьАрхивВнутр()` — при `NamePrefix = Расш5_` - `МоёРасш_ПроверитьДату()` — при `NamePrefix = МоёРасш_` - `Расш1_ПриОпределенииНастроек()` — при `NamePrefix = Расш1_` --- ## 8. Предопределённые элементы в расширениях Расширения могут добавлять предопределённые элементы к заимствованным справочникам. Файл: `Каталог/Ext/Predefined.xml`. ```xml НовыйЭлемент 000000001 Новый элемент false Native ``` ### Отличие от Predefined.xml конфигурации | Аспект | Конфигурация | Расширение | |--------|-------------|------------| | Пространство имён | `http://v8.1c.ru/8.3/xcf/predef` (то же) | То же | | `ExtensionState` | Нет | `Native` — элемент создан расширением | --- ## 9. Языки (Languages/) Язык в расширении **всегда** заимствованный: ```xml Adopted Русский 0663bf5b-... ru ``` UUID в `ExtendedConfigurationObject` одинаков для всех расширений одной конфигурации — это UUID языка в основной конфигурации. --- ## 10. Роли (Roles/) ### 10.1. Собственная роль расширения (без прав) Минимальная роль без `Ext/Rights.xml`: ```xml Расш1_ОсновнаяРоль ``` Собственные роли расширений в изученных примерах **не имеют** каталога `Ext/` с `Rights.xml`. Права могут задаваться через конфигуратор. ### 10.2. DefaultRoles Ссылки на роли по умолчанию в Configuration.xml: ```xml Role.Расш1_ОсновнаяРоль ``` --- ## 11. Подсистемы (Subsystems/) ### 11.1. Собственная подсистема расширения ```xml Расш1_МояПодсистема ... CommonPicture.Расш1_МояКартинка false true Catalog.Расш1_Проекты Catalog.Расш1_Задачи DataProcessor.Расш1_Обработка1 ``` ### 11.2. Заимствованная подсистема ```xml Adopted Закупки f230c0c7-... Расш1_Документы ``` Заимствованная подсистема может содержать элементы `Content` (добавленные расширением команды/объекты) и дочерние подсистемы в `ChildObjects`. ### 11.3. CommandInterface в расширении Командный интерфейс подсистемы в расширении: `Subsystems/Имя/Ext/CommandInterface.xml`. ```xml Document.ЗаказНаПеремещение.StandardCommand.OpenList false true ... ``` --- ## 12. Общие модули (CommonModules/) ### 12.1. Заимствованный общий модуль ```xml Adopted ZipАрхивы b92e2bb8-... ``` Модуль расширения: `CommonModules/ZipАрхивы/Ext/Module.bsl` — содержит процедуры с декораторами перехвата. ### 12.2. Собственный общий модуль Формат аналогичен конфигурации (без `ObjectBelonging` и `ExtendedConfigurationObject`), со всеми свойствами (Server, ExternalConnection, ClientManagedApplication и т.д.). --- ## 13. Другие типы заимствованных объектов ### 13.1. Константы ```xml ... ... ... Adopted ИмяКонстанты 81d26b82-... xs:boolean ``` ### 13.2. Функциональные опции ```xml Adopted ИмяФункциональнойОпции d2699502-... Constant.ИмяКонстанты ``` ### 13.3. Определяемые типы Заимствованный (минимальный): ```xml ... Adopted ИмяОпределяемогоТипа ``` Собственный (с полным описанием типа): ```xml Расш1_Координата ... xs:decimal 15 10 Any ``` ### 13.4. Элементы стиля ```xml Adopted ИмяЭлементаСтиля 3d428bdf-... Font ``` Тип: `Color`, `Font`, `Border`. ### 13.5. Общие картинки ```xml Adopted ИмяКартинки ``` Собственные картинки могут иметь каталог `Ext/` с `Picture.xml` и файлом изображения: ``` CommonPictures/Расш1_МояКартинка/ Ext/ Picture.xml # Picture.png... Picture/ Picture.png # Файл изображения ``` ### 13.6. Общие команды ```xml Adopted ИмяКоманды FormCommandBarImportant ``` ### 13.7. Планы обмена ```xml c335c2b8-... Adopted ИмяПланаОбмена 0c01b26a-... ``` ### 13.8. Планы счетов ```xml Adopted Хозрасчетный 3796bdf5-... ``` ### 13.9. Регистры сведений Заимствованный (минимальный): ```xml ... Adopted ИмяРегистра ... Quarter Independent Adopted ИмяРесурса ... ... ``` Собственный регистр — полный набор свойств, аналогично конфигурации. --- ## 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/) | Полные |