mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-13 22:35:16 +03:00
test(meta-compile): стаб документов последовательности для 1С-cert (sequence)
getStructuralDeps не стабил документы, на которые ссылается Sequence (inp.documents + documentMap) → 1С-cert падал с «Неизвестный объект метаданных Document.X» и «Ни один документ не участвует в последовательности». Пред-существующий пробел (не связан с dataLock — падал идентично на до-dataLock компиляторе). Добавлен case 'Sequence': стаб каждого документа с реквизитами из documentMap (тип реквизита берётся из соответствующего измерения). sequence 1С-cert теперь проходит. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -223,6 +223,27 @@ function getStructuralDeps(input) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'Sequence':
|
||||
// Документы последовательности (documents) + реквизиты из documentMap — 1С требует существования
|
||||
// самого Document.X И реквизита, на который ссылается измерение. Стабим документ с нужными реквизитами
|
||||
// (тип реквизита берём из соответствующего измерения последовательности).
|
||||
if (inp.documents) {
|
||||
const norm = (s) => String(s).replace(/^Документ\./, 'Document.').replace(/\.Реквизит\./, '.Attribute.');
|
||||
const docAttrs = {}; // имя документа -> Set("Реквизит: Тип")
|
||||
for (const dim of (inp.dimensions || [])) {
|
||||
const dtype = dim.type || 'CatalogRef.Организации';
|
||||
for (const mp of (dim.documentMap || [])) {
|
||||
const m = norm(mp).match(/^Document\.([^.]+)\.Attribute\.(.+)$/);
|
||||
if (m) (docAttrs[m[1]] = docAttrs[m[1]] || new Set()).add(`${m[2]}: ${dtype}`);
|
||||
}
|
||||
}
|
||||
for (const dref of inp.documents) {
|
||||
const dn = String(dref).split('.').pop();
|
||||
const attrs = [...(docAttrs[dn] || [])];
|
||||
deps.push({ type: 'Document', name: dn, dsl: { type: 'Document', name: dn, ...(attrs.length ? { attributes: attrs } : {}) } });
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return deps;
|
||||
|
||||
Reference in New Issue
Block a user