Второй вход в ту же ловушку: публикация без пользователя (нет Usr= в vrd).
Клиент показывает диалог «Пользователь/Пароль/Войти», ввод учётных данных
движок не поддерживает — но вместо ошибки он ждал 67.7с, а затем closeModals()
жал Escape и диалог ИСЧЕЗАЛ. Оставалась пустая страница, объявленная здоровым
стартом, и дальше та же ложь про «режим отображения панели».
Разведка изменила постановку в двух местах:
1. Улику затирал сам движок. Замерено: одного Escape достаточно, чтобы форма
логина пропала. Поэтому детект обязан отработать ДО closeModals.
2. Комментарий «страница логина легитимна» оказался фикцией: войти руками через
start было невозможно и раньше — движок сам уничтожал форму. Значит падать
тут ничего не ломает, и развилка «в раннере падать, в интерактиве нет»
отпадает. Комментарий переписан, чтобы следующий читатель не поверил ему
больше, чем коду.
Хуже, чем с лицензией: на диалоге авторизации сеанс 1С УСПЕВАЕТ создаться и
держит лицензию впустую. Поэтому connect() освобождает его (disconnect) перед
тем, как ошибка уйдёт наверх: cmdStart зовёт connect без catch, run.mjs не
оборачивает команду, а убийство процесса лицензию не освобождает.
- session.mjs (v1.19→v1.20): +1 якорь #authWindow в тот же предикат, своё
сообщение с рецептом (-UserName → Usr=/Pwd=), очистка в connect().
- start.mjs (v1.0→v1.1), run.mjs (v1.0→v1.1): стартовый блокер — это диагноз,
а не крах. Три строки и код 1 вместо стека, который указывал внутрь
session.mjs и читался бы как поломка движка (модель пошла бы чинить не то).
Проверено вживую:
- шаг 0 (до кода): #authWindow не существует на здоровых стартах — ни в клиенте,
ни при загрузке; проверено и на bpdemo с автологином (19.5с, опрос 100мс);
- позитивный контроль на bpdemo-auth (BP_DEMO без Usr=): бросок за 2.7с вместо
67.7с, слот убран из реестра, лицензия вернулась — 6/6;
- то же через connect(): сообщение, браузер закрыт, сеанс освобождён;
- негативный контроль: полный регресс 25/25, ноль ложных срабатываний; start на
bpdemo (автологин) поднимается штатно;
- попутно на испорченном прогоне (сам съел лицензию соседней сессией) детект
отработал в раннере на НАСТОЯЩЕМ дефиците: два мультиконтекстных теста упали
с внятной причиной, остальные 23 прошли — прогон поехал дальше.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>