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

2.7 KiB

Внешние источники данных

Точечные правки внутри уже созданного источника: поле в таблицу, таблица и функция в источник. Источник целиком собирает навык meta-compile — его повторный запуск заменяет файл источника, выдаёт новый uuid и оставляет сиротами таблицы, которых нет в описании.

add-field — поле таблицы

Правится файл таблицы: ExternalDataSources/<Источник>/Tables/<Таблица>.xml.

Поле задаётся как обычный реквизит, плюс три своих ключа: nameInDataSource (умолчание — имя поля), readOnly, allowNull. Флаги строковой формы — readonly, nullable.

{ "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 там же).

{ "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.<Источник>.