Files
cc-1c-skills/tests/skills/cases/cfe-borrow/form-choice-link-standard-field.json
T
Nick ShirokovandClaude Opus 5 112166dc0c fix(cfe-borrow): стандартные поля и Items-пути в связях параметров выбора
Эталоны Issue66Example7 и 7_1 (три формы, оба режима) показали, что прошлая
правка была неполной в двух местах.

1. Путь на СТАНДАРТНОЕ поле объекта («Объект.Owner», «Объект.Date», «Объект.Ref»)
текстом не разрешается даже при заимствованном основном реквизите: платформа
отвергает загрузку «Неверный путь к данным». Мы такой путь оставляли текстом.
Конфигуратор оставляет ссылку на сам реквизит — «1». Теперь так же: реквизит
объекта (есть в ChildObjects) остаётся читаемым текстом, стандартное поле
сводится к id основного реквизита. Проверено загрузкой: было падение, стало
успешно; выход совпал с эталоном 7_1 дословно.

2. Пути «Items.<Элемент>.CurrentData.<Поле>» при заимствованном основном
реквизите разрешаются текстом — элементы формы на месте, а их данные доступны
через основной реквизит. Конфигуратор их и не трогает. Прошлая правка вырезала
их в обоих режимах, то есть теряла рабочие связи. Теперь вырезаются только без
заимствования основного реквизита, где они действительно не разрешаются.

Уточнение по кодировке для будущей работы: без заимствования Конфигуратор
кодирует стандартное поле как «1/-N» (Owner у справочника и Ref у документа
дали -5, Date у документа -3), а Items-путь — как
«<id элемента>:02023637-7868-4a5f-8576-835a76e0c9ba/0:<uuid поля>». Таблицу
отрицательных индексов по трём точкам не построить, поэтому в скелетном режиме
обе разновидности по-прежнему вырезаются с предупреждением.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 18:42:20 +03:00

107 lines
2.8 KiB
JSON

{
"name": "Связь на стандартное поле объекта: с основным реквизитом остаётся ссылка на сам реквизит",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "Catalog",
"name": "Склады"
},
"args": {
"-JsonPath": "{inputFile}",
"-OutputDir": "{workDir}"
}
},
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "Catalog",
"name": "Ячейки"
},
"args": {
"-JsonPath": "{inputFile}",
"-OutputDir": "{workDir}"
}
},
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "Document",
"name": "Размещение",
"attributes": [
{
"name": "Ячейка",
"type": "CatalogRef.Ячейки"
}
]
},
"args": {
"-JsonPath": "{inputFile}",
"-OutputDir": "{workDir}"
}
},
{
"script": "form-add/scripts/form-add",
"args": {
"-ObjectPath": "{workDir}/Documents/Размещение.xml",
"-FormName": "ФормаДокумента"
}
},
{
"script": "form-compile/scripts/form-compile",
"input": {
"title": "Размещение",
"elements": [
{
"input": "Ячейка",
"path": "Объект.Ячейка",
"choiceParameterLinks": [
{
"name": "Отбор.Владелец",
"dataPath": "Объект.Ref"
}
]
}
],
"attributes": [
{
"name": "Объект",
"type": "DocumentObject.Размещение",
"main": true
}
]
},
"args": {
"-JsonPath": "{inputFile}",
"-OutputPath": "{workDir}/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml"
}
},
{
"script": "cfe-init/scripts/cfe-init",
"args": {
"-Name": "Тест",
"-OutputDir": "{workDir}/ext",
"-ConfigPath": "{workDir}"
}
}
],
"params": {
"extensionPath": "ext",
"object": "Document.Размещение.Form.ФормаДокумента"
},
"expect": {
"fileContains": {
"file": "ext/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml",
"text": "<xr:Link>"
},
"fileNotContains": {
"file": "ext/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml",
"text": "<xr:DataPath xsi:type=\"xs:string\">Объект.Ref</xr:DataPath>"
}
},
"args_extra": [
"-BorrowMainAttribute",
"Form"
]
}