НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2853] Закрытые поля в табличном редакторе he3 недоступны для ручной правки📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Исправление ошибок | 2026.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: ИРБИС 128. Модуль he3 - Табличная форма ввода данных
Завершено: 18.09.2026 08:11
Проблема: В табличном редакторе he3 закрытые поля из рабочих листов могли оставаться доступными для ручной правки строкового значения.
Решение:
Редактор учитывает признак запрета ручного ввода для методов ввода с префиксом !: значение нельзя корректировать как обычную строку, но доступный инструмент ввода остается рабочим.
Технические подробности:
Схема WS/WSS передает отдельный признак запрета ручного текстового редактирования, включая случаи strongservice, а клиентские редакторы применяют его для основных полей, подполей и динамических WSS-структур.
Одно поле на разных вкладках: Значения и повторения поля общие, но способ ввода, меню, рабочий лист подполей и ограничения сохраняются отдельно для каждой вкладки. Добавление повторений и разбиение многострочного значения больше не переносят настройки активной вкладки на остальные. Кэш редакторов учитывает конфигурацию поля и не снимает запрет ручного ввода при переходе между строками.
-
I1282853: табличный редактор he3 соблюдает ограничения редактор и список файлов), в том числе с префиксом !InMode в WS/WSS. !0 полностью запрещает работу с полем, а ненулевые методы (!5, !2 и другие) запрещают только строковую корректировку, сохраняя указанный метод ввода. Динамические WSS также поддерживают методы 128001/128002 (HTML!. Целевая ветка: develop.
Куда смотреть:
?id=WIrbis&action=he3/Show&dbName=IBIS&mfn=8, вкладка Технология, поле 907 (!0); ?id=WIrbis&action=he3/Show&dbName=EVENT&wsName=event.ws&mfn=0, вкладка Технология, поля 903 (!0) и 953 (!5). Используются штатные рабочие листы, дополнительных настроек не требуется.!5/!2, но оставляла добавление и удаление повторений для !0. Стало: при !0 не открываются строковый редактор и средства ввода, номер повторения не является ссылкой добавления, изменение повторений запрещено. При !5/!2 доступны trigger/F2 и применение результата метода ввода; ручной набор, вставка даты, изменение регистра и раскладки заблокированы.907 (!0) клик по номеру, Ctrl+Down/Up/Delete, F2, Enter, F7, Alt+L, Alt+F6 не изменили данные или количество строк и не открыли редактор. На 953 (!5) ручной ввод запрещен, реальный F2 открыл WSS с 4 подполями; окно проверено по снимку экрана. API динамической WSS подтвердил разные ограничения для !0, !2, !5. Записи в базе и рабочие листы при проверке не изменялись.128001, !128001, 128002, !128002 проверены схема API и открытие настоящих окон. В !128001 текст введен клавиатурой через HTML-редактор и сохранился после пересчета WSS; в !128002 проверено добавление тестового результата загрузки к существующему списку, без отправки файла на сервер. Префикс ! сохраняет запрет строки, но не блокирует средство ввода.?id=Help/Show&m=he3/WsWssSetup.Изменения по файлам:
modules/he3/classes/FieldSchema.php
textEditLocked для запрета ручной корректировки строки; readonly обозначает полный запрет редактирования.modules/he3/classes/WsParser.php
!, учитывает нормализованный признак strongservice и сохраняет выбор виджета.textEditLocked при любом !InMode; readonly устанавливается только для !0, поэтому ненулевые методы продолжают работать.modules/he3/Actions/GetSchema.inc
textEditLocked=false.modules/he3/Actions/EvaluateDynWss.inc
inMode и те же раздельные признаки запрета строки и полного запрета.128001 => sidtexteditor и 128002 => sidfilelist, как в статической WSS. Приоритет зарегистрированных плагинов сохранен.modules/he3/JS/he3.core.js
inMode/readonly/textEditLocked передаются в основной grid и inline WSS. При добавлении повторений и разбиении многострочного значения каждая вкладка сохраняет собственные настройки поля: метод ввода, меню/WSS, повторяемость, подсказки и ограничения. Между вкладками синхронизируются значения и номера повторений.develop также учитывает !0: отметка недоступна, закрытые поля исключаются из удаления даже при устаревшей отметке. Для !2 удаление повторений разрешено.!2, а полный запрет не отключает инструмент у разрешенной строки.Ctrl+Down/Up привязаны к существующим обработчикам операций повторений.modules/he3/JS/SubfieldWindow.js
!0 проверяется перед редактированием и вызовом метода.modules/he3/JS/AddFieldWindow.js
default.ws сохраняются inMode/readonly/textEditLocked.modules/he3/Help/WsWssSetup.md
!0 и ненулевыми !InMode, операции повторений и ограничения горячих клавиш; описаны методы 128001/128002 в динамических WSS.modules/he3/tests/edit*policy*schema_smoke.php
!InMode и нормализованным strongservice, без подключения к базе.modules/he3/tests/dynamic*wss*schema_smoke.php
! и без него, включая приоритет плагинов для 128001/128002.128001 обычным текстовым полем; после исправления проходит.modules/he3/tests/edit*policy*browser_smoke.js
await Irbis.he3.testEditPolicy().! и без него, вызовы через F2/trigger и отсутствие дублирования пути файла.modules/he3/tests/tab*field*settings_smoke.js
await Irbis.he3.testTabFieldSettings(). Проверено 194 условия для одного поля с разными настройками на шести вкладках и отдельного поля на седьмой; серверное сохранение отключено.!0/!2/!5, порядок и общие значения повторений, отмена/повтор, массовое удаление и смена политики в кэше редактора.dff1246cf тест воспроизводил четыре группы ошибок: обе вставки, разбиение текста и повторное использование редактора. После исправления все проверки проходят, ошибок консоли нет.WsWssSetup.md разъясняет: значения поля общие, настройки вкладок независимы; изменение через разрешенную вкладку отображается и на вкладке с !0.Проверки:
origin/develop успешны.develop: 18 проверок WsParser, 80 проверок динамической WSS, 50 браузерных проверок политики редактирования и 28 проверок массового удаления — успешно. Дополнительные сценарии проверяют защиту !0, устаревшие отметки и совместное удаление разрешенных полей; до исправления проверка отметки закрытого поля воспроизводила ошибку.