[I128-2468] Database/GetMnuDescByKey повторно читает MNU при множественных обращениях в одном запросе


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте 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. Документация

Изменение документации не требуется: исправляется внутренняя производительность без изменения пользовательского сценария.