НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.6 >> [I128-2789] he3: новая запись сохраняется без default-полей рабочего листа📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Исправление ошибок | 2026.2.6 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: ИРБИС 128. Модуль he3 - Табличная форма ввода данных
Завершено: 04.09.2026 17:54
В новом редакторе he3 создание новой записи может сформировать черновик без default-полей разрешенного рабочего листа. Из-за этого после сохранения запись остается без признака типа рабочего листа, например без поля 920, и затем просмотр или повторное открытие записи выглядит пустым или некорректным.
При создании новой записи he3 должен разрешать рабочий лист так же, как при открытии схемы, и сразу применять default-значения этого рабочего листа к начальному черновику. При сохранении новой записи default-значения должны быть применены повторно без перезаписи уже введенных пользователем данных.
DraftService::initDraft() для новых записей создает пустую запись, разрешает рабочий лист через WS::ResolveEditorWsName() и записывает default-значения WS в начальные данные draft.CommitDraft перед сохранением новой записи повторно применяет default-значения resolved WS и затем выполняет storage bindings.draftId, чтобы не затрагивать другие черновики с mfn=0.modules/he3/tests/resolve_ws_name_smoke.php расширен проверкой default-поля в новом draft.InitDraft.inc, CommitDraft.inc, DraftService.php, resolve_ws_name_smoke.php.git diff --check.Клиентское проявление отслеживается связанной задачей RSL-27.
I128-2789 исправляет создание новой записи в he3: черновик должен сразу получать default-значения разрешенного рабочего листа, а commit должен сохранять новую запись с этими default-полями.
Проблема: новая запись могла сохраняться без признака типа рабочего листа, например без поля 920, после чего просмотр или повторное открытие записи выглядели пустыми/некорректными.
Изменения:
DraftService::initDraft() для новых записей разрешает рабочий лист и закладывает default-значения WS в начальный draft.CommitDraft повторно применяет default-значения WS перед сохранением новой записи без перезаписи уже введенных значений.draftId, а не все drafts mfn=0 в базе.920=PAZK.Проверки:
InitDraft.inc, CommitDraft.inc, DraftService.php, resolve_ws_name_smoke.php.git diff --check: OK.Jira:
Исправление перенесено из develop в рабочую ветку выпуска. При переносе сохранены контракты release/2026.2: выбранный рабочий лист передаётся при создании и сохранении черновика, его значения по умолчанию применяются только к новым записям и не заменяют введённые значения. После успешного сохранения удаляется только текущий новый черновик; соседние черновики сохраняются. Механизм storage bindings из develop в релизную ветку не переносился.
Проверка выпуска подтвердила выбор рабочих листов для IBIS, ATHRA и IBIS64_TEST, поле 920=PAZK в новом черновике IBIS, сохранность соседнего черновика, применение default-полей перед сохранением и сохранение черновика при ошибке провайдера. Проверочные черновики использовали отдельное временное SQLite-хранилище.