mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-30 22:15:54 +03:00
feat(cfe-borrow): связи формы кодируются как у Конфигуратора, а не вырезаются
В заимствованной форме без основного реквизита навык вырезал связи параметров выбора на Items.<Таблица>.CurrentData.<Поле>, а связи на стандартные поля (Объект.Owner, Объект.Date) и Объект.<ТЧ>.<Реквизит> — молча. TypeLink на Items.* вырезался всегда, даже с основным реквизитом. Конфигуратор пишет такие пути кодом. Код — внутренняя ссылка платформы: в выгрузке она пишет имя, а если имя в форме не разрешается — код. Грамматика восстановлена оракулом (код в форму конфигурации → загрузка → выгрузка → имя, 8.3.27) и эталонами Конфигуратора УТ: <id реквизита> или <id таблицы>:CurrentData, далее 0:<uuid> метаданных источника, <id колонки>, <id>:<AdditionalColumns> или -k стандартного реквизита (коды своих для каждого вида объекта — таблица в навыке и в спецификации §5.5.2). Правило как у Конфигуратора: текст, где он разрешается, иначе код. Путь от реквизита формы кодируется и с основным реквизитом — текст платформа отвергает «Неверный путь к полю». TypeLink — то же правило. Некодируемое вырезается, всегда с предупреждением «Вырезано связей формы». Измерения/ресурсы регистра и реквизиты ТЧ теперь различаются как реквизиты (с основным реквизитом «Запись.Склад» больше не подменяется ссылкой на сам реквизит). Попутно: порядок заимствования ссылочных типов в PS зависел от хеша — теперь порядок первого упоминания, как в Python-порте. Оба порта, v1.41. Проверка: четыре формы УТ (ОприходованиеИзлишковТоваров, ЗначенияСвойствОбъектов, ФормаРасчетыМеждуОрганизациями без и с основным реквизитом) совпадают с выгрузкой Конфигуратора построчно; все 11 кодов новых кейсов оракул переводит обратно в исходные пути. Кейсы form-link-codes, -main, -register; form-choice-link-items ждёт код вместо вырезания. Проблема и первые данные о кодировке — PR #105. Co-Authored-By: Sergei Pleshanov <2357qwr@gmail.com> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Sergei Pleshanov
Claude Opus 5.5
parent
8677770eea
commit
7381b0503c
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"name": "Связи формы записи регистра без основного реквизита: стандартное поле записи (Period) и измерение кодируются",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "meta-compile/scripts/meta-compile",
|
||||
"input": {
|
||||
"type": "Catalog",
|
||||
"name": "Склады"
|
||||
},
|
||||
"args": {
|
||||
"-JsonPath": "{inputFile}",
|
||||
"-OutputDir": "{workDir}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"script": "meta-compile/scripts/meta-compile",
|
||||
"input": {
|
||||
"type": "InformationRegister",
|
||||
"name": "Цены",
|
||||
"periodicity": "Day",
|
||||
"dimensions": [
|
||||
"Склад: CatalogRef.Склады"
|
||||
],
|
||||
"resources": [
|
||||
"Цена: Number(15,2)"
|
||||
]
|
||||
},
|
||||
"args": {
|
||||
"-JsonPath": "{inputFile}",
|
||||
"-OutputDir": "{workDir}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"script": "form-add/scripts/form-add",
|
||||
"args": {
|
||||
"-ObjectPath": "{workDir}/InformationRegisters/Цены.xml",
|
||||
"-FormName": "ФормаЗаписи"
|
||||
}
|
||||
},
|
||||
{
|
||||
"script": "form-compile/scripts/form-compile",
|
||||
"input": {
|
||||
"title": "Цена",
|
||||
"elements": [
|
||||
{
|
||||
"input": "Склад",
|
||||
"path": "Запись.Склад"
|
||||
},
|
||||
{
|
||||
"input": "Цена",
|
||||
"path": "Запись.Цена",
|
||||
"choiceParameterLinks": [
|
||||
{
|
||||
"name": "Отбор.Период",
|
||||
"dataPath": "Запись.Period"
|
||||
},
|
||||
{
|
||||
"name": "Отбор.Склад",
|
||||
"dataPath": "Запись.Склад"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"attributes": [
|
||||
{
|
||||
"name": "Запись",
|
||||
"type": "InformationRegisterRecordManager.Цены",
|
||||
"main": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"args": {
|
||||
"-JsonPath": "{inputFile}",
|
||||
"-OutputPath": "{workDir}/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml"
|
||||
}
|
||||
},
|
||||
{
|
||||
"script": "cfe-init/scripts/cfe-init",
|
||||
"args": {
|
||||
"-Name": "Тест",
|
||||
"-OutputDir": "{workDir}/cfe",
|
||||
"-ConfigPath": "{workDir}"
|
||||
}
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
"extensionPath": "cfe",
|
||||
"object": "InformationRegister.Цены.Form.ФормаЗаписи"
|
||||
},
|
||||
"expect": {
|
||||
"fileContains": {
|
||||
"file": "cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml",
|
||||
"text": [
|
||||
"<xr:DataPath xsi:type=\"xs:string\">7/-2</xr:DataPath>",
|
||||
"<xr:DataPath xsi:type=\"xs:string\">7/0:"
|
||||
]
|
||||
},
|
||||
"fileNotContains": {
|
||||
"file": "cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml",
|
||||
"text": [
|
||||
"Запись.Period",
|
||||
"Запись.Склад<"
|
||||
]
|
||||
},
|
||||
"stdoutNotContains": "Вырезано связей"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user