mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-03 18:20:21 +03:00
Detect-FormatVersion читает префикс Configuration.xml как ReadAllText(...).Substring(0, Min(2000, (Get-Item).Length)). Размер файла — в БАЙТАХ, Substring считает СИМВОЛЫ: на кириллице байт больше, и если файл короче 2000 символов, длина среза выходит за строку и навык падает исключением. Проявлялось на маленьких конфигурациях — например на фикстуре EPF внутри конфигурации на поддержке. Функция расходится копиями по навыкам, поэтому правка одинаковая в восьми: длина берётся по самой строке. В help-add так было изначально; в meta-compile рядом (Detect-CompatibilityMode) уже стоял верный вариант. py-порты иммунны: там f.read(2000) в текстовом режиме — читает символы и не бросает исключение. Зеркалить нечего, версии выровнены по обоим портам. Заодно tests/skills/verify-snapshots.mjs: outputPath кейса читался только из params, тогда как runner.mjs берёт его с верхнего уровня — из-за расхождения харнесс искал результат не там, где навык его написал, и это маскировало падение как «выход не создан». Проверка: 1С-сертификация mxl-compile 13/13 (кейс guard-allow-external падал с начала кампании), полная сюита 630/630 на PowerShell и 627+3 skipped на python. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>