mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-16 07:45:17 +03:00
feat(form-decompile,form-compile): KeyType/KeyField набора динамического списка (запросный список)
Запросный динамический список (без MainTable) задаёт ключ набора: <KeyType> (FieldValue/RowKey/RowNumber) + <KeyField>* (0+ полей) — после Parameter*, до MainTable. Декомпилятор не ловил → терялось (21 форма, напр. ВыборПрисоединенногоФайла). DSL: settings.keyType (строка-enum) + settings.keyFields (массив). Взаимоисключающи с mainTable (запросный список vs таблично-ориентированный — 1С: KeyField+MainTable ломает пути данных списка). Декомпилятор: захват KeyType + всех KeyField; компилятор (ps1+py): эмит после Emit-DLParameters, до MainTable (позиция из корпус-сигнатур). Выборка 22 формы: match 17/22, KeyType/KeyField-потерь 0 (остаток — др. кластеры: CheckBox ItemWidth, order-use, SearchControlAddition, empty-right), регрессий 0. Регресс 43/43, ps1==py. Cert: corpus round-trip (запросные списки — 22 shipped-формы грузятся; синтетический кейс = полный query-based список с Table, непропорционально для verbatim 2-тег; MainTable+KeyField несовместимы → к dynamic-list-form не добавить). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -936,7 +936,9 @@ Forgiving-синонимы типа: XML-имя (`SpreadSheetDocumentField`) и
|
||||
|
||||
| Ключ | Тип | Описание |
|
||||
|------|-----|----------|
|
||||
| `mainTable` | string | Основная таблица. Принимает рус-имена метаданных (`Справочник.X` → `Catalog.X`) |
|
||||
| `mainTable` | string | Основная таблица. Принимает рус-имена метаданных (`Справочник.X` → `Catalog.X`). Взаимоисключающа с `keyType`/`keyFields` (таблично-ориентированный список vs запросный) |
|
||||
| `keyType` | string | Тип ключа набора запросного списка (без `mainTable`): `FieldValue` / `RowKey` / `RowNumber` |
|
||||
| `keyFields` | array | Поля ключа набора (`<KeyField>`, 0+) — для запросного списка без `mainTable`. Эмитятся после параметров |
|
||||
| `autoSaveUserSettings` | bool | Авто-сохранение пользовательских настроек дин-списка (`<AutoSaveUserSettings>`, после `MainTable`). **Умолчание `true`** — указывать только для отключения (`false`) |
|
||||
| `query` | string | Текст запроса (`ManualQuery=true`). Поддерживает `@file.sql` (путь относительно JSON) |
|
||||
| `dynamicDataRead` | bool | Динамическое считывание. **Умолчание `true`** — указывать только для отключения (`false`) |
|
||||
|
||||
Reference in New Issue
Block a user