From 5120b135f5c973fb2f95f4f66b0b165741847a36 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 28 Feb 2026 16:38:21 +0300 Subject: [PATCH] fix(web-test): use e1cib/app/ for reports and data processors Reports and DataProcessors need e1cib/app/ prefix (opens app form), while lists/registers/catalogs use e1cib/list/ (opens list form). Co-Authored-By: Claude Opus 4.6 --- .claude/skills/web-test/scripts/browser.mjs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.claude/skills/web-test/scripts/browser.mjs b/.claude/skills/web-test/scripts/browser.mjs index 0d85c907..8f08317f 100644 --- a/.claude/skills/web-test/scripts/browser.mjs +++ b/.claude/skills/web-test/scripts/browser.mjs @@ -361,16 +361,20 @@ const E1CIB_TYPE_MAP = { 'constant': 'Константа', }; +// Types that open via e1cib/app/ (reports and data processors have their own app forms) +const E1CIB_APP_TYPES = new Set(['Отчет', 'Обработка']); + function normalizeE1cibUrl(url) { // Already a full e1cib link if (url.startsWith('e1cib/')) return url; - // "ТипОбъекта.Имя" or "EnglishType.Имя" — prepend e1cib/list/ and translate type if needed + // "ТипОбъекта.Имя" or "EnglishType.Имя" — translate type, pick list/ or app/ prefix const dot = url.indexOf('.'); if (dot > 0) { const typePart = url.substring(0, dot); const namePart = url.substring(dot + 1); const ruType = E1CIB_TYPE_MAP[typePart.toLowerCase()] || typePart; - return `e1cib/list/${ruType}.${namePart}`; + const prefix = E1CIB_APP_TYPES.has(ruType) ? 'e1cib/app' : 'e1cib/list'; + return `${prefix}/${ruType}.${namePart}`; } return `e1cib/list/${url}`; }