[I128-2378] Ошибка обработки пустых значений БД


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.1.2 >> [I128-2378] Ошибка обработки пустых значений БД📄 Скачать в DOCX


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

Компоненты: ИРБИС 128. Модуль RQST - Подсистема заказа изданий

Завершено: 05.06.2026 10:53

Проблема:

  1. Отсутствие валидации: Метод fe_AutoBron пытался получить доступ к базе данных (GetDb) по значению из подполя 1^* без предварительной проверки. Если поле было пустым, это приводило к логическим сбоям.
  2. Ненадежная обработка связей: В цикле по полю 902 (связанные записи) отсутствовала проверка подполя ^@. Пустые значения вызывали ошибки при попытках поиска записей в «пустой» базе данных.
  3. Типизация данных: Использование базового метода GetSubField не гарантировало получение строки, что критично для имен баз данных.

Решение:

  1. Внедрена проверка: если поле 1^* пустое, выполнение экшена прекращается с вызовом declineRqst и возвратом ошибки «Поле 1 с именем БД пустое».
  2. Добавлено условие if($v902db!=''), которое отсеивает некорректные или пустые ссылки на другие базы данных в поле 902.
  3. Вызовы получения данных заменены на GetSubFieldStr, что обеспечивает корректную работу со строковыми идентификаторами БД.

1. Связанные задачи

1.1. 🔗 blocks: ETDR-95

[ETDR-95] не отрабатывает автобронирование Статус: Готово | Автор: Галина Арноси