mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-05 01:30:54 +03:00
Расширение можно было положить в базу, но нельзя было посмотреть, что там лежит, в каком оно состоянии, применяется ли, и убрать лишнее — всё это делалось руками через 1cv8 и ibcmd. Четыре команды: list (состав и свойства подключения), check (применимость и синтаксический контроль), set-properties (безопасный режим, активность, защита от опасных действий, область действия, профиль, РИБ), delete. Конструкция опирается на замеры платформы (8.3.24.1691 и 8.3.27.1859): - /CheckModules не нужен: /CheckConfig с теми же контекстными флагами даёт дословно тот же вывод и код возврата, но умеет вдобавок конфигурационные проверки. Одна команда платформы вместо двух, при запросе modules+config — один запуск; - обе проверки БЕЗ флагов контекста рапортуют «ошибок не обнаружено» с кодом 0 на заведомо сломанном модуле, поэтому набор контекстов всегда явный; - применимость и синтаксис друг друга не заменяют (первая слепа к синтаксису, второй — к дрейфу контроля), отсюда умолчание apply,modules; - коды возврата разные: применимость 1, /CheckConfig 101; - /DeleteCfg -Extension "" возвращает 0, рапортует успех и удаляет ПЕРВОЕ расширение из списка, поэтому пустое имя отбивается до вызова платформы, а отсутствие имени никогда не значит «все»; - список и удаление делает Конфигуратор (работает всегда и на серверной базе), свойства — ibcmd, которого в установке платформы может не быть: тогда колонки помечены прочерком с названной причиной, а set-properties отказывает внятно. Значения флагов словесные (on/off), а не +/-: значение "-" через powershell.exe -File парсер съедает молча — проверено, у соседнего db-update -Dynamic "-" по этой причине не работает вовсе. delete и set-properties проверяют результат перечитыванием состояния, а не кодом возврата платформы. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QoAJmoNbgWKobA7JGgN5S3
30 lines
908 B
JSON
30 lines
908 B
JSON
{
|
|
"name": "check: платформа отвергла расширение (код 1) — дрейф виден в отчёте, exit 1",
|
|
"fakePlatform": {
|
|
"log": "Проба: Текст метода \"Проба_Расчёт\" не соответствует методу \"Расчёт\".\r\n",
|
|
"exit": 1
|
|
},
|
|
"args_extra": [
|
|
"-V8Path",
|
|
"{fakePlatform}",
|
|
"-InfoBasePath",
|
|
"{workDir}/ib",
|
|
"-Command",
|
|
"check",
|
|
"-Name",
|
|
"Проба",
|
|
"-Checks",
|
|
"apply"
|
|
],
|
|
"expectError": true,
|
|
"expect": {
|
|
"stdoutContains": [
|
|
"применимость",
|
|
"ОШИБКА",
|
|
"не соответствует методу",
|
|
"Итог: провалено 1 из 1"
|
|
]
|
|
},
|
|
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется разбор вывода платформы"
|
|
}
|