Отсутствие валидации: Метод fe_AutoBron пытался получить доступ к базе данных (GetDb) по значению из подполя 1^* без предварительной проверки. Если поле было пустым, это приводило к логическим сбоям.
Ненадежная обработка связей: В цикле по полю 902 (связанные записи) отсутствовала проверка подполя ^@. Пустые значения вызывали ошибки при попытках поиска записей в «пустой» базе данных.
Типизация данных: Использование базового метода GetSubField не гарантировало получение строки, что критично для имен баз данных.
Решение:
Внедрена проверка: если поле 1^* пустое, выполнение экшена прекращается с вызовом declineRqst и возвратом ошибки «Поле 1 с именем БД пустое».
Добавлено условие if($v902db!=''), которое отсеивает некорректные или пустые ссылки на другие базы данных в поле 902.
Вызовы получения данных заменены на GetSubFieldStr, что обеспечивает корректную работу со строковыми идентификаторами БД.
1. Связанные задачи
1.1. 🔗 blocks: ETDR-95
[ETDR-95] не отрабатывает автобронирование
Статус: Готово | Автор: Галина Арноси