mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-23 13:11:05 +03:00
filterList отчитывался успехом, пока динамический список ещё выполнял поиск: readTable возвращал предыдущие строки, а следующий клик по строке попадал в чужой объект. Отличить такой результат от верного нельзя — сценарий проходит зелёным по не тому документу. Дыра оказалась не в filterList, а в общем ожидании. waitForStable следил только за .loadingImage/.waitCurtain/.progressBar и счётчиком полей ввода — ни то, ни другое не меняется при перерисовке строк списка. Замер на реальной базе: за весь поиск старый признак isLoading не сработал НИ РАЗУ. При этом 1С всё это время показывает над списком информбар «Поиск...» — тот же .stateWindowSupportSurface, который движок уже отдаёт в errors.stateText. Читать умели, ждать — нет. waitForStable теперь считает видимый маркер занятости признаком «не готово»: счётчик стабильности сбрасывается, дедлайн продлевается, пока маркер виден, но не дольше BUSY_MAX_WAIT (60 с) — реальный поиск на боевом списке идёт десятки секунд, а зависшая операция всё равно завершает ожидание. Маркеры сопоставляются ПО ТЕКСТУ (Поиск/Ожид/Searching/Please wait), а не по факту наличия информбара: тот же носитель несёт терминальные сообщения отчётов («Отчет не сформирован», «Не установлено значение параметра»), и ожидание их исчезновения вешало бы каждый отчёт до таймаута. Радиус общий, а не точечный в filterList: маркер — индикатор длительной операции вообще, тот же класс гонки достижим из clickElement и openCommand. Частное лечение для кнопок (CDP-монитор в click-form) уже есть; второй костыль сделал бы третий неизбежным. CDP-монитор как гейт не годится отдельно: он считает готовностью паузу 300 мс без запросов, а при фоновой операции с периодическим опросом такие паузы штатны. Проверено на реальной базе: текст информбара — «Поиск...», виден t=6.7..13.2 с, опрос, идентичный гейтовому, увидел занятость дважды (isLoading — ноль раз); полный регресс 29/29 до и после, file/name/status идентичны, суммарное время 879.9 → 859.0 с, отчёты не зависли. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>