НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2851] в редакторе he3 (табличный) при корректировки записи если добавить новое поле то формат просмотра не обновляется. но если корректировать существующие, то обновляется📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Исправление ошибок | 2026.3 | 🔘 Завершено |
Высокий | Ilya Mikhaylenko |
Компоненты: ИРБИС 128. Модуль Cataloguer - АРМ Каталогизатор, ИРБИС 128. Модуль he3 - Табличная форма ввода данных
Завершено: 10.09.2026 12:59
Исправлено в PR #1345: https://bitbucket.irbis128.ru/projects/I128/repos/irbis128/pull-requests/1345
Проблема: В табличном редакторе he3 после добавления нового поля предпросмотр мог не обновиться, хотя редактирование уже существующих полей обновляло формат просмотра.
Причина: Добавление нового поля создавало дополнительную раннюю синхронизацию черновика до ввода значения. При пересечении UpdateDraft второй sync мог использовать устаревшую currentVersion. Дополнительно refreshPreview не был защищен от вызова до render preview-панели, а прямой he3/Show создавал редактор без Ext.Viewport.
Решение:
Проверка:
Примечание: php -l modules\he3\Actions\Show.inc локально не выполнен, так как php отсутствует в PATH.
-
I1282851 (Jira: https://jira.irbis128.ru/browse/I1282851) исправляет обновление предпросмотра в табличном редакторе he3 после добавления нового поля.
Куда смотреть:
he3 -> Добавить поле -> выбрать отсутствующее поле -> ввести значение в появившуюся строку. Было: для нового поля мог не обновиться формат просмотра, хотя редактирование существующих полей обновляло preview. Стало: обновления черновика сериализуются, PreviewDraft вызывается после финального UpdateDraft, и новое поле появляется в preview.?id=WIrbis&action=he3/Show&dbName=IBIS&mfn=4: подтверждено, что standalone-страница теперь рендерит toolbar, вкладки и preview через Ext.Viewport.editorType=he3; запись/рабочий лист, где есть поле, отсутствующее на текущих вкладках и доступное через default.ws.UpdateDraft -> PreviewDraft.develop; origin/release/2026.3 на момент работы отсутствовала.Изменения по файлам:
modules/he3/JS/he3.core.js
syncDraft: если UpdateDraft уже выполняется, следующий sync откладывается и отправляется после ответа первого запроса с обновленной currentVersion.syncDraft(callback) выполняются после финального queued sync, чтобы последующие действия использовали последнюю версию черновика.refreshPreview() теперь откладывает обновление до afterrender preview-панели, если panel/body еще не готовы.modules/he3/JS/AddFieldWindow.js
, включая временную вкладкуЗагрузка...`.settings и storage.modules/he3/Actions/Show.inc
he3/Show теперь рендерит Irbis.he3.Editor через Ext.Viewport.Проверки:
node --check modules\he3\JS\AddFieldWindow.js.node --check modules\he3\JS\he3.core.js.git diff ~~-check без ошибок; только штатные предупреждения Git о будущей CRLF~~нормализации.110 добавлен через реальный AddFieldWindow и cell editor; marker попал в recordData.Content["110"]("110"), прошел UpdateDraft version=1 -> version=2, затем PreviewDraft, preview содержит marker.UpdateDraft; второй sync ушел после него с новой версией (2 -> 3 -> 4), итоговый preview содержит только последнее значение.php -l modules\he3\Actions\Show.inc не выполнен: php отсутствует в PATH локального окружения.