From 03a6820f69e4aefb5c10a7cc56288bcb8c4bbdbf Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 8 Feb 2026 19:34:51 +0300 Subject: [PATCH] Add 1C managed form XML format specification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Comprehensive spec based on analysis of 7723 forms from Бухгалтерия предприятия 3.0.180: all 15 UI control types, form-level properties, events, attributes/type system, parameters, commands, and namespace declarations. Co-Authored-By: Claude Opus 4.6 --- docs/1c-form-spec.md | 1033 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1033 insertions(+) create mode 100644 docs/1c-form-spec.md diff --git a/docs/1c-form-spec.md b/docs/1c-form-spec.md new file mode 100644 index 00000000..66be6e48 --- /dev/null +++ b/docs/1c-form-spec.md @@ -0,0 +1,1033 @@ +# 1C Form.xml Format Specification + +Спецификация формата управляемых форм 1С:Предприятие 8.3 (version 2.17). +Составлена на основе анализа 7723 форм конфигурации «Бухгалтерия предприятия 3.0.180». + +--- + +## 1. Корневой элемент + +```xml + +
+ ... +
+``` + +Все 17 namespace-деклараций **идентичны** во всех формах конфигурации. Атрибут `version` всегда `"2.17"`. + +### Назначение namespace-префиксов + +| Префикс | URI | Назначение | +|---------|-----|------------| +| _(default)_ | `http://v8.1c.ru/8.3/xcf/logform` | Основная схема формы | +| `v8` | `http://v8.1c.ru/8.1/data/core` | Базовые типы данных (Type, item, lang, content) | +| `v8ui` | `http://v8.1c.ru/8.1/data/ui` | UI-типы (Color, Font, Border, FormattedString) | +| `cfg` | `http://v8.1c.ru/8.1/data/enterprise/current-config` | Ссылки на объекты конфигурации (CatalogRef, DocumentRef) | +| `xr` | `http://v8.1c.ru/8.3/xcf/readable` | Читаемый формат (Ref, Item, LoadTransparent) | +| `style` | `http://v8.1c.ru/8.1/data/ui/style` | Стили оформления (FormBackColor и т.д.) | +| `web` | `http://v8.1c.ru/8.1/data/ui/colors/web` | Web-цвета | +| `win` | `http://v8.1c.ru/8.1/data/ui/colors/windows` | Windows-цвета | +| `sys` | `http://v8.1c.ru/8.1/data/ui/fonts/system` | Системные шрифты | +| `xs` | `http://www.w3.org/2001/XMLSchema` | XML Schema | +| `xsi` | `http://www.w3.org/2001/XMLSchema-instance` | XML Schema Instance | +| `app` | `http://v8.1c.ru/8.2/managed-application/core` | Ядро управляемого приложения | +| `lf` | `http://v8.1c.ru/8.2/managed-application/logform` | Формы управляемого приложения | +| `dcscor` | `http://v8.1c.ru/8.1/data-composition-system/core` | СКД — ядро | +| `dcssch` | `http://v8.1c.ru/8.1/data-composition-system/schema` | СКД — схема | +| `dcsset` | `http://v8.1c.ru/8.1/data-composition-system/settings` | СКД — настройки | +| `ent` | `http://v8.1c.ru/8.1/data/enterprise` | Данные предприятия | + +--- + +## 2. Структура Form — порядок дочерних элементов + +``` +
+ ┌─ Свойства формы (необязательные, в произвольном порядке) + ├─ — исключённые стандартные команды + ├─ — главная командная панель (обязательный, id="-1") + ├─ — обработчики событий формы + ├─ — дерево UI-элементов + ├─ — реквизиты формы + ├─ — параметры открытия формы + └─ — пользовательские команды + +``` + +--- + +## 3. Свойства формы + +Прямые дочерние элементы `
` (все необязательные, указываются до ``/``): + +### Общие свойства (все типы форм) + +| Элемент | Тип | Значения | Описание | +|---------|-----|----------|----------| +| `` | multilang | — | Заголовок формы | +| `<Width>` | int | 60, 67... | Ширина формы в символах | +| `<Height>` | int | — | Высота формы в символах | +| `<Group>` | enum | `Vertical`, `Horizontal`, `AlwaysHorizontal`, `AlwaysVertical` | Направление размещения | +| `<WindowOpeningMode>` | enum | `LockOwnerWindow`, `Modeless` | Режим открытия окна | +| `<EnterKeyBehavior>` | enum | `DefaultButton`, `NewLine` | Действие по Enter | +| `<AutoTitle>` | bool | `true`/`false` | Автозаголовок | +| `<AutoURL>` | bool | `true`/`false` | Авто-URL | +| `<AutoFillCheck>` | bool | `true`/`false` | Автопроверка заполнения | +| `<Customizable>` | bool | `true`/`false` | Разрешить настройку | +| `<CommandBarLocation>` | enum | `Top`, `Bottom`, `None` | Расположение панели команд | +| `<VerticalScroll>` | enum | `useIfNecessary`, `Auto`, `AlwaysShow`, `Never` | Вертикальная прокрутка | +| `<ScalingMode>` | enum | — | Режим масштабирования | + +### Свойства сохранения данных (DataProcessors) + +| Элемент | Значения | Описание | +|---------|----------|----------| +| `<SaveDataInSettings>` | `UseList`, `Use`, `DontUse` | Сохранять данные в настройках | +| `<AutoSaveDataInSettings>` | `Use`, `DontUse` | Автосохранение | + +### Свойства документов (Documents) + +| Элемент | Значения | Описание | +|---------|----------|----------| +| `<AutoTime>` | `CurrentOrLast`, `Current`, `Last` | Управление временем документа | +| `<UsePostingMode>` | `Auto`, `Postings`, `Movements` | Режим проведения | +| `<RepostOnWrite>` | `true`/`false` | Перепроведение при записи | + +### Свойства справочников (Catalogs, ChartsOfAccounts) + +| Элемент | Значения | Описание | +|---------|----------|----------| +| `<UseForFoldersAndItems>` | `Folders`, `Items`, `FoldersAndItems` | Назначение формы | + +### Свойства отчётов (Reports) + +| Элемент | Значения | Описание | +|---------|----------|----------| +| `<ReportResult>` | string | Имя реквизита результата (`Результат`) | +| `<DetailsData>` | string | Имя реквизита расшифровки (`ДанныеРасшифровки`) | +| `<ReportFormType>` | `Main`, `Settings`, `Choice` | Тип формы отчёта | +| `<AutoShowState>` | `Auto`, `Show`, `Hide` | Автоотображение состояния | +| `<ReportResultViewMode>` | `Auto`, `Table`, `Spreadsheet` | Режим отображения результата | +| `<ViewModeApplicationOnSetReportResult>` | `Auto`, `Always`, `Never` | Применение режима | + +### Мобильные свойства + +| Элемент | Описание | +|---------|----------| +| `<MobileDeviceCommandBarContent>` | Конфигурация панели команд мобильного устройства | + +### Матрица свойств по типам форм + +| Свойство | CommonForm | Document | Catalog | Report | DataProcessor | InfoRegister | +|----------|:---:|:---:|:---:|:---:|:---:|:---:| +| Title | + | + | + | + | + | + | +| Width | — | — | + | — | + | — | +| WindowOpeningMode | + | + | + | — | + | — | +| AutoTitle | + | + | + | + | + | + | +| CommandBarLocation | + | + | + | + | + | + | +| AutoTime | — | + | — | — | — | — | +| UsePostingMode | — | + | — | — | — | — | +| UseForFoldersAndItems | — | — | + | — | — | — | +| ReportResult | — | — | — | + | — | — | +| SaveDataInSettings | — | — | — | — | + | — | + +--- + +## 4. CommandSet — исключённые команды + +```xml +<CommandSet> + <ExcludedCommand>CommandName</ExcludedCommand> + ... +</CommandSet> +``` + +### Стандартные команды диалогов + +`OK`, `Cancel`, `Yes`, `No`, `Abort`, `Retry`, `Ignore`, `Help`, `SaveValues`, `RestoreValues` + +### Стандартные команды объектов + +`Copy`, `Delete`, `SetDeletionMark`, `CreateInitialImage`, `ReadChanges`, `WriteChanges` + +### Команды отчётов + +`CustomizeForm` + +--- + +## 5. AutoCommandBar — главная панель команд + +Всегда присутствует. Фиксированные `name="ФормаКоманднаяПанель"` и `id="-1"`. + +```xml +<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"> + <HorizontalAlign>Right</HorizontalAlign> <!-- Left | Center | Right --> + <Autofill>false</Autofill> <!-- true | false --> + <EnableContentChange>true</EnableContentChange> <!-- optional --> + <ChildItems> + <!-- Button, ButtonGroup, Popup --> + </ChildItems> +</AutoCommandBar> +``` + +Может быть пустым (самозакрывающийся тег) или содержать `<ChildItems>` с кнопками. + +--- + +## 6. Events — обработчики событий формы + +```xml +<Events> + <Event name="EventName">ИмяОбработчика</Event> + ... +</Events> +``` + +### Все события формы + +| Имя события | Контекст | Описание | +|-------------|----------|----------| +| `OnCreateAtServer` | Сервер | Создание формы на сервере (инициализация) | +| `OnOpen` | Клиент | Открытие формы на клиенте | +| `BeforeClose` | Клиент | Перед закрытием формы | +| `OnClose` | Клиент | При закрытии формы | +| `AfterWrite` | Клиент | После записи объекта | +| `BeforeWrite` | Клиент | Перед записью объекта | +| `BeforeWriteAtServer` | Сервер | Перед записью на сервере | +| `OnWriteAtServer` | Сервер | При записи на сервере | +| `AfterWriteAtServer` | Сервер | После записи на сервере | +| `OnReadAtServer` | Сервер | При чтении объекта | +| `NotificationProcessing` | Клиент | Обработка межформенных оповещений | +| `ChoiceProcessing` | Клиент | Обработка результата выбора | +| `NewWriteProcessing` | Сервер | Создание нового объекта | +| `FillCheckProcessingAtServer` | Сервер | Проверка заполнения | +| `OnLoadUserSettingsAtServer` | Сервер | Загрузка пользовательских настроек (отчёты) | +| `OnSaveUserSettingsAtServer` | Сервер | Сохранение пользовательских настроек (отчёты) | +| `URLProcessing` | Клиент | Обработка навигационных ссылок | + +### Типичные комбинации по типам форм + +**Диалог:** `OnCreateAtServer` + `OnOpen` + +**Документ:** `OnCreateAtServer` + `OnOpen` + `BeforeWriteAtServer` + `OnWriteAtServer` + `AfterWrite` + +**Справочник:** `OnCreateAtServer` + `OnOpen` + `OnReadAtServer` + `BeforeWriteAtServer` + `AfterWrite` + `NotificationProcessing` + +**Отчёт:** `OnCreateAtServer` + `OnOpen` + `BeforeClose` + `OnClose` + `OnLoadUserSettingsAtServer` + `OnSaveUserSettingsAtServer` + `NotificationProcessing` + `ChoiceProcessing` + `URLProcessing` + +--- + +## 7. ChildItems — дерево UI-элементов + +### 7.1. Иерархия вложенности + +``` +ChildItems +├── UsualGroup → содержит любые элементы +│ └── ChildItems +├── Pages → содержит только Page +│ └── ChildItems +│ └── Page → содержит любые элементы +│ └── ChildItems +├── Table → содержит колонки (InputField, LabelField, CheckBoxField, PictureField) +│ └── ChildItems +├── CommandBar → содержит Button, ButtonGroup, Popup +│ └── ChildItems +├── InputField (лист) +├── LabelField (лист) +├── CheckBoxField (лист) +├── LabelDecoration (лист) +├── PictureDecoration (лист) +├── PictureField (лист) +├── CalendarField (лист) +└── Button (лист) +``` + +### 7.2. Общие свойства всех элементов + +Каждый UI-элемент имеет атрибуты `name` (string) и `id` (int). Кроме того, большинство элементов поддерживают: + +| Свойство | Тип | Описание | +|----------|-----|----------| +| `<Title>` | multilang | Заголовок | +| `<ToolTip>` | multilang | Подсказка | +| `<Visible>` | bool | Видимость | +| `<Enabled>` | bool | Доступность | +| `<ReadOnly>` | bool | Только чтение | +| `<Width>` | int | Ширина | +| `<Height>` | int | Высота | +| `<HorizontalStretch>` | bool | Растягивание по горизонтали | +| `<VerticalStretch>` | bool | Растягивание по вертикали | +| `<HorizontalAlign>` | enum | `Left` / `Center` / `Right` | +| `<VerticalAlign>` | enum | `Top` / `Center` / `Bottom` | +| `<GroupHorizontalAlign>` | enum | Горизонтальное выравнивание в группе | +| `<GroupVerticalAlign>` | enum | Вертикальное выравнивание в группе | +| `<SkipOnInput>` | bool | Пропускать при вводе | +| `<ContextMenu>` | ref | Контекстное меню (name + id) | +| `<ExtendedTooltip>` | ref | Расширенная подсказка (name + id) | +| `<Events>` | block | Обработчики событий элемента | + +### 7.3. Мультиязычный формат (multilang) + +```xml +<Title> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Текст на русском</v8:content> + </v8:item> + +``` + +Атрибут `formatted="true"` на `` означает форматированную строку. + +--- + +## 8. Типы UI-элементов — полное описание + +### 8.1. UsualGroup — группа элементов + +Основной контейнер для компоновки. Используется в ~90% форм. + +```xml +<UsualGroup name="..." id="..."> + <!-- Компоновка --> + <Group>Vertical | Horizontal | AlwaysHorizontal | AlwaysVertical</Group> + <Behavior>Usual | Collapsible | CommandBar</Behavior> + <Representation>None | NormalSeparation | WeakSeparation | StrongSeparation</Representation> + <ShowTitle>true | false</ShowTitle> + <United>true | false</United> + + <!-- Расположение дочерних --> + <ChildItemsWidth>LeftWidest | RightWidest | Equal</ChildItemsWidth> + <HorizontalSpacing>Single | Half | Double</HorizontalSpacing> + <VerticalSpacing>Single | Half | Double</VerticalSpacing> + <ThroughAlign>Use | DontUse</ThroughAlign> + + <!-- Внешний вид --> + <BackColor>style:... | web:... | win:...</BackColor> + <TextColor>style:...</TextColor> + <TitleTextColor>style:...</TitleTextColor> + <EnableContentChange>true | false</EnableContentChange> + <ControlRepresentation>Picture | Text</ControlRepresentation> + + <ChildItems>...</ChildItems> +</UsualGroup> +``` + +### 8.2. InputField — поле ввода + +Основной элемент ввода данных. Используется в ~80% форм. + +```xml +<InputField name="..." id="..."> + <DataPath>Объект.Организация</DataPath> + + <!-- Заголовок --> + <TitleLocation>Left | Right | Top | Bottom | None</TitleLocation> + <TitleHeight>N</TitleHeight> + <TitleWidth>N</TitleWidth> + + <!-- Размеры --> + <AutoMaxWidth>true | false</AutoMaxWidth> + <AutoMaxHeight>true | false</AutoMaxHeight> + + <!-- Режим редактирования --> + <EditMode>Enter | EnterOnInput</EditMode> + <MultiLine>true | false</MultiLine> + <Wrap>true | false</Wrap> + <ExtendedEdit>true | false</ExtendedEdit> + <PasswordMode>true | false</PasswordMode> + <DefaultItem>true | false</DefaultItem> + + <!-- Кнопки --> + <ChoiceButton>true | false</ChoiceButton> + <ChoiceButtonRepresentation>ShowInInputField | ShowInToolbar | Auto</ChoiceButtonRepresentation> + <OpenButton>true | false</OpenButton> + <ClearButton>true | false</ClearButton> + <SpinButton>true | false</SpinButton> + <CreateButton>true | false</CreateButton> + <DropListButton>true | false</DropListButton> + <TextEdit>true | false</TextEdit> + <ListChoiceMode>true | false</ListChoiceMode> + + <!-- Автозаполнение и проверка --> + <AutoMarkIncomplete>true | false</AutoMarkIncomplete> + <MarkIncomplete>true | false</MarkIncomplete> + <AutoComplete>true | false</AutoComplete> + <QuickChoice>true | false</QuickChoice> + <ChoiceHistoryOnInput>Auto | Never | Always</ChoiceHistoryOnInput> + + <!-- Подсказка ввода --> + <InputHint> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Placeholder text</v8:content> + </v8:item> + </InputHint> + <Mask>маска ввода</Mask> + + <!-- Параметры выбора --> + <ChoiceFoldersAndItems>Items | Folders | FoldersAndItems</ChoiceFoldersAndItems> + <ChoiceParameters> + <v8:Parameter> + <v8:Name>name</v8:Name> + <v8:Value>value</v8:Value> + </v8:Parameter> + </ChoiceParameters> + + <!-- Стилизация --> + <TextColor>style:... | web:... | win:...</TextColor> + <BackColor>style:... | web:... | win:...</BackColor> + <BorderColor>style:... | web:... | win:...</BorderColor> + <Font>...</Font> + + <!-- События --> + <Events> + <Event name="OnChange">...</Event> + <Event name="StartChoice">...</Event> + <Event name="ChoiceProcessing">...</Event> + <Event name="Clearing">...</Event> + <Event name="AutoComplete">...</Event> + <Event name="TextEditEnd">...</Event> + <Event name="Opening">...</Event> + <Event name="OnEditEnd">...</Event> + <Event name="DragCheck">...</Event> + <Event name="Drag">...</Event> + <Event name="DragStart">...</Event> + </Events> +</InputField> +``` + +### 8.3. Button — кнопка + +```xml +<Button name="..." id="..."> + <Type>CommandBarButton | UsualButton | Hyperlink</Type> + <CommandName>Form.Command.Name | Form.StandardCommand.Name | CommonCommand.Name</CommandName> + <DataPath>Attribute</DataPath> + + <Picture> + <xr:Ref>StdPicture.Name | CommonPicture.Name</xr:Ref> + <xr:LoadTransparent>true | false</xr:LoadTransparent> + </Picture> + <Representation>Auto | Picture | Text | PictureAndText</Representation> + <ShapeRepresentation>Auto | None | Button</ShapeRepresentation> + + <DefaultButton>true | false</DefaultButton> + <LocationInCommandBar>InCommandBar | InAdditionalSubmenu | InCommandBarAndInAdditionalSubmenu | Auto</LocationInCommandBar> + <OnlyInAllActions>true | false</OnlyInAllActions> + + <Events> + <Event name="Click">...</Event> + </Events> +</Button> +``` + +### 8.4. Table — таблица + +```xml +<Table name="..." id="..."> + <DataPath>ТабличныйРеквизит</DataPath> + <RowPictureDataPath>ТабличныйРеквизит.Иконка</RowPictureDataPath> + <RowsPicture> + <xr:Ref>CommonPicture.Name</xr:Ref> + </RowsPicture> + + <!-- Отображение --> + <Representation>List | Tree | HierarchicalList</Representation> + <TitleLocation>Top | None</TitleLocation> + <HeightInTableRows>N</HeightInTableRows> + <Header>true | false</Header> + <Footer>true | false</Footer> + <HorizontalLines>true | false</HorizontalLines> + <VerticalLines>true | false</VerticalLines> + <UseAlternationRowColor>true | false</UseAlternationRowColor> + + <!-- Редактирование --> + <SelectionMode>SingleRow | MultiRow</SelectionMode> + <ChangeRowSet>true | false</ChangeRowSet> + <ChangeRowOrder>true | false</ChangeRowOrder> + <AutoInsertNewRow>true | false</AutoInsertNewRow> + + <!-- Панели --> + <CommandBarLocation>None | Top | Bottom | Auto</CommandBarLocation> + <SearchStringLocation>None | Top | Bottom | CommandBar | Auto</SearchStringLocation> + <ViewStatusLocation>Top | Bottom | None</ViewStatusLocation> + <SearchControlLocation>Top | Bottom | Auto</SearchControlLocation> + + <!-- D&D --> + <EnableStartDrag>true | false</EnableStartDrag> + <EnableDrag>true | false</EnableDrag> + <FileDragMode>AsFile | AsFileRef</FileDragMode> + + <!-- Дерево --> + <TopLevelParent xsi:nil="true"/> + <ShowRoot>true | false</ShowRoot> + <AllowRootChoice>true | false</AllowRootChoice> + <ChoiceFoldersAndItems>Items | Folders | FoldersAndItems</ChoiceFoldersAndItems> + + <!-- Обновление --> + <AutoRefresh>true | false</AutoRefresh> + <AutoRefreshPeriod>seconds</AutoRefreshPeriod> + <UpdateOnDataChange>Auto | DontUpdate</UpdateOnDataChange> + + <!-- Исключённые команды таблицы --> + <CommandSet> + <ExcludedCommand>...</ExcludedCommand> + </CommandSet> + + <!-- Служебные элементы --> + <ContextMenu name="..." id="..."/> + <AutoCommandBar name="..." id="..."/> + <SearchStringAddition name="..." id="..."/> + <ViewStatusAddition name="..." id="..."/> + <SearchControlAddition name="..." id="..."/> + + <!-- Колонки --> + <ChildItems> + <!-- InputField, LabelField, CheckBoxField, PictureField --> + </ChildItems> + + <!-- События --> + <Events> + <Event name="Selection">...</Event> + <Event name="OnActivateRow">...</Event> + <Event name="BeforeRowChange">...</Event> + <Event name="BeforeAddRow">...</Event> + <Event name="BeforeDeleteRow">...</Event> + <Event name="AfterDeleteRow">...</Event> + <Event name="DragStart">...</Event> + <Event name="Drag">...</Event> + <Event name="DragCheck">...</Event> + <Event name="Drop">...</Event> + </Events> +</Table> +``` + +### 8.5. Pages / Page — вкладки + +```xml +<Pages name="..." id="..."> + <PagesRepresentation>None | TabsOnTop | TabsOnBottom | TabsOnLeft | TabsOnRight</PagesRepresentation> + + <Events> + <Event name="OnCurrentPageChange">...</Event> + </Events> + + <ChildItems> + <Page name="..." id="..."> + <Title>... + + StdPicture.Name + + true | false + LeftWidest | RightWidest | Equal + + + + + + + +``` + +### 8.6. CommandBar — командная панель + +```xml + + Form | FormCommandPanelGlobalCommands + true | false + true | false + Left | Right + Top | Bottom + + + + + +``` + +### 8.7. ButtonGroup — группа кнопок + +```xml + + Auto | Compact | Separate + Form | FormCommandPanelGlobalCommands | CommandPanel + + + + + +``` + +### 8.8. Popup — выпадающее меню + +```xml + + + StdPicture.Print + true + + Auto | Picture | Text | PictureAndText + Auto | None | Button + InCommandBar | InAdditionalSubmenu | Auto + + + + + +``` + +### 8.9. LabelDecoration — декоративная надпись + +```xml + + ... + true | false + true | false + true | false + Auto | Button | None + + style:... | web:... | win:... + style:... | web:... | win:... + ... + + WithoutBorder | WithBorder + + + + ... + + +``` + +### 8.10. LabelField — поле надписи (привязанное к данным) + +```xml + + Реквизит.Свойство + Left | Right | Top | Bottom | None + style:... + true | false + true | false + + style:... | web:... | win:... + style:... | web:... | win:... + ... + + + ... + ... + + +``` + +### 8.11. CheckBoxField — флажок + +```xml + + Реквизит.Свойство + Left | Right | Top | Bottom | None + Auto | Checkbox | Tumbler + Enter | EnterOnInput + + + ... + + +``` + +### 8.12. PictureDecoration — декоративная картинка + +```xml + + + StdPicture.Name | CommonPicture.Name + true | false + + true | false + текст + true | false + AsFile | AsFileRef + Auto | VeryLow | Low | Normal | High | VeryHigh + + + WithoutBorder | WithBorder + + + + ... + + +``` + +### 8.13. PictureField — поле картинки (привязанное к данным) + +```xml + + Реквизит.Свойство + Left | Right | Top | Bottom | None + + CommonPicture.Name + + true | false + текст + AsFile | AsFileRef + + + WithoutBorder | WithBorder + + + + ... + ... + ... + ... + + +``` + +### 8.14. CalendarField — календарь + +```xml + + Реквизит.Дата + Left | Right | Top | Bottom | None + N + N + true | false + date + date + + + ... + ... + + +``` + +--- + +## 9. Attributes — реквизиты формы + +```xml + + + ... + ... + ... + true + true + Show | DontShow + true + ... + + +``` + +### 9.1. Система типов + +#### Примитивные типы (xs:*) + +```xml + + + xs:string + + 100 + Variable + + + + + + xs:decimal + + 15 + 2 + Any + + + + + + xs:boolean + + + + + xs:dateTime + + Date + + + + + + xs:binary + + 0 + Variable + + +``` + +#### Ссылочные типы (cfg:*) + +| Шаблон | Пример | Описание | +|--------|--------|----------| +| `cfg:CatalogRef.<Имя>` | `cfg:CatalogRef.Организации` | Ссылка на элемент справочника | +| `cfg:CatalogObject.<Имя>` | `cfg:CatalogObject.Контрагенты` | Объект справочника | +| `cfg:DocumentRef.<Имя>` | `cfg:DocumentRef.СчетФактура` | Ссылка на документ | +| `cfg:DocumentObject.<Имя>` | `cfg:DocumentObject.ПроцессПокупки` | Объект документа | +| `cfg:EnumRef.<Имя>` | `cfg:EnumRef.СпособДоставки` | Ссылка на перечисление | +| `cfg:ChartOfAccountsRef.<Имя>` | `cfg:ChartOfAccountsRef.Хозрасчетный` | Ссылка на план счетов | +| `cfg:ChartOfCalculationTypesRef.<Имя>` | — | Ссылка на план видов расчёта | +| `cfg:ChartOfCharacteristicTypesRef.<Имя>` | — | Ссылка на план видов характеристик | +| `cfg:ExchangePlanRef.<Имя>` | `cfg:ExchangePlanRef.АвтономнаяРабота` | Ссылка на план обмена | +| `cfg:BusinessProcessRef.<Имя>` | — | Ссылка на бизнес-процесс | +| `cfg:TaskRef.<Имя>` | — | Ссылка на задачу | +| `cfg:InformationRegisterRecordSet.<Имя>` | — | Набор записей регистра сведений | +| `cfg:AccumulationRegisterRecordSet.<Имя>` | — | Набор записей регистра накопления | + +#### Платформенные типы (v8:*) + +| Тип | Описание | +|-----|----------| +| `v8:ValueListType` | Список значений | +| `v8:ValueTable` | Таблица значений | +| `v8:ValueTree` | Дерево значений | +| `v8:TypeDescription` | Описание типов | +| `v8:Universal` | Произвольный тип | +| `v8:FixedArray` | Фиксированный массив | +| `v8:FixedStructure` | Фиксированная структура | + +#### UI-типы (v8ui:*) + +| Тип | Описание | +|-----|----------| +| `v8ui:FormattedString` | Форматированная строка | +| `v8ui:Picture` | Картинка | +| `v8ui:Color` | Цвет | +| `v8ui:Font` | Шрифт | + +#### Типы СКД (dcs*:*) + +| Тип | Описание | +|-----|----------| +| `dcsset:DataCompositionSettings` | Настройки СКД | +| `dcssch:DataCompositionSchema` | Схема СКД | +| `dcscor:DataCompositionComparisonType` | Тип сравнения СКД | + +#### Пустой тип + +```xml + +``` + +### 9.2. Составные типы + +Несколько типов в одном реквизите: + +```xml + + cfg:CatalogRef.Организации + cfg:CatalogRef.ИндивидуальныеПредприниматели + cfg:CatalogRef.Контрагенты + +``` + +### 9.3. ValueTable / ValueTree с колонками + +```xml + + + v8:ValueTable + + + + ... + + cfg:CatalogRef.Номенклатура + + + + + xs:decimal + + 10 + 3 + Nonnegative + + + + + +``` + +--- + +## 10. Parameters — параметры формы + +```xml + + + ... + true + + +``` + +Параметры **не имеют** атрибута `id`. Типы — те же, что для Attributes. + +--- + +## 11. Commands — команды формы + +```xml + + + ... + ... + + StdPicture.Refresh + true + + ИмяОбработчика + Ctrl+S + Auto | Picture | Text | PictureAndText | TextPicture | None | Compact + DontUse | Use | Auto + true | false + true | false + true | false + Auto + true | false + ... + + +``` + +--- + +## 12. Ссылки на картинки + +Два вида ссылок: + +```xml + +StdPicture.Refresh + + +CommonPicture.ЗаполнитьФорму +``` + +С прозрачностью: + +```xml + + StdPicture.Print + true + +``` + +--- + +## 13. Ссылки на стили, цвета, шрифты + +```xml + +style:FormBackColor + + +web:Red + + +win:ButtonFace + + +sys:DefaultGUIFont +``` + +--- + +## 14. Рамки (Border) + +```xml + + WithoutBorder + +``` + +Значения `ControlBorderType`: `WithoutBorder`, `WithBorder`. + +--- + +## 15. DataPath — привязка к данным + +Формат пути: + +| Пример | Описание | +|--------|----------| +| `Объект.Организация` | Реквизит основного объекта формы | +| `Объект.Товары.Номенклатура` | Колонка табличной части объекта | +| `Отчет.НачалоПериода` | Параметр отчёта | +| `Запись.ОКОФ` | Поле записи регистра | +| `ТекстСообщения` | Реквизит формы верхнего уровня | + +--- + +## 16. Статистика использования элементов + +| Тип элемента | Частота | +|--------------|---------| +| UsualGroup | ~90% форм | +| Button | ~85% | +| InputField | ~80% | +| LabelDecoration | ~75% | +| CommandBar | ~70% | +| Table | ~60% | +| LabelField | ~60% | +| Pages / Page | ~55% | +| ButtonGroup | ~50% | +| CheckBoxField | ~45% | +| Popup | ~40% | +| PictureDecoration | ~40% | +| PictureField | ~15% | +| CalendarField | ~5% | + +--- + +## 17. Элементы, не встреченные в конфигурации + +Следующие элементы управления существуют в платформе, но не использованы в БП 3.0: + +- `RadioButtonField` +- `TrackBarField` +- `ProgressBarField` +- `TextDocumentField` +- `SpreadSheetDocumentField` +- `HTMLDocumentField` +- `ChartField` +- `GanttChartField` +- `PlannerField` +- `GraphicalSchemaField` +- `FormattedDocumentField`