mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-13 22:35:16 +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": "ДополнительныеРеквизитыИСведения",
|
||||
"descriptionLength": 100,
|
||||
"hierarchical": true,
|
||||
"valueTypes": ["String(200)", "Number(15,2)", "Boolean", "Date"],
|
||||
"valueTypes": ["String(200)", "Number(15,2)", "Boolean", "Date", "CatalogRef.ЗначенияСвойств"],
|
||||
"characteristicExtValues": "Catalog.ЗначенияСвойств",
|
||||
"standardAttributes": { "Description": { "synonym": "Свойство" } },
|
||||
"attributes": ["НаборСвойств: String(100)"],
|
||||
"predefined": [
|
||||
|
||||
+2
-1
@@ -38,7 +38,7 @@
|
||||
<Comment/>
|
||||
<UseStandardCommands>true</UseStandardCommands>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<CharacteristicExtValues/>
|
||||
<CharacteristicExtValues>Catalog.ЗначенияСвойств</CharacteristicExtValues>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
@@ -56,6 +56,7 @@
|
||||
<v8:DateQualifiers>
|
||||
<v8:DateFractions>Date</v8:DateFractions>
|
||||
</v8:DateQualifiers>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.1/data/enterprise/current-config">d5p1:CatalogRef.ЗначенияСвойств</v8:Type>
|
||||
</Type>
|
||||
<Hierarchical>true</Hierarchical>
|
||||
<FoldersOnTop>true</FoldersOnTop>
|
||||
|
||||
@@ -184,6 +184,20 @@ function getStructuralDeps(input) {
|
||||
}
|
||||
}
|
||||
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':
|
||||
if (inp.registeredDocuments) {
|
||||
for (const docRef of inp.registeredDocuments) {
|
||||
|
||||
Reference in New Issue
Block a user