mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-23 18:55:53 +03:00
fix(*-validate,*-init): проверенный диапазон версий формата 2.17–2.21
Валидаторы объявляли «ожидаемым» литеральный список версий и ругались на всё остальное как на подозрительное. Но 2.13–2.16 не подозрительны — они просто не проверялись, а form-validate вдобавок отстал на 2.21 и предупреждал о форме, которую сам же создаёт цепочкой epf-init 2.21 → form-add (issue #63). Теперь сравнение числовое, через общий Get-FormatRank, и исходов три: ниже 2.17 и выше 2.21 — предупреждение «not verified on it», нечисловое значение — ошибка. Раньше мусор вида «abc» и реальная версия 2.16 давали одно и то же предупреждение. В *-init ValidateSet/choices сняты: версия вне диапазона больше не запрет, а предупреждение в stderr — скаффолд выпускается. Опечатка (2,17) остаётся ошибкой. Предупреждение печатается напрямую в stderr и после настройки кодировки консоли: Write-Warning в PS 5.1 уходит в stdout, получает локализованный префикс и перенос по 80 символов, а до [Console]::OutputEncoding em-dash уезжал в вопросы — оба расхождения ломали паритет с py-портом. Отдельно в cf-init исправлен гейт TextToSpeech: свойство приезжает форматом 2.18 (8.3.25), а не 2.21. Замер: выгрузки пустой ИБ шести платформ — 37 записей UsedMobileApplicationFunctionalities на 2.13/2.17 и 38 на 2.18–2.21. Ролики загрузки показали, что это настоящее новое свойство, а не смена дефолта эмиссии: на 2.17 тег роняет загрузку XDTO-ошибкой (8.3.24), значение значимо (true переживает роундтрип), а пропуск на 2.18+ разводит роундтрип — платформа допишет тег сама. Снапшоты трёх кейсов meta-compile обновлены: их фикстуры строятся cf-init, дельта — только вставка тега. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
35c8618813
commit
de76fde275
@@ -22,6 +22,24 @@ allowed-tools:
|
||||
| `Version` | Версия конфигурации |
|
||||
| `Vendor` | Поставщик |
|
||||
| `CompatibilityMode` | Режим совместимости (default: `Version8_3_24`) |
|
||||
| `FormatVersion` | Версия формата выгрузки (default: `2.17`) |
|
||||
|
||||
Оба параметра задаются от **целевой платформы** — той, на которой конфигурация будет работать, — но по
|
||||
разным правилам.
|
||||
|
||||
`FormatVersion` — **не выше** версии формата целевой платформы: 8.3.24 — `2.17`, 8.3.25 — `2.18`,
|
||||
8.3.26 — `2.19`, 8.3.27 — `2.20`, 8.5 — `2.21`. Ниже брать можно: платформа читает свой формат и любой
|
||||
более старый, поэтому дефолт `2.17` подходит для всей линейки 8.3.24 и выше.
|
||||
|
||||
`CompatibilityMode` влияет на доступную функциональность. Если в задаче не оговорено иное — **равен
|
||||
целевой платформе** (`Version8_3_27` для 8.3.27); это то же самое, что «Не использовать» в
|
||||
Конфигураторе, и именно такое значение платформа проставляет новой базе. Более низкий режим берут
|
||||
осознанно — когда конфигурация должна работать и на старых платформах; он отключает возможности,
|
||||
появившиеся позже. Выше целевой платформы — нельзя: такая конфигурация загрузится, но работать на ней
|
||||
не будет.
|
||||
|
||||
Значение `DontUse` не задавать: платформа заменяет его на `Version8_3_8`, то есть молча опускает
|
||||
конфигурацию до старого режима.
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cf-init.ps1" -Name "МояКонфигурация"
|
||||
@@ -36,8 +54,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cf-init.ps1" -Name
|
||||
# С версией и поставщиком
|
||||
... -Name TestCfg -Synonym "Тестовая" -Version "1.0.0.1" -Vendor "Фирма 1С" -OutputDir test-tmp/cf2
|
||||
|
||||
# Другой режим совместимости
|
||||
... -Name TestCfg -CompatibilityMode Version8_3_27 -OutputDir test-tmp/cf3
|
||||
# Под платформу 8.3.27 — версия формата и режим совместимости вместе
|
||||
... -Name TestCfg -FormatVersion 2.20 -CompatibilityMode Version8_3_27 -OutputDir test-tmp/cf3
|
||||
```
|
||||
|
||||
## Верификация
|
||||
|
||||
Reference in New Issue
Block a user