From 3a89aa21e6d99822228c9aa18122dd4f15d9f072 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Fri, 29 May 2026 20:52:07 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=BA=D0=B0=D1=80=D1=82=D0=B8=D0=BD?= =?UTF-8?q?=D0=BE=D1=87=D0=BD=D1=8B=D0=B5=20=D0=BA=D0=BE=D0=BB=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8=20readTable=20+=20valuesPicture=20=D0=B2=20form=20?= =?UTF-8?q?DSL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - web-test-guide: раздел про picture-колонки readTable (pic:N/'', truthy-наличие, именование по тултипу, read/assert-only — не селектор). - form-dsl-spec: ключи valuesPicture/loadTransparent у picField. Co-Authored-By: Claude Opus 4.8 --- docs/form-dsl-spec.md | 12 ++++++++++++ docs/web-test-guide.md | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/docs/form-dsl-spec.md b/docs/form-dsl-spec.md index b887549f..f2dc2378 100644 --- a/docs/form-dsl-spec.md +++ b/docs/form-dsl-spec.md @@ -355,6 +355,18 @@ Pages поддерживает `pagesRepresentation`: `None`, `TabsOnTop`, `Tabs { "picField": "Фото", "path": "Фотография" } ``` +Для поля, привязанного к булеву/числу (иконка-индикатор в колонке), задайте картинку значения через `valuesPicture` — без неё иконка не отрисуется: + +```json +{ "picField": "Картинка", "path": "Таблица.Картинка", + "valuesPicture": "StdPicture.Favorites", "loadTransparent": true } +``` + +| Свойство | Тип | Описание | +|----------|-----|----------| +| `valuesPicture` | string | Ссылка на картинку значения (`StdPicture.*`, `CommonPicture.*`) | +| `loadTransparent` | bool | Скрыть кадр «нет значения». Выводится только при `true` | + #### calendar — CalendarField ```json diff --git a/docs/web-test-guide.md b/docs/web-test-guide.md index 814616dc..7ea9f1c6 100644 --- a/docs/web-test-guide.md +++ b/docs/web-test-guide.md @@ -271,6 +271,16 @@ const t = await readTable(); `hasMore.below` присутствует всегда. `hasMore.above` тоже обычно есть — определяется по кнопкам пагинации (`vertButtonScroll`, есть у большинства дин-списков) или треку скроллбара (у табчастей). Отсутствует только в редких случаях, когда у грида нет ни кнопок, ни видимого скроллбара — тогда трактуйте отсутствие как «неизвестно». +**Колонки-картинки.** Ячейки, где выводится иконка (статусы, этапы, индикатор ЭДО, скрепка «есть файл»), читаются как `'pic:'` при наличии иконки (`N` — индекс кадра/состояния) и `''` при её отсутствии. Присутствие читается как truthy, разные иконки различаются по индексу: + +```js +const t = await readTable(); +if (t.rows[0]['Присоединенные файлы']) { /* у строки есть прикреплённый файл */ } +t.rows[0]['ЭДО'] === 'pic:1'; // подключён к 1С-ЭДО ('pic:0' = нет) +``` + +Колонки без текста в заголовке (одна иконка) тоже попадают в `columns`, именуются по тултипу заголовка или `'(picture)'` — служебное имя колонки 1С в браузер не передаёт. Картиночные значения — **только для чтения и ассертов**: отбирать/фильтровать строки по `'pic:N'` нельзя (фильтр по такому значению бросает понятную ошибку, расширенный поиск 1С такое поле не покажет). Для выбора строки фильтруйте по текстовой колонке; кликать по картиночной ячейке можно по индексу строки. + #### clickElement — клик по ячейке (spreadsheet или грид формы) Первый аргумент `clickElement` принимает объект `{ row, column }` вместо текста. Маршрутизация автоматическая: если на форме отрисован SpreadsheetDocument (отчёт) — кликаем туда (drill-down), иначе — по ячейке грида (табчасть, список). Параметр `table: 'ИмяГрида'` принудительно указывает грид, если на форме одновременно есть отчёт и таблицы.