mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-18 16:49:41 +03:00
test(meta-compile,verify-snapshots): ПВХ chart-of-characteristic-types — валидный справочник доп.значений (cert-фикс)
Кейс был семантически невалиден и не грузился в 1С (падал db-load-xml на чистом HEAD): предопределённый «Цвет» имел тип CatalogRef.ЗначенияСвойств, которого НЕТ в типе значения ПВХ, а стаб-справочник был плоский (не подчинён ПВХ, не указан в CharacteristicExtValues). Фикс (по образцу реального ВидыСубконтоХозрасчетные→Catalog.Субконто): - getStructuralDeps: ветка ChartOfCharacteristicTypes — справочник CharacteristicExtValues стабится ПОДЧИНЁННЫМ ПВХ (owners=[ChartOfCharacteristicTypes.X]), а не плоским. - Кейс: +CatalogRef.ЗначенияСвойств в valueTypes (тип предопределённого входит в тип значения ПВХ), +characteristicExtValues: "Catalog.ЗначенияСвойств". Cert ✓ (db-load-xml + db-update). Регресс 49/49 ps1+py. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,8 @@
|
|||||||
"name": "ДополнительныеРеквизитыИСведения",
|
"name": "ДополнительныеРеквизитыИСведения",
|
||||||
"descriptionLength": 100,
|
"descriptionLength": 100,
|
||||||
"hierarchical": true,
|
"hierarchical": true,
|
||||||
"valueTypes": ["String(200)", "Number(15,2)", "Boolean", "Date"],
|
"valueTypes": ["String(200)", "Number(15,2)", "Boolean", "Date", "CatalogRef.ЗначенияСвойств"],
|
||||||
|
"characteristicExtValues": "Catalog.ЗначенияСвойств",
|
||||||
"standardAttributes": { "Description": { "synonym": "Свойство" } },
|
"standardAttributes": { "Description": { "synonym": "Свойство" } },
|
||||||
"attributes": ["НаборСвойств: String(100)"],
|
"attributes": ["НаборСвойств: String(100)"],
|
||||||
"predefined": [
|
"predefined": [
|
||||||
|
|||||||
+2
-1
@@ -38,7 +38,7 @@
|
|||||||
<Comment/>
|
<Comment/>
|
||||||
<UseStandardCommands>true</UseStandardCommands>
|
<UseStandardCommands>true</UseStandardCommands>
|
||||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||||
<CharacteristicExtValues/>
|
<CharacteristicExtValues>Catalog.ЗначенияСвойств</CharacteristicExtValues>
|
||||||
<Type>
|
<Type>
|
||||||
<v8:Type>xs:string</v8:Type>
|
<v8:Type>xs:string</v8:Type>
|
||||||
<v8:StringQualifiers>
|
<v8:StringQualifiers>
|
||||||
@@ -56,6 +56,7 @@
|
|||||||
<v8:DateQualifiers>
|
<v8:DateQualifiers>
|
||||||
<v8:DateFractions>Date</v8:DateFractions>
|
<v8:DateFractions>Date</v8:DateFractions>
|
||||||
</v8:DateQualifiers>
|
</v8:DateQualifiers>
|
||||||
|
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ЗначенияСвойств</v8:Type>
|
||||||
</Type>
|
</Type>
|
||||||
<Hierarchical>true</Hierarchical>
|
<Hierarchical>true</Hierarchical>
|
||||||
<FoldersOnTop>true</FoldersOnTop>
|
<FoldersOnTop>true</FoldersOnTop>
|
||||||
|
|||||||
@@ -184,6 +184,20 @@ function getStructuralDeps(input) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'ChartOfCharacteristicTypes':
|
||||||
|
// Доп. значения характеристик (CharacteristicExtValues) — ссылка на справочник, ПОДЧИНЁННЫЙ этому ПВХ
|
||||||
|
// (Owner = ChartOfCharacteristicTypes.X). 1С требует такой справочник для целостности; плоский стаб не годится
|
||||||
|
// (тип предопределённых должен входить в тип значения ПВХ, а справочник — быть подчинён). Стабим с Owner.
|
||||||
|
if (inp.characteristicExtValues) {
|
||||||
|
const ref = String(inp.characteristicExtValues);
|
||||||
|
const dot = ref.indexOf('.');
|
||||||
|
const cn = dot >= 0 ? ref.substring(dot + 1) : ref;
|
||||||
|
deps.push({
|
||||||
|
type: 'Catalog', name: cn,
|
||||||
|
dsl: { type: 'Catalog', name: cn, owners: [`ChartOfCharacteristicTypes.${inp.name}`] },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'DocumentJournal':
|
case 'DocumentJournal':
|
||||||
if (inp.registeredDocuments) {
|
if (inp.registeredDocuments) {
|
||||||
for (const docRef of inp.registeredDocuments) {
|
for (const docRef of inp.registeredDocuments) {
|
||||||
|
|||||||
Reference in New Issue
Block a user