mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-11 00:14:56 +03:00
3ec2d2594c
New docs: - 1c-configuration-spec.md: Configuration.xml properties, ConfigDumpInfo.xml, Ext/ directory, Languages, 17 additional object types (CommonPicture, SessionParameter, FunctionalOption, etc.), version 2.17→2.20 differences - 1c-specs-index.md: single entry point linking all 44 object types, nested formats (Form, DCS, MXL, Rights), EPF/ERF, and DSL specs Updated cross-references in 1c-config-objects-spec.md and 1c-subsystem-spec.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1023 lines
43 KiB
Markdown
1023 lines
43 KiB
Markdown
# Спецификация формата XML подсистем и командного интерфейса 1С
|
||
|
||
Формат: XML-выгрузка конфигурации 1С:Предприятие 8.3 (Конфигуратор → Конфигурация → Выгрузить конфигурацию в файлы).
|
||
Версии формата: `2.17` (платформа 8.3.20–8.3.24), `2.20` (платформа 8.3.27+).
|
||
|
||
Источники: выгрузки Бухгалтерия предприятия (платформы 8.3.20, 8.3.24, 8.3.27), ERP 2 (8.3.24).
|
||
|
||
> **Связанные спецификации:**
|
||
> - Корневая структура конфигурации — [1c-configuration-spec.md](1c-configuration-spec.md)
|
||
> - Объекты метаданных — [1c-config-objects-spec.md](1c-config-objects-spec.md)
|
||
> - Сводный индекс — [1c-specs-index.md](1c-specs-index.md)
|
||
|
||
---
|
||
|
||
## 1. Структура каталогов
|
||
|
||
### 1.1. Подсистемы (Subsystems)
|
||
|
||
Подсистемы организуют иерархическое дерево в каталоге `Subsystems/`:
|
||
|
||
```
|
||
Subsystems/
|
||
├── ПодсистемаА.xml # Определение подсистемы
|
||
├── ПодсистемаА/ # Каталог подсистемы (если есть вложенные или CommandInterface)
|
||
│ ├── Ext/
|
||
│ │ └── CommandInterface.xml # Командный интерфейс подсистемы (опционально)
|
||
│ └── Subsystems/ # Вложенные подсистемы (опционально)
|
||
│ ├── Дочерняя1.xml
|
||
│ ├── Дочерняя1/
|
||
│ │ ├── Ext/
|
||
│ │ │ └── CommandInterface.xml
|
||
│ │ └── Subsystems/
|
||
│ │ └── Внучатая1.xml # Вложенность до 3+ уровней
|
||
│ └── Дочерняя2.xml
|
||
├── ПодсистемаБ.xml # Лист — без каталога
|
||
└── ...
|
||
```
|
||
|
||
**Правила:**
|
||
- Каждая подсистема имеет файл `<Имя>.xml` (обязательно)
|
||
- Каталог `<Имя>/` создаётся только если есть вложенные подсистемы или файл `Ext/CommandInterface.xml`
|
||
- Вложенные подсистемы хранятся в `<Имя>/Subsystems/` — рекурсивно повторяя ту же структуру
|
||
- Глубина вложенности не ограничена (на практике до 3–4 уровней)
|
||
|
||
### 1.2. Группы команд (CommandGroups)
|
||
|
||
```
|
||
CommandGroups/
|
||
├── Документы.xml
|
||
├── Отчеты.xml
|
||
├── Печать.xml
|
||
└── ...
|
||
```
|
||
|
||
Плоская структура — только XML-файлы, без подкаталогов.
|
||
|
||
### 1.3. Общие команды (CommonCommands)
|
||
|
||
```
|
||
CommonCommands/
|
||
├── АнализСчета.xml # Метаданные
|
||
├── АнализСчета/
|
||
│ └── Ext/
|
||
│ └── CommandModule.bsl # Модуль команды
|
||
└── ...
|
||
```
|
||
|
||
### 1.4. Командный интерфейс конфигурации (корневой)
|
||
|
||
```
|
||
Ext/
|
||
└── CommandInterface.xml # Глобальный командный интерфейс — порядок разделов
|
||
```
|
||
|
||
Корневой `CommandInterface.xml` определяет порядок подсистем верхнего уровня в панели разделов.
|
||
|
||
---
|
||
|
||
## 2. Пространства имён XML
|
||
|
||
### 2.1. Подсистема (файл метаданных)
|
||
|
||
Корневой элемент — `<MetaDataObject>`, стандартный набор деклараций:
|
||
|
||
```xml
|
||
<MetaDataObject
|
||
xmlns="http://v8.1c.ru/8.3/MDClasses"
|
||
xmlns:app="http://v8.1c.ru/8.2/managed-application/core"
|
||
xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config"
|
||
xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi"
|
||
xmlns:ent="http://v8.1c.ru/8.1/data/enterprise"
|
||
xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform"
|
||
xmlns:style="http://v8.1c.ru/8.1/data/ui/style"
|
||
xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system"
|
||
xmlns:v8="http://v8.1c.ru/8.1/data/core"
|
||
xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
|
||
xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web"
|
||
xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows"
|
||
xmlns:xen="http://v8.1c.ru/8.3/xcf/enums"
|
||
xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef"
|
||
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"
|
||
version="2.17">
|
||
```
|
||
|
||
### 2.2. Командный интерфейс (CommandInterface.xml)
|
||
|
||
Корневой элемент — `<CommandInterface>`:
|
||
|
||
```xml
|
||
<CommandInterface
|
||
xmlns="http://v8.1c.ru/8.3/xcf/extrnprops"
|
||
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"
|
||
version="2.17">
|
||
```
|
||
|
||
---
|
||
|
||
## 3. Формат подсистемы
|
||
|
||
### 3.1. Общая структура
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<MetaDataObject xmlns="..." version="2.17">
|
||
<Subsystem uuid="<UUID>">
|
||
<Properties>
|
||
<Name>ИмяПодсистемы</Name>
|
||
<Synonym>...</Synonym>
|
||
<Comment/>
|
||
<IncludeHelpInContents>true</IncludeHelpInContents>
|
||
<IncludeInCommandInterface>true</IncludeInCommandInterface>
|
||
<UseOneCommand>false</UseOneCommand>
|
||
<Explanation>...</Explanation>
|
||
<Picture>...</Picture>
|
||
<Content>...</Content>
|
||
</Properties>
|
||
<ChildObjects>
|
||
<Subsystem>Дочерняя1</Subsystem>
|
||
<Subsystem>Дочерняя2</Subsystem>
|
||
</ChildObjects>
|
||
</Subsystem>
|
||
</MetaDataObject>
|
||
```
|
||
|
||
### 3.2. Свойства (Properties)
|
||
|
||
| Свойство | Тип | Обязательно | Описание |
|
||
|---|---|---|---|
|
||
| `Name` | string | да | Программное имя (CamelCase, без пробелов) |
|
||
| `Synonym` | LocalString | да | Отображаемое имя (локализованное) |
|
||
| `Comment` | string | да | Комментарий. Обычно пустой тег `<Comment/>` |
|
||
| `IncludeHelpInContents` | bool | да | Включать справку в содержание |
|
||
| `IncludeInCommandInterface` | bool | да | Отображать в командном интерфейсе (`true` — раздел видим) |
|
||
| `UseOneCommand` | bool | да | Использовать единственную команду (подсистема-ярлык). `true` — при открытии сразу выполняется единственная команда из Content |
|
||
| `Explanation` | LocalString | да | Подсказка при наведении на раздел. Пустой тег если не задана |
|
||
| `Picture` | Picture | да | Иконка раздела. Пустой тег `<Picture/>` если не задана |
|
||
| `Content` | Content | да | Список включённых объектов метаданных. Пустой тег `<Content/>` если нет |
|
||
|
||
#### Synonym, Explanation (LocalString)
|
||
|
||
Локализованная строка с элементами по языкам:
|
||
|
||
```xml
|
||
<Synonym>
|
||
<v8:item>
|
||
<v8:lang>ru</v8:lang>
|
||
<v8:content>Администрирование</v8:content>
|
||
</v8:item>
|
||
<v8:item>
|
||
<v8:lang>en</v8:lang>
|
||
<v8:content>Administration</v8:content>
|
||
</v8:item>
|
||
</Synonym>
|
||
```
|
||
|
||
Может быть пустым тегом: `<Explanation/>`
|
||
|
||
#### Picture
|
||
|
||
Ссылка на общую картинку конфигурации:
|
||
|
||
```xml
|
||
<Picture>
|
||
<xr:Ref>CommonPicture.Администрирование</xr:Ref>
|
||
<xr:LoadTransparent>false</xr:LoadTransparent>
|
||
</Picture>
|
||
```
|
||
|
||
- `xr:Ref` — ссылка на объект `CommonPicture.<Имя>`
|
||
- `xr:LoadTransparent` — загружать с прозрачностью (`true`/`false`)
|
||
- Пустой тег `<Picture/>` если иконка не задана
|
||
|
||
#### Content
|
||
|
||
Список объектов метаданных, включённых в подсистему:
|
||
|
||
```xml
|
||
<Content>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Catalog.Номенклатура</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Document.РеализацияТоваровУслуг</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Report.Продажи</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">CommonCommand.Настройки</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">FunctionalOption.ИспользоватьСклады</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Constant.ИспользоватьСклады</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">CommandGroup.Настройки</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Role.ПодсистемаПродажи</xr:Item>
|
||
</Content>
|
||
```
|
||
|
||
Каждый элемент `<xr:Item>` имеет фиксированный атрибут `xsi:type="xr:MDObjectRef"` и содержит полный путь объекта в формате `<ТипОбъекта>.<Имя>`.
|
||
|
||
**Встречающиеся типы объектов в Content:**
|
||
|
||
| Тип | Пример |
|
||
|---|---|
|
||
| `Catalog` | `Catalog.Номенклатура` |
|
||
| `Document` | `Document.РеализацияТоваровУслуг` |
|
||
| `Report` | `Report.Продажи` |
|
||
| `DataProcessor` | `DataProcessor.ПанельАдминистрирования` |
|
||
| `CommonModule` | `CommonModule.МодульОбщий` |
|
||
| `CommonCommand` | `CommonCommand.Настройки` |
|
||
| `CommonForm` | `CommonForm.ФормаОбщая` |
|
||
| `CommonPicture` | `CommonPicture.КартинкаОбщая` |
|
||
| `CommandGroup` | `CommandGroup.Настройки` |
|
||
| `Constant` | `Constant.ИспользоватьСклады` |
|
||
| `FunctionalOption` | `FunctionalOption.ИспользоватьСклады` |
|
||
| `Enum` | `Enum.ВидыОпераций` |
|
||
| `Role` | `Role.ПодсистемаПродажи` |
|
||
| `InformationRegister` | `InformationRegister.КурсыВалют` |
|
||
| `AccumulationRegister` | `AccumulationRegister.Продажи` |
|
||
| `AccountingRegister` | `AccountingRegister.Хозрасчетный` |
|
||
| `ChartOfAccounts` | `ChartOfAccounts.Хозрасчетный` |
|
||
| `ChartOfCharacteristicTypes` | `ChartOfCharacteristicTypes.Виды` |
|
||
| `ExchangePlan` | `ExchangePlan.ОбменДанными` |
|
||
| `DocumentJournal` | `DocumentJournal.Журнал` |
|
||
| UUID (ссылка по идентификатору) | `cf4e9dea-4052-4a62-8427-0d37e8c47a23` |
|
||
|
||
> **UUID-ссылки**: Некоторые элементы Content содержат UUID вместо именованной ссылки. Это ссылки на объекты из расширений или объекты, которые были удалены/переименованы.
|
||
|
||
Пустой тег `<Content/>` — подсистема не содержит объектов (организующая подсистема).
|
||
|
||
### 3.3. Дочерние объекты (ChildObjects)
|
||
|
||
Список вложенных подсистем:
|
||
|
||
```xml
|
||
<ChildObjects>
|
||
<Subsystem>НастройкиПрограммы</Subsystem>
|
||
<Subsystem>Пользователи</Subsystem>
|
||
<Subsystem>ПроведениеДокументов</Subsystem>
|
||
</ChildObjects>
|
||
```
|
||
|
||
- Каждый `<Subsystem>` содержит только **имя** дочерней подсистемы (не UUID, не путь)
|
||
- Порядок элементов значим — определяет порядок в дереве конфигурации
|
||
- Пустой тег `<ChildObjects/>` — лист дерева, нет вложенных подсистем
|
||
- Определения дочерних подсистем находятся в `<ИмяРодителя>/Subsystems/<ИмяДочерней>.xml`
|
||
|
||
### 3.4. Типовые паттерны подсистем
|
||
|
||
**Организующая подсистема** — содержит только дочерние, без собственных объектов:
|
||
```xml
|
||
<Content/>
|
||
<ChildObjects>
|
||
<Subsystem>Дочерняя1</Subsystem>
|
||
<Subsystem>Дочерняя2</Subsystem>
|
||
</ChildObjects>
|
||
```
|
||
|
||
**Листовая подсистема** — содержит объекты, без вложенных:
|
||
```xml
|
||
<Content>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Catalog.Товары</xr:Item>
|
||
</Content>
|
||
<ChildObjects/>
|
||
```
|
||
|
||
**Подсистема-ярлык** (`UseOneCommand=true`) — открывает единственную команду:
|
||
```xml
|
||
<UseOneCommand>true</UseOneCommand>
|
||
<Content>
|
||
<xr:Item xsi:type="xr:MDObjectRef">DataProcessor.Помощь</xr:Item>
|
||
</Content>
|
||
<ChildObjects/>
|
||
```
|
||
|
||
**Смешанная подсистема** — и объекты, и дочерние:
|
||
```xml
|
||
<Content>
|
||
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.Модуль</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Report.Отчёт</xr:Item>
|
||
</Content>
|
||
<ChildObjects>
|
||
<Subsystem>Дочерняя1</Subsystem>
|
||
</ChildObjects>
|
||
```
|
||
|
||
---
|
||
|
||
## 4. Формат командного интерфейса (CommandInterface.xml)
|
||
|
||
### 4.1. Общая структура
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<CommandInterface xmlns="http://v8.1c.ru/8.3/xcf/extrnprops"
|
||
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"
|
||
version="2.17">
|
||
<CommandsVisibility>...</CommandsVisibility> <!-- опционально -->
|
||
<CommandsPlacement>...</CommandsPlacement> <!-- опционально -->
|
||
<CommandsOrder>...</CommandsOrder> <!-- опционально -->
|
||
<SubsystemsOrder>...</SubsystemsOrder> <!-- опционально -->
|
||
<GroupsOrder>...</GroupsOrder> <!-- опционально -->
|
||
</CommandInterface>
|
||
```
|
||
|
||
Все 5 дочерних элементов опциональны. Порядок фиксирован: `CommandsVisibility` → `CommandsPlacement` → `CommandsOrder` → `SubsystemsOrder` → `GroupsOrder`.
|
||
|
||
### 4.2. Два уровня CommandInterface
|
||
|
||
| Уровень | Путь | Типичное содержание |
|
||
|---|---|---|
|
||
| **Корневой** (конфигурация) | `Ext/CommandInterface.xml` | Только `SubsystemsOrder` — порядок разделов верхнего уровня |
|
||
| **Подсистема** | `Subsystems/<Имя>/Ext/CommandInterface.xml` | Любая комбинация из 5 секций |
|
||
|
||
#### Корневой командный интерфейс
|
||
|
||
Содержит только порядок подсистем верхнего уровня:
|
||
|
||
```xml
|
||
<CommandInterface xmlns="..." version="2.17">
|
||
<SubsystemsOrder>
|
||
<Subsystem>Subsystem.Руководителю</Subsystem>
|
||
<Subsystem>Subsystem.БанкИКасса</Subsystem>
|
||
<Subsystem>Subsystem.Продажи</Subsystem>
|
||
<Subsystem>Subsystem.Покупки</Subsystem>
|
||
<Subsystem>Subsystem.Администрирование</Subsystem>
|
||
</SubsystemsOrder>
|
||
</CommandInterface>
|
||
```
|
||
|
||
### 4.3. CommandsVisibility — видимость команд
|
||
|
||
Управляет видимостью отдельных команд в разделе:
|
||
|
||
```xml
|
||
<CommandsVisibility>
|
||
<Command name="Catalog.Номенклатура.StandardCommand.OpenList">
|
||
<Visibility>
|
||
<xr:Common>false</xr:Common>
|
||
</Visibility>
|
||
</Command>
|
||
<Command name="Report.Продажи.Command.ПродажиПоКонтрагентам">
|
||
<Visibility>
|
||
<xr:Common>true</xr:Common>
|
||
</Visibility>
|
||
</Command>
|
||
</CommandsVisibility>
|
||
```
|
||
|
||
**Элемент `Command`:**
|
||
- Атрибут `name` — полный путь команды (см. [формат ссылок на команды](#46-формат-ссылок-на-команды))
|
||
- `Visibility` > `xr:Common` — видимость для всех пользователей: `true` (видима) / `false` (скрыта)
|
||
|
||
> **Семантика**: Определяет какие команды видимы/скрыты **по умолчанию** для всех пользователей в данном разделе. Перечисляются только команды, чья видимость **отличается** от автоматической.
|
||
|
||
### 4.4. CommandsPlacement — размещение команд в группах
|
||
|
||
Определяет в какую группу команд помещается команда:
|
||
|
||
```xml
|
||
<CommandsPlacement>
|
||
<Command name="Report.Продажи.Command.ПродажиПоКонтрагентам">
|
||
<CommandGroup>CommandGroup.Отчеты</CommandGroup>
|
||
<Placement>Auto</Placement>
|
||
</Command>
|
||
<Command name="DataProcessor.Настройки.Command.Открыть">
|
||
<CommandGroup>NavigationPanelOrdinary</CommandGroup>
|
||
<Placement>Auto</Placement>
|
||
</Command>
|
||
</CommandsPlacement>
|
||
```
|
||
|
||
**Элемент `Command`:**
|
||
- `name` — ссылка на команду
|
||
- `CommandGroup` — идентификатор группы (см. [стандартные группы](#47-группы-команд))
|
||
- `Placement` — стратегия размещения. Единственное наблюдаемое значение: `Auto`
|
||
|
||
### 4.5. CommandsOrder — порядок команд
|
||
|
||
Определяет порядок отображения команд внутри групп:
|
||
|
||
```xml
|
||
<CommandsOrder>
|
||
<Command name="Document.СчётНаОплату.StandardCommand.Create">
|
||
<CommandGroup>ActionsPanelCreate</CommandGroup>
|
||
</Command>
|
||
<Command name="Document.Реализация.StandardCommand.Create">
|
||
<CommandGroup>ActionsPanelCreate</CommandGroup>
|
||
</Command>
|
||
<Command name="Report.Продажи.Command.ПродажиПоКонтрагентам">
|
||
<CommandGroup>CommandGroup.Отчеты</CommandGroup>
|
||
</Command>
|
||
</CommandsOrder>
|
||
```
|
||
|
||
**Элемент `Command`:**
|
||
- `name` — ссылка на команду
|
||
- `CommandGroup` — группа, в которой определяется порядок
|
||
|
||
Команды отображаются в порядке их перечисления в `CommandsOrder`.
|
||
|
||
### 4.6. SubsystemsOrder — порядок вложенных подсистем
|
||
|
||
Определяет порядок дочерних подсистем в навигационной панели:
|
||
|
||
```xml
|
||
<SubsystemsOrder>
|
||
<Subsystem>Subsystem.Продажи.Subsystem.ПродажиГлавное</Subsystem>
|
||
<Subsystem>Subsystem.Продажи.Subsystem.РозничныеПродажи</Subsystem>
|
||
<Subsystem>Subsystem.Продажи.Subsystem.РасчетыСКонтрагентами</Subsystem>
|
||
</SubsystemsOrder>
|
||
```
|
||
|
||
**Формат пути подсистемы:**
|
||
- Корневой уровень: `Subsystem.<Имя>`
|
||
- Вложенный уровень: `Subsystem.<Родитель>.Subsystem.<Дочерняя>`
|
||
- Глубже: `Subsystem.<A>.Subsystem.<B>.Subsystem.<C>`
|
||
|
||
> **В корневом CommandInterface** используются пути `Subsystem.<Имя>` (верхний уровень).
|
||
> **В CommandInterface подсистемы** используются полные пути от корня: `Subsystem.<Родитель>.Subsystem.<Дочерняя>`.
|
||
|
||
### 4.7. GroupsOrder — порядок групп команд
|
||
|
||
Определяет порядок отображения самих групп:
|
||
|
||
```xml
|
||
<GroupsOrder>
|
||
<Group>NavigationPanelOrdinary</Group>
|
||
<Group>CommandGroup.НачальноеЗаполнение</Group>
|
||
<Group>NavigationPanelSeeAlso</Group>
|
||
<Group>ActionsPanelTools</Group>
|
||
<Group>CommandGroup.Отчеты</Group>
|
||
<Group>CommandGroup.Сервис</Group>
|
||
<Group>CommandGroup.Информация</Group>
|
||
</GroupsOrder>
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Формат группы команд (CommandGroup)
|
||
|
||
### 5.1. Структура каталогов
|
||
|
||
```
|
||
CommandGroups/
|
||
├── Документы.xml
|
||
├── Отчеты.xml
|
||
├── Печать.xml
|
||
├── Настройки.xml
|
||
└── ...
|
||
```
|
||
|
||
Плоская структура — только XML-файлы, без подкаталогов и модулей.
|
||
|
||
### 5.2. Общая структура XML
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<MetaDataObject xmlns="..." version="2.17">
|
||
<CommandGroup uuid="<UUID>">
|
||
<Properties>
|
||
<Name>Документы</Name>
|
||
<Synonym>...</Synonym>
|
||
<Comment/>
|
||
<Representation>Auto</Representation>
|
||
<ToolTip>...</ToolTip>
|
||
<Picture>...</Picture>
|
||
<Category>ActionsPanel</Category>
|
||
</Properties>
|
||
</CommandGroup>
|
||
</MetaDataObject>
|
||
```
|
||
|
||
### 5.3. Свойства (Properties)
|
||
|
||
| Свойство | Тип | Обязательно | Описание |
|
||
|---|---|---|---|
|
||
| `Name` | string | да | Программное имя (CamelCase) |
|
||
| `Synonym` | LocalString | да | Отображаемое имя |
|
||
| `Comment` | string | да | Комментарий. Обычно пустой тег |
|
||
| `Representation` | enum | да | Способ отображения |
|
||
| `ToolTip` | LocalString | да | Подсказка. Пустой тег если не задана |
|
||
| `Picture` | Picture | да | Иконка. Пустой тег если не задана |
|
||
| `Category` | enum | да | Категория размещения |
|
||
|
||
#### Representation
|
||
|
||
| Значение | Описание |
|
||
|---|---|
|
||
| `Auto` | По умолчанию (наиболее частое) |
|
||
| `Picture` | Только картинка |
|
||
| `PictureAndText` | Картинка с текстом |
|
||
|
||
#### Category
|
||
|
||
| Значение | Описание |
|
||
|---|---|
|
||
| `ActionsPanel` | Панель действий (главное меню раздела) |
|
||
| `FormCommandBar` | Командная панель формы |
|
||
| `NavigationPanel` | Панель навигации |
|
||
|
||
#### Picture (расширенный формат)
|
||
|
||
```xml
|
||
<Picture>
|
||
<xr:Ref>StdPicture.Print</xr:Ref>
|
||
<xr:LoadTransparent>true</xr:LoadTransparent>
|
||
<xr:TransparentPixel x="7" y="5"/> <!-- опционально -->
|
||
</Picture>
|
||
```
|
||
|
||
- `xr:Ref` — ссылка на картинку: `StdPicture.<Имя>`, `CommonPicture.<Имя>`, или `0` (числовая ссылка)
|
||
- `xr:LoadTransparent` — загружать с прозрачностью
|
||
- `xr:TransparentPixel` — координаты прозрачного пикселя (опционально)
|
||
|
||
### 5.4. Пример: минимальная группа
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<MetaDataObject xmlns="..." version="2.17">
|
||
<CommandGroup uuid="774911fc-5b94-4ac7-8923-fd317727c671">
|
||
<Properties>
|
||
<Name>Документы</Name>
|
||
<Synonym>
|
||
<v8:item>
|
||
<v8:lang>ru</v8:lang>
|
||
<v8:content>Документы</v8:content>
|
||
</v8:item>
|
||
</Synonym>
|
||
<Comment/>
|
||
<Representation>Auto</Representation>
|
||
<ToolTip/>
|
||
<Picture/>
|
||
<Category>ActionsPanel</Category>
|
||
</Properties>
|
||
</CommandGroup>
|
||
</MetaDataObject>
|
||
```
|
||
|
||
### 5.5. Пример: группа с картинкой и подсказкой
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<MetaDataObject xmlns="..." version="2.17">
|
||
<CommandGroup uuid="ac39b903-0c60-417e-a50f-49ed375424f5">
|
||
<Properties>
|
||
<Name>Печать</Name>
|
||
<Synonym>
|
||
<v8:item>
|
||
<v8:lang>ru</v8:lang>
|
||
<v8:content>Печать</v8:content>
|
||
</v8:item>
|
||
</Synonym>
|
||
<Comment>Печать</Comment>
|
||
<Representation>Auto</Representation>
|
||
<ToolTip>
|
||
<v8:item>
|
||
<v8:lang>ru</v8:lang>
|
||
<v8:content>Печать</v8:content>
|
||
</v8:item>
|
||
</ToolTip>
|
||
<Picture>
|
||
<xr:Ref>StdPicture.Print</xr:Ref>
|
||
<xr:LoadTransparent>true</xr:LoadTransparent>
|
||
</Picture>
|
||
<Category>FormCommandBar</Category>
|
||
</Properties>
|
||
</CommandGroup>
|
||
</MetaDataObject>
|
||
```
|
||
|
||
---
|
||
|
||
## 6. Формат общей команды (CommonCommand)
|
||
|
||
### 6.1. Структура каталогов
|
||
|
||
```
|
||
CommonCommands/
|
||
├── АнализСчета.xml # Метаданные команды
|
||
├── АнализСчета/
|
||
│ └── Ext/
|
||
│ └── CommandModule.bsl # Модуль команды
|
||
├── НастройкиСинхронизации.xml
|
||
├── НастройкиСинхронизации/
|
||
│ └── Ext/
|
||
│ └── CommandModule.bsl
|
||
└── ...
|
||
```
|
||
|
||
Каждая команда состоит из:
|
||
- `<Имя>.xml` — определение метаданных (обязательно)
|
||
- `<Имя>/Ext/CommandModule.bsl` — модуль реализации (обязательно)
|
||
|
||
### 6.2. Общая структура XML
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<MetaDataObject xmlns="..." version="2.17">
|
||
<CommonCommand uuid="<UUID>">
|
||
<Properties>
|
||
<Name>АнализСчета</Name>
|
||
<Synonym>...</Synonym>
|
||
<Comment/>
|
||
<Group>NavigationPanelOrdinary</Group>
|
||
<Representation>Auto</Representation>
|
||
<ToolTip>...</ToolTip>
|
||
<Picture/>
|
||
<Shortcut/>
|
||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||
<CommandParameterType/>
|
||
<ParameterUseMode>Single</ParameterUseMode>
|
||
<ModifiesData>false</ModifiesData>
|
||
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
|
||
</Properties>
|
||
</CommonCommand>
|
||
</MetaDataObject>
|
||
```
|
||
|
||
### 6.3. Свойства (Properties)
|
||
|
||
| Свойство | Тип | Обязательно | Описание |
|
||
|---|---|---|---|
|
||
| `Name` | string | да | Программное имя |
|
||
| `Synonym` | LocalString | да | Отображаемое имя |
|
||
| `Comment` | string | да | Комментарий |
|
||
| `Group` | string | да | Группа размещения команды |
|
||
| `Representation` | enum | да | Способ отображения: `Auto`, `PictureAndText` |
|
||
| `ToolTip` | LocalString | да | Подсказка |
|
||
| `Picture` | Picture | да | Иконка |
|
||
| `Shortcut` | string | да | Сочетание клавиш. Пример: `F11`. Пустой тег если нет |
|
||
| `IncludeHelpInContents` | bool | да | Включать в содержание справки |
|
||
| `CommandParameterType` | TypeList | да | Типы параметра команды |
|
||
| `ParameterUseMode` | enum | да | Режим использования параметра: `Single` или `Multiple` |
|
||
| `ModifiesData` | bool | да | Модифицирует данные |
|
||
| `OnMainServerUnavalableBehavior` | enum | да | Поведение при недоступности сервера: `Auto` |
|
||
|
||
#### Group — стандартные группы размещения
|
||
|
||
Команда размещается в одной из групп:
|
||
|
||
**Панель навигации раздела:**
|
||
- `NavigationPanelOrdinary` — обычные команды навигации
|
||
- `NavigationPanelImportant` — важные команды навигации
|
||
|
||
**Панель навигации формы:**
|
||
- `FormNavigationPanelGoTo` — «Перейти» в форме
|
||
- `FormNavigationPanelImportant` — важные в навигации формы
|
||
|
||
**Командная панель формы:**
|
||
- `FormCommandBarImportant` — важные на панели команд формы
|
||
- `FormCommandBarCreateBasedOn` — «Создать на основании»
|
||
|
||
**Панель действий:**
|
||
- `ActionsPanelTools` — сервисные действия
|
||
- `ActionsPanelReports` — отчёты в панели действий
|
||
|
||
**Пользовательская группа:**
|
||
- `CommandGroup.<Имя>` — ссылка на группу команд
|
||
|
||
#### CommandParameterType — типы параметра
|
||
|
||
Определяет к каким объектам привязана команда. Если пусто — команда глобальная.
|
||
|
||
**Без параметра (глобальная команда):**
|
||
```xml
|
||
<CommandParameterType/>
|
||
```
|
||
|
||
**Один тип:**
|
||
```xml
|
||
<CommandParameterType>
|
||
<v8:Type>cfg:CatalogRef.Сотрудники</v8:Type>
|
||
</CommandParameterType>
|
||
```
|
||
|
||
**Несколько типов:**
|
||
```xml
|
||
<CommandParameterType>
|
||
<v8:Type>cfg:ExchangePlanRef.Полный</v8:Type>
|
||
<v8:Type>cfg:ExchangePlanRef.ПоОрганизации</v8:Type>
|
||
<v8:Type>cfg:ExchangePlanRef.АвтономнаяРабота</v8:Type>
|
||
</CommandParameterType>
|
||
```
|
||
|
||
Формат типов: `cfg:<ТипСсылки>.<ИмяОбъекта>`, где типы ссылок:
|
||
- `cfg:CatalogRef.<Имя>` — ссылка на справочник
|
||
- `cfg:DocumentRef.<Имя>` — ссылка на документ
|
||
- `cfg:ExchangePlanRef.<Имя>` — ссылка на план обмена
|
||
|
||
---
|
||
|
||
## 7. Команды объектов (встроенные команды)
|
||
|
||
Помимо общих команд (`CommonCommands/`), команды могут быть определены внутри объектов метаданных (справочников, документов, обработок и т.д.).
|
||
|
||
### 7.1. Структура
|
||
|
||
Команды определяются в секции `<ChildObjects>` родительского объекта и хранят модуль в подкаталоге:
|
||
|
||
```
|
||
Catalogs/
|
||
├── Номенклатура.xml # В ChildObjects определены Command-ы
|
||
└── Номенклатура/
|
||
└── Commands/
|
||
└── КомандаИсторияДвижений/
|
||
└── Ext/
|
||
└── CommandModule.bsl # Модуль команды
|
||
```
|
||
|
||
### 7.2. XML-определение (внутри ChildObjects родителя)
|
||
|
||
```xml
|
||
<ChildObjects>
|
||
<Form>ФормаЭлемента</Form>
|
||
<Form>ФормаСписка</Form>
|
||
<Command uuid="d95fb51f-719f-4d67-ab58-b8144e3f2b7e">
|
||
<Properties>
|
||
<Name>КомандаИсторияДвижений</Name>
|
||
<Synonym>
|
||
<v8:item>
|
||
<v8:lang>ru</v8:lang>
|
||
<v8:content>История движений</v8:content>
|
||
</v8:item>
|
||
</Synonym>
|
||
<Comment/>
|
||
<Group>FormNavigationPanelImportant</Group>
|
||
<CommandParameterType>
|
||
<v8:Type>cfg:CatalogRef.Номенклатура</v8:Type>
|
||
</CommandParameterType>
|
||
<ParameterUseMode>Single</ParameterUseMode>
|
||
<ModifiesData>false</ModifiesData>
|
||
<Representation>Auto</Representation>
|
||
<ToolTip/>
|
||
<Picture/>
|
||
<Shortcut/>
|
||
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
|
||
</Properties>
|
||
</Command>
|
||
</ChildObjects>
|
||
```
|
||
|
||
### 7.3. Свойства команды объекта
|
||
|
||
Набор свойств идентичен CommonCommand (см. [раздел 6.3](#63-свойства-properties-1)), за исключением отсутствия `IncludeHelpInContents`.
|
||
|
||
| Свойство | Описание |
|
||
|---|---|
|
||
| `Name` | Программное имя команды |
|
||
| `Synonym` | Отображаемое имя |
|
||
| `Comment` | Комментарий |
|
||
| `Group` | Группа размещения (те же значения что у CommonCommand) |
|
||
| `CommandParameterType` | Тип параметра (обычно ссылка на тип владельца) |
|
||
| `ParameterUseMode` | `Single` или `Multiple` |
|
||
| `ModifiesData` | Модифицирует данные (`true`/`false`) |
|
||
| `Representation` | Способ отображения |
|
||
| `ToolTip` | Подсказка |
|
||
| `Picture` | Иконка |
|
||
| `Shortcut` | Сочетание клавиш |
|
||
| `OnMainServerUnavalableBehavior` | Поведение при недоступности сервера |
|
||
|
||
> **Порядок свойств**: В командах объектов `Representation` идёт **после** `ModifiesData`, а в CommonCommand — после `Comment`. Это единственное структурное различие.
|
||
|
||
### 7.4. Ссылка на команду объекта в CommandInterface
|
||
|
||
В `CommandInterface.xml` команда объекта адресуется как:
|
||
```
|
||
<ТипОбъекта>.<ИмяОбъекта>.Command.<ИмяКоманды>
|
||
```
|
||
|
||
Пример: `Catalog.Номенклатура.Command.КомандаИсторияДвижений`
|
||
|
||
---
|
||
|
||
## 8. Формат ссылок на команды в CommandInterface
|
||
|
||
Атрибут `name` в элементах `Command` использует точечную нотацию:
|
||
|
||
### 8.1. Стандартные команды (StandardCommand)
|
||
|
||
```
|
||
<ТипОбъекта>.<ИмяОбъекта>.StandardCommand.<Операция>
|
||
```
|
||
|
||
| Операция | Назначение |
|
||
|---|---|
|
||
| `OpenList` | Открыть список |
|
||
| `Open` | Открыть (для отчётов, обработок, общих форм) |
|
||
| `Create` | Создать новый |
|
||
| `CreateFolder` | Создать группу (для иерархических справочников) |
|
||
|
||
**Примеры:**
|
||
- `Catalog.Номенклатура.StandardCommand.OpenList`
|
||
- `Document.Реализация.StandardCommand.Create`
|
||
- `Report.Продажи.StandardCommand.Open`
|
||
- `DataProcessor.Настройки.StandardCommand.Open`
|
||
- `CommonForm.ФормаОбщая.StandardCommand.Open`
|
||
- `InformationRegister.КурсыВалют.StandardCommand.OpenList`
|
||
- `DocumentJournal.ЖурналДокументов.StandardCommand.OpenList`
|
||
|
||
### 8.2. Пользовательские команды (Command)
|
||
|
||
```
|
||
<ТипОбъекта>.<ИмяОбъекта>.Command.<ИмяКоманды>
|
||
```
|
||
|
||
**Примеры:**
|
||
- `Report.Продажи.Command.ПродажиПоКонтрагентам`
|
||
- `DataProcessor.Панель.Command.ОткрытьНастройки`
|
||
- `Catalog.Оборудование.Command.ОткрытьОборудование`
|
||
- `InformationRegister.Настройки.Command.ОбменДанными`
|
||
- `ExchangePlan.Мобильное.Command.ОткрытьНастройки`
|
||
|
||
### 8.3. Общие команды (CommonCommand)
|
||
|
||
```
|
||
CommonCommand.<ИмяКоманды>
|
||
```
|
||
|
||
**Примеры:**
|
||
- `CommonCommand.НастройкиСинхронизацииДанных`
|
||
- `CommonCommand.ДополнительныеОбработкиПродажи`
|
||
- `CommonCommand.ПерсональныеНастройки`
|
||
|
||
### 8.4. UUID-ссылки
|
||
|
||
```
|
||
0:<UUID>
|
||
```
|
||
|
||
**Пример:** `0:91941f81-07dd-43a0-9baa-f5969b7472db`
|
||
|
||
Формат `0:<UUID>` используется для команд из расширений или ссылок на объекты, недоступные по имени.
|
||
|
||
---
|
||
|
||
## 9. Группы команд в CommandInterface
|
||
|
||
### 9.1. Стандартные группы панелей
|
||
|
||
| Идентификатор | Панель | Описание |
|
||
|---|---|---|
|
||
| `NavigationPanelImportant` | Навигация | Важные команды (верхняя часть) |
|
||
| `NavigationPanelOrdinary` | Навигация | Обычные команды |
|
||
| `NavigationPanelSeeAlso` | Навигация | Блок «См. также» (нижняя часть) |
|
||
| `ActionsPanelCreate` | Действия | Блок «Создать» |
|
||
| `ActionsPanelTools` | Действия | Блок «Сервис» |
|
||
|
||
### 9.2. Пользовательские группы
|
||
|
||
```
|
||
CommandGroup.<ИмяГруппы>
|
||
```
|
||
|
||
Ссылаются на объекты метаданных `CommandGroup`, определённые в конфигурации (каталог `CommandGroups/`).
|
||
|
||
**Типичные примеры:**
|
||
- `CommandGroup.Настройки`
|
||
- `CommandGroup.Отчеты`
|
||
- `CommandGroup.Сервис`
|
||
- `CommandGroup.Информация`
|
||
- `CommandGroup.НачальноеЗаполнение`
|
||
- `CommandGroup.НДС`
|
||
|
||
---
|
||
|
||
## 10. Различия версий формата
|
||
|
||
| Аспект | `2.17` (8.3.20–8.3.24) | `2.20` (8.3.27+) |
|
||
|---|---|---|
|
||
| Атрибут `version` | `2.17` | `2.20` |
|
||
| BOM (UTF-8 BOM) | Нет | Да (EF BB BF) |
|
||
| Набор элементов | Идентичный | Идентичный |
|
||
| Набор свойств подсистемы | Идентичный | Идентичный |
|
||
| Секции CommandInterface | Идентичные | Идентичные |
|
||
|
||
> Между версиями `2.17` и `2.20` структурных различий в формате подсистем и командного интерфейса не обнаружено. Меняется только атрибут `version` и наличие BOM.
|
||
|
||
---
|
||
|
||
## 11. Полные примеры
|
||
|
||
### 11.1. Подсистема верхнего уровня (Продажи.xml)
|
||
|
||
```xml
|
||
<?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"
|
||
version="2.17">
|
||
<Subsystem uuid="2885099a-00f4-481b-8469-faee8a208e7c">
|
||
<Properties>
|
||
<Name>Продажи</Name>
|
||
<Synonym>
|
||
<v8:item>
|
||
<v8:lang>ru</v8:lang>
|
||
<v8:content>Продажи</v8:content>
|
||
</v8:item>
|
||
</Synonym>
|
||
<Comment/>
|
||
<IncludeHelpInContents>true</IncludeHelpInContents>
|
||
<IncludeInCommandInterface>true</IncludeInCommandInterface>
|
||
<UseOneCommand>false</UseOneCommand>
|
||
<Explanation/>
|
||
<Picture>
|
||
<xr:Ref>CommonPicture.Продажи</xr:Ref>
|
||
<xr:LoadTransparent>false</xr:LoadTransparent>
|
||
</Picture>
|
||
<Content>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Report.Продажи</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Report.ВаловаяПрибыль</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">CommonCommand.ДополнительныеОбработкиПродажи</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">CommonCommand.ДополнительныеОтчетыПродажи</xr:Item>
|
||
<xr:Item xsi:type="xr:MDObjectRef">Role.ПодсистемаПродажи</xr:Item>
|
||
</Content>
|
||
</Properties>
|
||
<ChildObjects>
|
||
<Subsystem>ПродажиГлавное</Subsystem>
|
||
<Subsystem>РозничныеПродажи</Subsystem>
|
||
<Subsystem>РасчетыСКонтрагентами</Subsystem>
|
||
</ChildObjects>
|
||
</Subsystem>
|
||
</MetaDataObject>
|
||
```
|
||
|
||
### 11.2. CommandInterface подсистемы (Продажи/Ext/CommandInterface.xml)
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<CommandInterface xmlns="http://v8.1c.ru/8.3/xcf/extrnprops"
|
||
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"
|
||
version="2.17">
|
||
<CommandsVisibility>
|
||
<Command name="Report.Продажи.Command.ПродажиПоКонтрагентам">
|
||
<Visibility>
|
||
<xr:Common>true</xr:Common>
|
||
</Visibility>
|
||
</Command>
|
||
<Command name="Report.Продажи.Command.ПродажиПоНоменклатуре">
|
||
<Visibility>
|
||
<xr:Common>true</xr:Common>
|
||
</Visibility>
|
||
</Command>
|
||
<Command name="CommonCommand.ДополнительныеОбработкиПродажи">
|
||
<Visibility>
|
||
<xr:Common>true</xr:Common>
|
||
</Visibility>
|
||
</Command>
|
||
</CommandsVisibility>
|
||
<CommandsPlacement>
|
||
<Command name="Report.Продажи.Command.ПродажиПоКонтрагентам">
|
||
<CommandGroup>CommandGroup.Отчеты</CommandGroup>
|
||
<Placement>Auto</Placement>
|
||
</Command>
|
||
<Command name="CommonCommand.ДополнительныеОбработкиПродажи">
|
||
<CommandGroup>CommandGroup.Сервис</CommandGroup>
|
||
<Placement>Auto</Placement>
|
||
</Command>
|
||
</CommandsPlacement>
|
||
<CommandsOrder>
|
||
<Command name="Report.Продажи.Command.ПродажиПоКонтрагентам">
|
||
<CommandGroup>CommandGroup.Отчеты</CommandGroup>
|
||
</Command>
|
||
<Command name="Report.Продажи.Command.ПродажиПоНоменклатуре">
|
||
<CommandGroup>CommandGroup.Отчеты</CommandGroup>
|
||
</Command>
|
||
<Command name="CommonCommand.ДополнительныеОбработкиПродажи">
|
||
<CommandGroup>CommandGroup.Сервис</CommandGroup>
|
||
</Command>
|
||
</CommandsOrder>
|
||
<SubsystemsOrder>
|
||
<Subsystem>Subsystem.Продажи.Subsystem.ПродажиГлавное</Subsystem>
|
||
<Subsystem>Subsystem.Продажи.Subsystem.РозничныеПродажи</Subsystem>
|
||
<Subsystem>Subsystem.Продажи.Subsystem.РасчетыСКонтрагентами</Subsystem>
|
||
</SubsystemsOrder>
|
||
<GroupsOrder>
|
||
<Group>ActionsPanelTools</Group>
|
||
<Group>CommandGroup.Отчеты</Group>
|
||
<Group>CommandGroup.Сервис</Group>
|
||
</GroupsOrder>
|
||
</CommandInterface>
|
||
```
|
||
|
||
### 11.3. Корневой CommandInterface (Ext/CommandInterface.xml)
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<CommandInterface xmlns="http://v8.1c.ru/8.3/xcf/extrnprops"
|
||
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"
|
||
version="2.17">
|
||
<SubsystemsOrder>
|
||
<Subsystem>Subsystem.Руководителю</Subsystem>
|
||
<Subsystem>Subsystem.БанкИКасса</Subsystem>
|
||
<Subsystem>Subsystem.Продажи</Subsystem>
|
||
<Subsystem>Subsystem.Покупки</Subsystem>
|
||
<Subsystem>Subsystem.Администрирование</Subsystem>
|
||
</SubsystemsOrder>
|
||
</CommandInterface>
|
||
```
|