mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-08 03:00:52 +03:00
docs(meta-edit): каскад инструкций по задачам вместо одной кучи
child-operations.md был на 191 строку и держал в одном файле реквизиты, поля внешнего источника, таблицы, функции, ТЧ, предопределённые и значения перечисления: модель, добавляющая реквизит, читала заодно про функции внешнего источника. Ось резки была механизмом (add/remove/ modify), а нужна сущность — как в meta-compile. SKILL.md: частое (команда, сводная таблица операций, быстрые примеры) плюс индекс «что правишь → файл». Остальное — reference/: attributes, tabular-sections, predefined, external-data-source, other-children, properties (бывший properties-reference), json-dsl. Попутно: везде «навык form-add», а не голое имя — иначе читается как команда оболочки или значение -Operation. Тексты предупреждений в обоих портах тоже. scripts/switch.py собирал .md только из корня навыка, подкаталоги не видел: команды запуска в reference/*.md молча остались бы на старом рантайме. Обход стал рекурсивным. 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
fb211a61ac
commit
b4bc02bc98
@@ -0,0 +1,44 @@
|
||||
# Внешние источники данных
|
||||
|
||||
Точечные правки внутри уже созданного источника: поле в таблицу, таблица и функция в источник.
|
||||
Источник целиком собирает навык `meta-compile` — его повторный запуск заменяет файл источника,
|
||||
выдаёт новый uuid и оставляет сиротами таблицы, которых нет в описании.
|
||||
|
||||
## add-field — поле таблицы
|
||||
|
||||
Правится файл таблицы: `ExternalDataSources/<Источник>/Tables/<Таблица>.xml`.
|
||||
|
||||
Поле задаётся как обычный реквизит, плюс три своих ключа: `nameInDataSource` (умолчание — имя поля),
|
||||
`readOnly`, `allowNull`. Флаги строковой формы — `readonly`, `nullable`.
|
||||
|
||||
```json
|
||||
{ "add": { "fields": [
|
||||
"barcode: String(20) | nullable",
|
||||
{ "name": "cost", "type": "Number(15,2)", "nameInDataSource": "cost_net", "readOnly": true }
|
||||
] } }
|
||||
```
|
||||
|
||||
Типы поля: `Number`, `String`, `Date`, `Boolean`, `UUID`, `BinaryData` и ссылка на таблицу того же
|
||||
источника — `ExternalDataSourceTableRef.<Источник>.<Таблица>`. Составной тип платформа запрещает.
|
||||
|
||||
## add-tables / add-functions — в файле источника
|
||||
|
||||
Правится файл источника: `ExternalDataSources/<Источник>.xml`. Таблица — единственная операция
|
||||
навыка, создающая **файл**: `<Источник>/Tables/<Имя>.xml` плюс имя в `ChildObjects` источника.
|
||||
Синтаксис таблицы и функции тот же, что у навыка `meta-compile` (`reference/external-data-source.md` там же).
|
||||
|
||||
```json
|
||||
{ "add": {
|
||||
"tables": { "sales": { "keyFields": ["id"], "fields": ["id: Number(10,0)", "summa: Number(15,2)"] } },
|
||||
"functions": { "nextKey": "NEXT VALUE FOR public.seq_key" }
|
||||
} }
|
||||
```
|
||||
|
||||
При добавлении таблицы не поддержаны ключи `characteristics` и `default*Form` — навык отвергает их,
|
||||
а не проглатывает молча. Характеристики задаются при сборке источника навыком `meta-compile`,
|
||||
форму назначает навык `form-add`.
|
||||
|
||||
## Удаление
|
||||
|
||||
Таблицу удаляет навык `meta-remove`: `ExternalDataSource.<Источник>.Table.<Таблица>` — вместе с файлом
|
||||
и записью в `ChildObjects`. Весь источник — `ExternalDataSource.<Источник>`.
|
||||
Reference in New Issue
Block a user