Files
cc-1c-skills/tests/skills/cases/meta-remove/eds-table.json
T
Nick ShirokovandClaude Opus 5 ed766154fe feat(meta-edit,meta-remove): точечная правка и удаление внешних источников
meta-edit добавляет поля в таблицу внешнего источника: тот же парсер реквизита, свой тег <Field>,
свой контекст (без индексов и полнотекстового поиска — чужой таблицей 1С не владеет) и три своих
свойства в хвосте. Сам источник точечно не правится: и таблица (отдельный файл), и функция (узел
с полным набором свойств) требуют эмиттера, который живёт в meta-compile, — дублировать его здесь
значило бы завести вторую реализацию одного и того же.

Заодно закрыт тихий отказ, существовавший независимо от внешних источников: проверка допустимых
детей смотрела на истинность списка, а не на наличие ключа, поэтому для вида с пустым списком
трактовалась как «ограничений нет» и чужой ребёнок молча записывался в объект. Теперь add-attribute
на таблице внешнего источника отвергается с предупреждением, а не пишет <Attribute> вместо <Field>.

meta-remove понимает две формы: ExternalDataSource.PG — источник целиком, и четырёхчастную
ExternalDataSource.PG.Table.products — одну таблицу. Таблица числится в ChildObjects файла
источника, а не конфигурации, поэтому дерегистрация разведена переменной реестра; поиск ссылок
дополнен путями вида ExternalDataSource.И.Table.Т и ExternalDataSourceTableRef.И.Т.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
2026-09-05 21:44:23 +03:00

29 lines
1018 B
JSON

{
"name": "Таблица внешнего источника: файл удалён, имя убрано из ChildObjects источника",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "ExternalDataSource",
"name": "PG",
"tables": {
"products": { "keyFields": ["id"], "fields": ["id: Number(10,0)"] },
"prices": ["product_id: Number(10,0)", "price: Number(15,2)"]
}
},
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
}
],
"object": "ExternalDataSource.PG.Table.prices",
"expect": {
"files": ["ExternalDataSources/PG.xml", "ExternalDataSources/PG/Tables/products.xml"],
"filesAbsent": ["ExternalDataSources/PG/Tables/prices.xml"],
"fileContains": [
{ "file": "ExternalDataSources/PG.xml", "text": "<Table>products</Table>" }
],
"fileNotContains": [
{ "file": "ExternalDataSources/PG.xml", "text": "<Table>prices</Table>" }
]
}
}