mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-07 18:50:53 +03:00
45 lines
2.7 KiB
Markdown
45 lines
2.7 KiB
Markdown
# Внешние источники данных
|
||
|
||
Точечные правки внутри уже созданного источника: поле в таблицу, таблица и функция в источник.
|
||
Источник целиком собирает навык `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.<Источник>`.
|