Files
cc-1c-skills/.claude/skills/meta-edit/reference/external-data-source.md
T
Nick ShirokovandClaude Opus 5 b4bc02bc98 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
2026-09-06 19:41:57 +03:00

45 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Внешние источники данных
Точечные правки внутри уже созданного источника: поле в таблицу, таблица и функция в источник.
Источник целиком собирает навык `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.<Источник>`.