mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-18 08:39:40 +03:00
fix(web-test): fillTableRow — ранний выход после заполнения всех полей строки
Tab-цикл не выходил сразу после заполнения последнего поля: ветки заполнения по составному типу и по примитиву делали continue без проверки «все поля закрыты», и цикл протабывал остаток строки до wrap-around. На широких строках с объединёнными колонками (составной субконто) это заметно «бежало» табами до конца строки — холостые итерации + риск ухода фокуса/создания лишней строки. - row-fill v1.24: единая проверка в начале итерации `if (every filled) break`. Значение последнего поля к этому моменту уже зафиксировано (commit-Tab примитива, выбор из формы, либо end-of-row commit для choice-ячейки). - 05-table: guard на количество строк после составного фила. Проверено: полный регресс web-test 22/22; вживую на широкой ТЧ с составным субконто — лишний хвост табов устранён. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// web-test table/row-fill v1.23 — fillTableRow — заполнение строки табличной части/списка через Tab-навигацию и попутный выбор значений.
|
||||
// web-test table/row-fill v1.24 — fillTableRow — заполнение строки табличной части/списка через Tab-навигацию и попутный выбор значений.
|
||||
// Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import {
|
||||
@@ -515,6 +515,12 @@ export async function fillTableRow(fields, { tab, add, row, table, scroll } = {}
|
||||
let firstCellId = null;
|
||||
|
||||
for (let iter = 0; iter < MAX_ITER; iter++) {
|
||||
// All requested fields filled → stop. Без этого цикл табает дальше до wrap-around
|
||||
// (обходит остаток строки впустую): ветки заполнения по составному типу/примитиву
|
||||
// не выходили сами, что особенно заметно на широких строках (субконто/проводки).
|
||||
// Значение последнего поля к этому моменту уже зафиксировано (commit-Tab примитива,
|
||||
// выбор из формы, либо end-of-row commit для choice-ячейки).
|
||||
if ([...pending.values()].every(p => p.filled)) break;
|
||||
// Read focused element (INPUT or TEXTAREA inside grid = editable cell)
|
||||
const cell = await page.evaluate(readActiveGridCellScript());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user