НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2870] Complectator/ProvFondReport учитывает не все проверенные экземпляры фонда📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Исправление ошибок | 2026.3 | 🔘 Завершено |
Средний | Unassigned |
Компоненты: ИРБИС 128. Модуль Complectator - АРМ Комплектатор
Завершено: 14.09.2026 14:27
Проблема обнаружена при разборе IBK-484.
Симптом В отчете Complectator/ProvFondReport отображаются не все проверенные записи и экземпляры фонда. На больших базах в результатах проверки ожидаются десятки и сотни тысяч записей/экземпляров, но отчет может останавливаться после первой неполной порции.
Причина Страница запрашивает найденные записи порциями по 5000, но провайдер DPIrbis64Direct может внутренне ограничивать размер возвращаемой порции параметром MAXPOSTINGSINPACKETWITHFORMAT. При возврате, например, 2000 записей старый цикл считал выборку завершенной, потому что сравнивал фактически полученное количество с запрошенным лимитом 5000.
Дополнительно отчет строил первичную выборку только по MHR=. Проверка фонда сохраняет фактическое место хранения в настраиваемое подполе checkFondMhrSubfield, для которого используется индекс INPF=. Из-за этого уже проверенные экземпляры могли не попадать в первичную выборку, если их фактическое место хранения не индексировалось через MHR=.
Ожидаемое поведение ProvFondReport должен дочитывать всю найденную выборку независимо от внутреннего ограничения провайдера и учитывать экземпляры, найденные как по MHR=, так и по INPF=, без дублирования записей.
Решение Исправить постраничное чтение в ProvFondReport: увеличивать смещение на фактически полученное число записей и останавливаться только после достижения общего количества найденных записей. Расширить поисковое выражение места хранения на MHR= + INPF= и дедублировать MFN, найденные по обоим префиксам. Обновить справку администратора по индексам MHR=/INPF= и большим выборкам.
Связь с IBK
Задача закрывает upstreamпричину проблемы, выявленной в IBK484.
-
I1282870 (Jira: https://jira.irbis128.ru/browse/I1282870) исправляет неполную выдачу отчета Complectator/ProvFondReport на больших выборках проверенных экземпляров.
Куда смотреть:
Complectator/ProvFondReport по месту хранения на базе с десятками/сотнями тысяч найденных записей и экземпляров.5000, но при внутреннем ограничении провайдера DP_Irbis64Direct фактически могла получить меньшую порцию и ошибочно завершить цикл.MHR= до MHR= + INPF=, чтобы учитывать фактическое место хранения из checkFondMhrSubfield; записи, найденные по обоим префиксам, дедублируются по MFN.Изменения по файлам:
modules/Complectator/Pages/ProvFondReport.page
MHR= и INPF=.modules/Complectator/Help/AdminGuide/CheckFondForm.md
INPF=.Проверки:
C:\i128\instances\irbis128.local\php\php.exe -l modules\Complectator\Pages\ProvFondReport.page.git diff ~~-check -~~ modules/Complectator/Pages/ProvFondReport.page modules/Complectator/Help/AdminGuide/CheckFondForm.md без ошибок; Git вывел только штатное предупреждение о будущей CRLF-нормализации Help.[IBK-484] Инвентаризация
Статус: Готово | Автор: Ирина Михайленко