mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-08 03:00:52 +03:00
feat(form-add): формы таблиц внешних источников данных
form-add отказывал видом объекта 'Table', хотя платформа такие формы делает, а в DSL таблицы есть слоты defaultObjectForm/defaultRecordForm/defaultListForm/defaultChoiceForm. Инструкция при этом обещала обратное — строка исправлена. Таблица — единственный вид, чьи ссылки трёхчастные: слот ExternalDataSource.<И>.Table.<Т>.Form.<Ф>, главный реквизит ExternalDataSourceTableObject.<И>.<Т>, MainTable динамического списка ExternalDataSource.<И>.Table.<Т>. Имя источника в файле таблицы не хранится — берётся из пути ExternalDataSources/<И>/Tables/<Т>.xml, единственное место, где навык смотрит на путь. Набор назначений зависит от вида данных таблицы — замерено загрузками на 8.3.24.1691: ObjectData даёт Object/List/Choice, NonobjectData — Record/List/Choice. Неверная пара схемой формы не отвергается: она валит загрузку ВСЕЙ конфигурации «Исключением XDTO при чтении файла» без указания причины, поэтому form-add проверяет её сам и объясняет, а без -Purpose у таблицы с составным ключом основной становится форма записи. form-validate: типы ExternalDataSourceTable* добавлены в список известных cfg-префиксов — иначе корректная форма получала предупреждение «unrecognized cfg prefix». Проверено: form-add и form-validate зелёные в обоих рантаймах, гарды прошли (в том числе check-form-purposes: спека и оба порта сходятся), снэпшот eds-table-forms принят платформой, формы всех четырёх назначений загружены в базу и выгружены обратно со ссылками без потерь. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
This commit is contained in:
co-authored by
Claude Opus 5
parent
a38f30c9dd
commit
fb211a61ac
@@ -161,6 +161,7 @@ CommonForms регистрируются в `Configuration.xml`:
|
||||
| BusinessProcess | DefaultObjectForm, DefaultListForm, DefaultChoiceForm |
|
||||
| Task | DefaultObjectForm, DefaultListForm, DefaultChoiceForm |
|
||||
| Constant | DefaultForm — но собственных форм у константы нет, свойство указывает на общую форму |
|
||||
| Table | DefaultObjectForm, DefaultRecordForm, DefaultListForm, DefaultChoiceForm |
|
||||
| CommonForm | — (регистрируется в Configuration.xml, нет DefaultForm) |
|
||||
|
||||
> Report.DefaultForm может указывать на общую форму: `CommonForm.ФормаОтчета`.
|
||||
@@ -171,13 +172,13 @@ CommonForms регистрируются в `Configuration.xml`:
|
||||
|
||||
| Назначение | Свойство объекта | Главный реквизит | Для каких типов |
|
||||
|------------|------------------|------------------|-----------------|
|
||||
| Форма объекта | DefaultObjectForm | `{Тип}Object.{Имя}` | Catalog, Document, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes, ExchangePlan, BusinessProcess, Task |
|
||||
| Форма объекта | DefaultObjectForm | `{Тип}Object.{Имя}` | Catalog, Document, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes, ExchangePlan, BusinessProcess, Task, Table |
|
||||
| Форма обработки/отчёта | DefaultForm | `{Тип}Object.{Имя}` | DataProcessor, Report, ExternalDataProcessor, ExternalReport |
|
||||
| Форма группы | DefaultFolderForm | `{Тип}Object.{Имя}` | Catalog, ChartOfCharacteristicTypes |
|
||||
| Форма списка | DefaultListForm (у DocumentJournal и FilterCriterion — DefaultForm) | `DynamicList` + `MainTable` | все типы со списком |
|
||||
| Форма выбора | DefaultChoiceForm | `DynamicList` + `MainTable` | Catalog, Document, ChartOf*, ExchangePlan, BusinessProcess, Task, Enum |
|
||||
| Форма выбора группы | DefaultFolderChoiceForm | `DynamicList` + `MainTable` | Catalog, ChartOfCharacteristicTypes |
|
||||
| Форма записи | DefaultRecordForm | `InformationRegisterRecordManager.{Имя}` | InformationRegister |
|
||||
| Форма записи | DefaultRecordForm | `InformationRegisterRecordManager.{Имя}` или `ExternalDataSourceTableRecordManager.{Источник}.{Имя}` | InformationRegister, Table |
|
||||
| Форма набора записей | — (свойства нет) | `{Тип}RecordSet.{Имя}` | все регистры |
|
||||
| Форма сохранения/загрузки настроек | DefaultSaveForm / DefaultLoadForm | нет | SettingsStorage |
|
||||
| Произвольная форма | — (свойства нет) | нет | любой тип с собственными формами |
|
||||
|
||||
+11
-1
@@ -2131,7 +2131,17 @@ ChildObjects и модулей.
|
||||
- **Кубы OLAP** (`Cube`, `DimensionTable`, `Dimension`, `Resource`) не поддерживаются: проверить их
|
||||
платформой нечем — SSAS в контейнер не ставится, а эмит вслепую по документации уже давал осечку.
|
||||
- **Формы, макеты и модули** таблиц компилятор не создаёт — как и у прочих объектов (`form-add`,
|
||||
`form-compile`, `template-add`).
|
||||
`form-compile`, `template-add`). У форм таблицы ссылки трёхчастные
|
||||
(`ExternalDataSource.<И>.Table.<Т>.Form.<Ф>`, главный реквизит `ExternalDataSourceTableObject.<И>.<Т>`),
|
||||
а набор назначений зависит от `tableDataType` — замерено на 8.3.24.1691:
|
||||
|
||||
| tableDataType | Допустимые назначения |
|
||||
|---|---|
|
||||
| `ObjectData` (ключ из одного поля) | Object, List, Choice, Custom |
|
||||
| `NonobjectData` (составной ключ) | Record, List, Choice, Custom |
|
||||
|
||||
Неверная пара не отвергается схемой формы — она валит загрузку всей конфигурации
|
||||
«Исключением XDTO при чтении файла», не называя причины, поэтому `form-add` проверяет её сам.
|
||||
- **Таблица без ключевых полей** собирается: загрузку XML платформа принимает молча, хотя
|
||||
Конфигуратор интерактивно ключ требует. `meta-validate` предупреждает, но не отвергает — рабочие
|
||||
конфигурации без ключей существуют. Без ключа недоступны форма записи и набор записей.
|
||||
|
||||
Reference in New Issue
Block a user