Files
cc-1c-skills/.opencode/skills/meta-edit/reference/external-data-source.md
T

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