From 45c2587e4a778734cb36dd24f3e3a4a16d58317c Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Thu, 12 Feb 2026 16:45:33 +0300 Subject: [PATCH 01/39] Add configuration metadata objects XML format specification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Comprehensive spec covering all 17 metadata object types (Catalogs, Documents, Registers, Charts, BusinessProcesses, Tasks, ExchangePlans, Enums, Constants, Reports, DataProcessors, DocumentJournals) with common structure, type system, standard attributes, child objects, and platform version differences (2.17→2.20). Co-Authored-By: Claude Opus 4.6 --- docs/1c-config-objects-spec.md | 1554 ++++++++++++++++++++++++++++++++ 1 file changed, 1554 insertions(+) create mode 100644 docs/1c-config-objects-spec.md diff --git a/docs/1c-config-objects-spec.md b/docs/1c-config-objects-spec.md new file mode 100644 index 00000000..9ba13180 --- /dev/null +++ b/docs/1c-config-objects-spec.md @@ -0,0 +1,1554 @@ +# Спецификация формата XML объектов метаданных конфигурации 1С + +Формат: XML-выгрузка конфигурации 1С:Предприятие 8.3 (Конфигуратор → Конфигурация → Выгрузить конфигурацию в файлы). +Версии формата: `2.17` (платформа 8.3.20–8.3.24), `2.20` (платформа 8.3.27+). + +Источники: выгрузки ERP 2, Бухгалтерия предприятия (платформы 8.3.20, 8.3.24, 8.3.27). + +--- + +## 1. Общая структура выгрузки + +### 1.1. Верхний уровень каталогов + +``` +Configuration.xml # Корневой файл конфигурации +ConfigDumpInfo.xml # Служебный файл выгрузки +Catalogs/ # Справочники +Documents/ # Документы +InformationRegisters/ # Регистры сведений +AccumulationRegisters/ # Регистры накопления +AccountingRegisters/ # Регистры бухгалтерии +CalculationRegisters/ # Регистры расчёта +ChartsOfAccounts/ # Планы счетов +ChartsOfCharacteristicTypes/ # Планы видов характеристик +ChartsOfCalculationTypes/ # Планы видов расчёта +BusinessProcesses/ # Бизнес-процессы +Tasks/ # Задачи +ExchangePlans/ # Планы обмена +DocumentJournals/ # Журналы документов +Enums/ # Перечисления +Reports/ # Отчёты +DataProcessors/ # Обработки +Constants/ # Константы +CommonModules/ # Общие модули +CommonAttributes/ # Общие реквизиты +CommonCommands/ # Общие команды +CommonForms/ # Общие формы +CommonPictures/ # Общие картинки +CommonTemplates/ # Общие макеты +CommandGroups/ # Группы команд +DefinedTypes/ # Определяемые типы +DocumentNumerators/ # Нумераторы документов +EventSubscriptions/ # Подписки на события +FilterCriteria/ # Критерии отбора +FunctionalOptions/ # Функциональные опции +FunctionalOptionsParameters/ # Параметры функциональных опций +HTTPServices/ # HTTP-сервисы +Languages/ # Языки +Roles/ # Роли +ScheduledJobs/ # Регламентные задания +SessionParameters/ # Параметры сеанса +SettingsStorages/ # Хранилища настроек +StyleItems/ # Элементы стиля +Styles/ # Стили +Subsystems/ # Подсистемы +WebServices/ # Web-сервисы +WSReferences/ # WS-ссылки +XDTOPackages/ # XDTO-пакеты +Ext/ # Расширение конфигурации +``` + +### 1.2. Структура каталога объекта метаданных + +Каждый объект метаданных (справочник, документ и т.д.) хранится в каталоге с именем объекта: + +``` +<ИмяОбъекта>/ +├── <ИмяОбъекта>.xml # Корневой XML — определение объекта +├── Ext/ +│ ├── ObjectModule.bsl # Модуль объекта (опционально) +│ ├── ManagerModule.bsl # Модуль менеджера (опционально) +│ ├── RecordSetModule.bsl # Модуль набора записей — для регистров (опционально) +│ ├── Predefined.xml # Предопределённые элементы (опционально) +│ ├── Help.xml # Метаданные справки (опционально) +│ ├── Help/ +│ │ └── ru.html # HTML-страница справки +│ ├── Flowchart.xml # Карта маршрута — только для бизнес-процессов +│ └── Content.xml # Состав плана обмена — только для планов обмена +├── Forms/ +│ ├── <ИмяФормы>/ +│ │ ├── <ИмяФормы>.xml # Метаданные формы +│ │ └── Ext/ +│ │ ├── Form.xml # Описание формы +│ │ ├── Form/ +│ │ │ └── Module.bsl # Модуль формы +│ │ └── Help.xml # Справка формы (опционально) +│ └── ... +├── Templates/ +│ ├── <ИмяМакета>/ +│ │ ├── <ИмяМакета>.xml # Метаданные макета +│ │ └── Ext/ +│ │ └── Template.xml # Тело макета (MXL, СКД и др.) +│ └── ... +└── Commands/ # Команды (если определены отдельными файлами) +``` + +**Модули по типам объектов:** + +| Тип объекта | ObjectModule | ManagerModule | RecordSetModule | CommandModule | +|---|---|---|---|---| +| Справочник | + | + | - | + | +| Документ | + | + | - | + | +| Регистры сведений | - | + | + | - | +| Регистры накопления | - | + | + | - | +| Регистры бухгалтерии | - | + | + | - | +| Регистры расчёта | - | + | + | - | +| ПланСчетов | + | + | - | + | +| ПВХ | + | + | - | + | +| ПВР | + | + | - | + | +| БизнесПроцесс | + | + | - | + | +| Задача | + | + | - | + | +| ПланОбмена | + | + | - | + | +| Перечисление | - | + | - | - | +| Отчёт | + | + | - | + | +| Обработка | + | + | - | + | +| Константа | - | + | - | - | + +--- + +## 2. Общий формат XML + +### 2.1. Корневой элемент + +Все файлы метаданных объектов используют корневой элемент ``: + +```xml + + + + + ... + ... + ... + + + +``` + +### 2.2. Пространства имён + +| Префикс | URI | Назначение | +|---|---|---| +| *(default)* | `http://v8.1c.ru/8.3/MDClasses` | Основное пространство классов метаданных | +| `v8` | `http://v8.1c.ru/8.1/data/core` | Базовые типы данных (Type, item, lang, content) | +| `cfg` | `http://v8.1c.ru/8.1/data/enterprise/current-config` | Ссылки на объекты текущей конфигурации | +| `xr` | `http://v8.3/xcf/readable` | Человекочитаемый формат (GeneratedType, StandardAttribute) | +| `xsi` | `http://www.w3.org/2001/XMLSchema-instance` | Типы атрибутов (`xsi:type`, `xsi:nil`) | +| `xs` | `http://www.w3.org/2001/XMLSchema` | Типы XML Schema (`xs:string`, `xs:boolean`, ...) | +| `app` | `http://v8.1c.ru/8.2/managed-application/core` | Ядро управляемого приложения (ChoiceParameters) | +| `xen` | `http://v8.3/xcf/enums` | Перечисления формата | +| `xpr` | `http://v8.3/xcf/predef` | Предопределённые типы | + +### 2.3. Элемент типа объекта + +Внутри `` содержится единственный дочерний элемент, имя которого соответствует типу объекта: + +| Тип метаданных | XML-элемент | +|---|---| +| Справочник | `` | +| Документ | `` | +| Перечисление | `` | +| Константа | `` | +| Регистр сведений | `` | +| Регистр накопления | `` | +| Регистр бухгалтерии | `` | +| Регистр расчёта | `` | +| План счетов | `` | +| План видов характеристик | `` | +| План видов расчёта | `` | +| Бизнес-процесс | `` | +| Задача | `` | +| План обмена | `` | +| Журнал документов | `` | +| Отчёт | `` | +| Обработка | `` | + +Атрибут `uuid` — уникальный идентификатор объекта. + +### 2.4. Три секции объекта + +Каждый объект метаданных содержит три секции: + +```xml +<[ТипОбъекта] uuid="..."> + + + + +``` + +--- + +## 3. InternalInfo — внутренняя информация + +Секция содержит определения типов, генерируемых платформой для работы с объектом. + +### 3.1. GeneratedType + +```xml + + + xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + + + ... + ... + + + +``` + +**Категории генерируемых типов по видам объектов:** + +| Вид объекта | Категории (category) | +|---|---| +| Catalog | Object, Ref, Selection, List, Manager | +| Document | Object, Ref, Selection, List, Manager | +| Enum | Ref, Manager, List | +| Constant | Manager, ValueManager, ValueKey | +| InformationRegister | Record, Manager, Selection, List, RecordSet, RecordKey, RecordManager | +| AccumulationRegister | Record, Manager, Selection, List, RecordSet, RecordKey | +| AccountingRegister | Record, Manager, Selection, List, RecordSet, RecordKey | +| CalculationRegister | Record, Manager, Selection, List, RecordSet, RecordKey + Recalcs | +| ChartOfAccounts | Object, Ref, Selection, List, Manager | +| ChartOfCharacteristicTypes | Object, Ref, Selection, List, Manager | +| ChartOfCalculationTypes | Object, Ref, Selection, List, Manager + Displacing, Base, Leading | +| BusinessProcess | Object, Ref, Selection, List, Manager | +| Task | Object, Ref, Selection, List, Manager | +| ExchangePlan | Object, Ref, Selection, List, Manager | +| DocumentJournal | Selection, List, Manager | +| Report | Object | +| DataProcessor | Object | + +Формат имени: `{ТипОбъектаEng}.{ИмяОбъекта}` (напр. `CatalogObject.Номенклатура`, `DocumentRef.АвансовыйОтчет`). + +### 3.2. ThisNode (только ExchangePlan) + +```xml + + xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ... + +``` + +--- + +## 4. Общие элементы Properties + +### 4.1. Базовые свойства (есть у всех объектов) + +```xml + + ИмяОбъекта + + + ru + Отображаемое имя + + + en + Display name + + + Комментарий разработчика + +``` + +- **Name** — системное имя (идентификатор, без пробелов и спецсимволов) +- **Synonym** — локализованное отображаемое имя (структура `v8:item`) +- **Comment** — комментарий (может быть пустым элементом ``) + +### 4.2. Многоязычный текст (v8:item) + +Используется для Synonym, ToolTip, ObjectPresentation, ListPresentation и других текстовых свойств: + +```xml + + + ru + Текст на русском + + + en + English text + + +``` + +### 4.3. Определение типа (Type) + +Тип реквизита задаётся элементом ``, содержащим один или несколько ``: + +**Примитивные типы:** +```xml + + + xs:string + + 100 + Variable + + + + + + xs:decimal + + 15 + 2 + Any + + + + + + xs:boolean + + + + + xs:dateTime + + DateTime + + +``` + +**Ссылочные типы:** +```xml + +cfg:CatalogRef.Номенклатура + + +cfg:DocumentRef.РеализацияТоваровУслуг + + +cfg:EnumRef.ВидыОпераций + + +cfg:ChartOfAccountsRef.Хозрасчетный + + +cfg:ChartOfCharacteristicTypesRef.ВидыСубконто + + +cfg:ChartOfCalculationTypesRef.Начисления + + +cfg:ExchangePlanRef.ОбменССайтом + + +cfg:BusinessProcessRef.Задание + + +cfg:TaskRef.ЗадачаИсполнителя +``` + +**Специальные типы:** +```xml + +v8:ValueStorage + + +v8:UUID +``` + +**Составной тип (несколько типов):** +```xml + + cfg:CatalogRef.Контрагенты + cfg:CatalogRef.ФизическиеЛица + xs:string + + 100 + Variable + + +``` + +**Определяемый тип (DefinedType):** +```xml + + cfg:DefinedType.Цена + +``` + +### 4.4. Свойства представления + +```xml + + ru... + +... +... +... +... +``` + +### 4.5. Свойства поведения + +```xml +true +true +Use +Managed +Use +true +true +``` + +### 4.6. Свойства форм + +```xml +Catalog.Номенклатура.Form.ФормаЭлемента +Catalog.Номенклатура.Form.ФормаГруппы +Catalog.Номенклатура.Form.ФормаСписка +Catalog.Номенклатура.Form.ФормаВыбора +... +... +... +... +... +... +``` + +### 4.7. Свойства поиска при вводе + +```xml + + Catalog.Номенклатура.StandardAttribute.Description + Catalog.Номенклатура.StandardAttribute.Code + +Begin +Use +Directly +DontUse +Auto +``` + +### 4.8. Свойства блокировки данных + +```xml + + Document.АвансовыйОтчет.Attribute.Организация + +Managed +``` + +### 4.9. Ввод на основании (BasedOn) + +```xml + + Document.РасходныйКассовыйОрдер + Document.СписаниеБезналичныхДС + +``` + +### 4.10. Характеристики (Characteristics) + +Механизм динамических свойств — позволяет расширять состав реквизитов объекта в режиме 1С:Предприятие: + +```xml + + + + InformationRegister.ДополнительныеСведения.Dimension.Свойство + Catalog.НаборыДополнительныхРеквизитовИСведений.TabularSection.ДополнительныеРеквизиты.Attribute.ДополнительныйРеквизит + Документ_АвансовыйОтчет + -1 + -1 + + + InformationRegister.ДополнительныеСведения.Dimension.Объект + InformationRegister.ДополнительныеСведения.Dimension.Свойство + InformationRegister.ДополнительныеСведения.Resource.Значение + -1 + -1 + + + +``` + +--- + +## 5. Стандартные реквизиты (StandardAttributes) + +Каждый объект имеет набор предопределённых стандартных реквизитов, задаваемых в секции `` внутри ``. + +### 5.1. Формат стандартного реквизита + +```xml + + + + ShowError + false + true + Auto + + + ruПодсказка + + false + + + Auto + Auto + + false + Use + false + + + ruНаименование + + + Use + + + + + + +``` + +### 5.2. Свойства стандартного реквизита + +| Свойство | Тип | Описание | +|---|---|---| +| `name` | атрибут | Имя стандартного реквизита | +| `LinkByType` | элемент | Связь по типу (обычно пустой) | +| `FillChecking` | enum | `DontCheck` \| `ShowWarning` \| `ShowError` | +| `MultiLine` | boolean | Многострочное поле | +| `FillFromFillingValue` | boolean | Заполнять из значения заполнения | +| `CreateOnInput` | enum | `Auto` \| `Use` \| `DontUse` | +| `MaxValue` | any | Макс. значение (`xsi:nil="true"` если не задано) | +| `MinValue` | any | Мин. значение | +| `ToolTip` | v8:item | Подсказка | +| `ExtendedEdit` | boolean | Расширенное редактирование | +| `Format` | v8:item | Формат отображения | +| `EditFormat` | v8:item | Формат редактирования | +| `ChoiceForm` | string | Форма выбора | +| `QuickChoice` | enum | `Auto` \| `Use` \| `DontUse` | +| `ChoiceHistoryOnInput` | enum | `Auto` \| `Use` \| `DontUse` | +| `PasswordMode` | boolean | Режим пароля | +| `DataHistory` | enum | `Use` \| `DontUse` | +| `MarkNegatives` | boolean | Выделять отрицательные | +| `Synonym` | v8:item | Переопределённый синоним | +| `Comment` | string | Комментарий | +| `FullTextSearch` | enum | `Use` \| `DontUse` | +| `ChoiceParameterLinks` | сложный | Связи параметров выбора | +| `FillValue` | typed | Значение заполнения | +| `Mask` | string | Маска ввода | +| `ChoiceParameters` | сложный | Параметры выбора | + +### 5.3. Стандартные реквизиты по видам объектов + +| Стандартный реквизит | Catalog | Document | Enum | ChartOfAccounts | ChartOfCharacteristicTypes | ExchangePlan | BusinessProcess | Task | +|---|---|---|---|---|---|---|---|---| +| Ref | + | + | + | + | + | + | + | + | +| DeletionMark | + | + | - | + | + | + | + | + | +| PredefinedDataName | + | - | - | + | + | - | - | - | +| Predefined | + | - | - | + | + | - | - | - | +| Code | + | - | - | + | + | + | - | - | +| Description | + | - | - | + | + | + | - | + | +| IsFolder | +* | - | - | - | - | - | - | - | +| Owner | +** | - | - | - | - | - | - | - | +| Parent | +* | - | - | + | +* | - | - | - | +| Date | - | + | - | - | - | - | + | + | +| Number | - | + | - | - | - | - | + | + | +| Posted | - | + | - | - | - | - | - | - | +| Order | - | - | + | + | - | - | - | - | +| ValueType | - | - | - | - | + | - | - | - | +| Type (тип счёта) | - | - | - | + | - | - | - | - | +| OffBalance | - | - | - | + | - | - | - | - | +| ThisNode | - | - | - | - | - | + | - | - | +| SentNo | - | - | - | - | - | + | - | - | +| ReceivedNo | - | - | - | - | - | + | - | - | +| Started | - | - | - | - | - | - | + | - | +| Completed | - | - | - | - | - | - | + | - | +| HeadTask | - | - | - | - | - | - | + | - | +| Executed | - | - | - | - | - | - | - | + | +| RoutePoint | - | - | - | - | - | - | - | + | +| BusinessProcess | - | - | - | - | - | - | - | + | + +`*` — если Hierarchical=true. `**` — если задан Owners. + +**Стандартные реквизиты регистров:** + +| Стандартный реквизит | InformationRegister | AccumulationRegister | AccountingRegister | CalculationRegister | +|---|---|---|---|---| +| Active | + | + | + | + | +| Period | + | + | + | - | +| Recorder | +* | + | + | + | +| LineNumber | +* | + | + | + | +| Account | - | - | + | - | +| ExtDimension1..3 | - | - | + | - | +| ExtDimensionType1..3 | - | - | + | - | +| RegistrationPeriod | - | - | - | + | +| CalculationType | - | - | - | + | +| ActionPeriod | - | - | - | +** | +| BegOfActionPeriod | - | - | - | +** | +| EndOfActionPeriod | - | - | - | +** | +| BegOfBasePeriod | - | - | - | +*** | +| EndOfBasePeriod | - | - | - | +*** | +| ReversingEntry | - | - | - | + | + +`*` — если WriteMode = RecorderSubordinate. `**` — если ActionPeriod = true. `***` — если BasePeriod = true. + +### 5.4. LinkByType (связь по типу) + +Используется в регистрах бухгалтерии для привязки субконто к счёту: + +```xml + + AccountingRegister.Хозрасчетный.StandardAttribute.Account + 1 + +``` + +### 5.5. FillValue — значение заполнения + +```xml + + + + +Текст +false +0 +0001-01-01T00:00:00 + + +Catalog.Номенклатура.EmptyRef +Enum.ВидыОпераций.EnumValue.Продажа +``` + +--- + +## 6. Дочерние объекты (ChildObjects) + +### 6.1. Реквизит (Attribute) + +```xml + + + Организация + + ruОрганизация + + + + cfg:CatalogRef.Организации + + false + + + + false + + false + false + + + true + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + ForItem + + +``` + +**Специфичные свойства реквизита:** + +| Свойство | Тип | Описание | +|---|---|---| +| `Indexing` | enum | `DontIndex` \| `Index` \| `IndexWithAdditionalOrder` | +| `ChoiceFoldersAndItems` | enum | `Items` \| `Folders` \| `FoldersAndItems` | +| `Use` | enum | `ForItem` \| `ForFolder` \| `ForFolderAndItem` (только для иерарх. справочников) | +| `FillFromFillingValue` | boolean | Заполнять из значения по умолчанию | + +### 6.2. Табличная часть (TabularSection) + +```xml + + + + ... + ... + + + ... + ... + + + + Штрихкоды + ... + + + DontCheck + + + + + + ForItem + + + + + + + +``` + +Имя генерируемого типа: `{Тип}TabularSection.{Объект}.{ИмяТЧ}` и `{Тип}TabularSectionRow.{Объект}.{ИмяТЧ}`. + +### 6.3. Форма (Form) + +```xml +
+ + ФормаЭлемента + ... + + Ordinary + +
+``` + +Содержимое формы хранится в отдельных файлах: `Forms/<Имя>/<Имя>.xml` и `Forms/<Имя>/Ext/Form.xml`. + +### 6.4. Макет (Template) + +```xml + +``` + +Тело макета: `Templates/<Имя>/Ext/Template.xml` (или другое расширение в зависимости от типа). + +### 6.5. Команда (Command) + +```xml + + + ВвестиНаОсновании + ... + + FormCommandBarImportant + + + cfg:DocumentRef.АвансовыйОтчет + + + Multiple + true + Auto + ... + + CommonPicture.Создать + false + + + Auto + + +``` + +--- + +## 7. Справочники (Catalogs) + +XML-элемент: ``. Категория InternalInfo: CatalogObject, CatalogRef, CatalogSelection, CatalogList, CatalogManager. + +### 7.1. Специфичные свойства + +**Иерархия:** + +```xml +true +HierarchyFoldersAndItems +true +3 +true +``` + +**Код и наименование:** + +```xml +11 +String +Variable +WholeCatalog +150 +true +true +AsDescription +``` + +**Владелец:** + +```xml + + Catalog.Контрагенты + +ToItems +``` + +**Прочее:** + +```xml +InDialog +true +BothWays +Auto +``` + +### 7.2. Предопределённые элементы (Predefined.xml) + +Файл `Ext/Predefined.xml` содержит предопределённые элементы справочника (если есть): + +```xml + + + + ОсновнаяВалюта + Рубль + 643 + false + + + +``` + +--- + +## 8. Документы (Documents) + +XML-элемент: ``. Категория InternalInfo: DocumentObject, DocumentRef, DocumentSelection, DocumentList, DocumentManager. + +### 8.1. Специфичные свойства + +**Нумерация:** + +```xml + +String +11 +Variable +Year +true +true +``` + +**Проведение:** + +```xml +Allow +Allow +true +true +``` + +**Движения по регистрам:** + +```xml + + AccumulationRegister.ТоварыНаСкладах + InformationRegister.ЦеныНоменклатуры + AccountingRegister.Хозрасчетный + +AutoDeleteOnUnpost +WriteSelected +AutoFill +``` + +### 8.2. Стандартные реквизиты документа + +- **Ref** — ссылка +- **DeletionMark** — пометка удаления +- **Date** — дата документа +- **Number** — номер документа +- **Posted** — проведён + +--- + +## 9. Регистры + +### 9.1. Регистры сведений (InformationRegisters) + +XML-элемент: ``. + +**Специфичные свойства:** + +```xml +Month + +Independent +true +false +false +``` + +- `WriteMode=Independent` — записи создаются напрямую, без документа-регистратора +- `WriteMode=RecorderSubordinate` — записи привязаны к документу-регистратору +- `RecorderPosition` — непериодический, но подчинённый регистратору (период = момент записи регистратора) + +**Дочерние объекты (ChildObjects):** + +- `` — измерения (ключевые поля) +- `` — ресурсы (хранимые значения) +- `` — реквизиты (дополнительная информация) +- `
`, `