mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-07 18:50:53 +03:00
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
29 lines
1018 B
JSON
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>" }
|
|
]
|
|
}
|
|
}
|