[I128-2856] Метод ввода в табличном редакторе he3 не открывается по Enter


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.6 >> [I128-2856] Метод ввода в табличном редакторе he3 не открывается по Enter📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Исправление ошибок 2026.2.6 🔘 Завершено Средний Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль Cataloguer - АРМ Каталогизатор, ИРБИС 128. Модуль he3 - Табличная форма ввода данных

Завершено: 18.09.2026 08:58

Проблема:

В табличном редакторе he3 нажатие Enter начинало или завершало редактирование ячейки, но не открывало назначенное полю средство ввода. Для вызова справочника, многострочного ввода или окна подполей приходилось использовать мышь либо F2.

Решение:

Клавиша Enter открывает средство ввода выбранного поля или подполя, в том числе во время редактирования значения. В открываемое окно передаётся текущее значение. В раскрытом меню Enter выбирает пункт, в многострочном текстовом окне вставляет перевод строки; Ctrl+Enter применяет изменения окна. Для обычного текстового поля сохраняется стандартное редактирование ячейки.

Технические подробности:

В таблицах основного редактора, статических и динамических подполей добавлен локальный обработчик обычного Enter, вызывающий существующий метод ввода до стандартной обработки клавиши в ExtJS. Проверяются текущая ячейка, доступность редактора и состояние выпадающего списка. Обработчик удаляется вместе с таблицей. Изменение данных и настроек не требуется.


В табличном редакторе he3 Enter начинал или завершал редактирование ячейки, но не вызывал назначенное ей средство ввода. Исправление охватывает таблицу полей, статические и динамические подполя; сохраняет выбор пункта раскрытого меню, многострочный ввод и Ctrl+Enter. Jira: I128-2856, версия 2026.2.6.

Куда смотреть:

Изменения по файлам:

modules/he3/JS/he3.core.js

modules/he3/JS/SubfieldWindow.js

modules/he3/Help/FieldEditing.md

modules/he3/Help/Keyboard.md

modules/he3/Help/UserGuide.md, modules/he3/Help/Widgets.md

modules/he3/Help/Subfields.md

modules/he3/Help/img/I128-2856-enter-subfields.png, modules/he3/Help/img/I128-2856-enter-menu.png

modules/Help/Help/GeneralDescription/WhatsNew/I128/2026.2.6.md

modules/Help/Help/GeneralDescription/WhatsNew/I128/TaskInfo/I128-2856/README.md

Проверка: 26 сценариев Chrome, включая выбранные/редактируемые ячейки, меню, ComboBox, статические/динамические подполя, пустой текст, повторный вызов, readOnly/disabled, Ctrl+Enter, Shift+Enter, F2 и поиск поля. ComboBox проверен через штатный WidgetRegistry с тестовой схемой; динамическая схема получена через реальный EvaluateDynWss. Прошли проверка синтаксиса двух JS-файлов, PHP smoke выбора рабочего листа и проверка diff; Help отрисован, оба изображения загружены. Другие браузеры и полный набор внешних плагинов не проверялись.

Совместимость с develop (2026-09-18, commit 96add65aedf8ad9e9b715aca2068dd0636ba1699): регистрация afterrender вынесена из listeners основной таблицы и обеих таблиц подполей, а описание Enter в UserGuide выделено в отдельный абзац. Поведение Enter сохранено. Это устраняет пересечение с beforeedit и описанием удаления отмеченных повторений в develop.

Проверена полная цепочка: bugfix/I128-2856 → release/2026.2 (e402d81e4d2a59c87254ea3bd62fbd805d6bd332), затем полученный release → develop (b37caf8ba13b9aac77307550fa05fc6d895301e1). Оба пробных слияния прошли без конфликтов. Дерево второго слияния совпадает с проверенным в браузере.

Дополнительная проверка: 24 проверки Enter на исходной ветке и 371 проверка результата будущего слияния (Enter, команды редактора, разные настройки поля на вкладках, ограничения !0/!2, удаление отмеченных повторений и таблица повторений). Проверки прошли в Chrome с ExtJS 3.4 на изолированных тестовых данных, без сохранения записей в БД. Ошибок и предупреждений в консоли нет. Проверки синтаксиса JS, diff и PHP smoke выбора рабочего листа также прошли; неизменённый PHP проверен в полном локальном окружении.