НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.3 >> [I128-2468] Database/GetMnuDescByKey повторно читает MNU при множественных обращениях в одном запросе📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Исправление ошибок | 2026.2.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: ИРБИС 128. Модуль Database - Управление базами данных
Завершено: 29.06.2026 13:48
1. Проблема
При множественных вызовах Database::GetMnuDescByKey() в рамках одного запроса одно и то же MNUменю читается и разбирается повторно. Такие вызовы есть, например, в форматах и Uniforкомандах, где описание ключей меню может запрашиваться много раз при обработке записей. Это может замедлять построение выдачи и увеличивать риск таймаутов на страницах с большим числом форматируемых записей.
1. Причина
Результат поиска описания по связке база + имя меню + ключ + режим чувствительности к регистру + значение по умолчанию не кешировался внутри запроса.
1. Исправление
Добавлен локальный static-cache внутри GetMnuDescByKey. Повторные обращения с теми же параметрами возвращают уже найденное значение, включая fallback defval, если ключ не найден. Пользовательская логика поиска описания не меняется.
1. Документация
Изменение документации не требуется: исправляется внутренняя производительность без изменения пользовательского сценария.