
Nick ShirokovandClaude Opus 4.8
bc81faf892
feat(form-decompile,form-compile): суппресс авто-вывода (MainAttribute/SavedData/AutoTitle) + AutoFillAvailableFields + SaveWindowSettings
Раундтрип TOTAL 40→25, match 138→146. Три класса «компилятор додумывает на
main/titled формах» (декомпилятор не давал суппресс-маркера) + два непокрытых свойства.
- MainAttribute: эвристика 11b.3 (нет явного main + ровно 1 объектный реквизит
→ помечает main). Декомпилятор зеркалит условие → ставит main:false (компилятор
уже исключает такие кандидаты). Объектные реквизиты часто НЕ main (DynamicList
1207 без, RecordSet 226 без, и т.д.). Decompiler-only.
- SavedData: эвристика $mainSaved (main + Catalog/Document/ChartOf*/ExchangePlan/
BusinessProcess/Task Object + RecordManager → SavedData=true). Часто отсутствует
(DocumentObject 332 без = 23%). Компилятор: явный savedData:false побеждает;
декомпилятор ставит savedData:false для main-реквизита saved-типа без <SavedData>.
- AutoTitle: компилятор инъектит false при наличии title (~95% форм). Редкие 5%
(Title есть, AutoTitle нет) → декомпилятор ставит autoTitle:"", компилятор
пропускает пустую строку в Emit-Properties (общий ""-суппресс).
- AutoFillAvailableFields: свойство <Settings> дин-списка (дефолт true, эмит только
отклонение false; ключ settings.autoFillAvailableFields).
- SaveWindowSettings: форменный bool (KNOWN_FORM_PROPS + auto-PascalCase).
Зеркало py (компилятор). Кейс dynamic-list-form +saveWindowSettings (сертифицирован).
Формы ЗадачаИсполнителя/Дополнительно, БизнесСеть/*, АнализПравДоступа → чисто.
Регресс 39/39 в обоих рантаймах.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 13:07:38 +03:00
..
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-04-25 13:35:44 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-04-25 13:29:20 +03:00
2026-04-25 15:26:54 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-08 12:16:44 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-08 12:16:44 +03:00
2026-05-07 15:30:06 +03:00
2026-05-08 12:16:44 +03:00
2026-06-09 13:07:38 +03:00
2026-06-09 13:07:38 +03:00
2026-06-08 13:16:12 +03:00
2026-05-07 15:30:06 +03:00
2026-05-03 20:10:10 +03:00
2026-05-08 12:16:44 +03:00
2026-06-08 13:16:12 +03:00
2026-05-08 12:16:44 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-11 13:47:50 +03:00
2026-05-07 15:30:06 +03:00
2026-06-01 15:40:17 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-06-04 12:26:57 +03:00
2026-06-01 16:12:50 +03:00
2026-06-04 12:26:57 +03:00
2026-06-03 22:11:48 +03:00
2026-05-23 21:30:26 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-08 12:16:44 +03:00
2026-05-08 12:16:44 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-05-07 15:30:06 +03:00
2026-06-02 20:07:09 +03:00
2026-05-07 15:30:06 +03:00
2026-03-09 14:58:49 +03:00