НАЧАЛО >> Документация >> Руководство администратора >> Настройка формы проверки фонда📄 Скачать в DOCX
Специальный блок для конфигурации сервиса инвентаризации («Проверка фонда»).
checkFondDatabases)Позволяет ограничить инвентаризацию конкретными базами каталога.
ShowCheckFondForm (Страница «Проверка фонда») — поиск сканируемых штрих-кодов или инвентарных номеров и обновление данных в найденных экземплярах. Если не задан, используется БД по умолчанию.Complectator/ProvFondReport («Отчет о проверке фонда») — перебор указанных баз для формирования отчета о недостачах и проверенном фонде.|
Особенность поиска по нескольким БД: При сканировании в режиме проверки (
|
checkFondShelfSubField)Символ подполя, в которое будет записываться штрих-код полки (по умолчанию +).
ShowCheckFondForm — при сканировании полки её номер записывается в указанное подполе поля 910 найденного экземпляра.Complectator/ProvFondReport — используется для фильтрации результатов по конкретной полке при формировании отчета.checkFondUnifiedMode)Переключает интерфейс проверки фонда в современный режим. По умолчанию эта настройка отключена (значение 0), и используется классическая форма.
ShowCheckFondForm — меняет внешний вид формы ввода. При включении выводится одно большое текстовое поле для сканирования штрих-кодов полок и книг вперемешку, вместо классических раздельных полей.|
Обратите внимание: правила определения места хранения по полке ( |
|
Логика фиксации ФИО проверяющего и ведения истории проверки (настройки |
checkFondErrorSoundFreq)Тональность звукового сигнала при ошибке сканирования (по умолчанию 150).
ShowCheckFondForm — генерация звука через Web Audio API (форма волны sawtooth). Воспроизводится прямо в браузере, если сканируемая книга не найдена или произошла ошибка статуса. Загрузка дополнительных аудиофайлов на сервер не требуется.
Если указать значение 0 или отрицательное число, система автоматически применит значение по умолчанию (150 Гц).checkFondPlayErrorSound)Включает или выключает звуковые оповещения об ошибках при проверке фонда.
ShowCheckFondForm — задает первоначальное состояние кнопки управления звуком на странице. При этом пользователи могут вручную переключать звук в интерфейсе — их личный выбор сохранится в памяти браузера (localStorage под ключом checkFondPlayErrorSoundLocal) и будет иметь приоритет над системной настройкой.Маппинг полей библиографической записи (обычно поле 910 для экземпляров). Данный блок настроек напрямую влияет на логику обновления записи и формирование отчетов.
checkFondBarcodeSubfield)Символ подполя, содержащего штрих-код экземпляра (по умолчанию H).
ShowCheckFondForm — поиск библиографической записи и конкретного повторения поля экземпляра для обновления статуса.Complectator/ProvFondReport — поиск экземпляров, а также проверка выдачи читателям (поиск в БД RDR по штрих-коду).checkFondInvNumSubfield)Символ подполя, содержащего инвентарный номер экземпляра (по умолчанию B).
ShowCheckFondForm — альтернативный идентификатор для поиска записи и её обновления.Complectator/ProvFondReport — поиск экземпляров и проверка задолженностей в БД RDR.checkFondDateSubfield)Символ подполя, в которое записывается дата проверки (по умолчанию S).
ShowCheckFondForm — обновление данного подполя текущей датой сервера в формате Ymd (например, 20260415) при сканировании.Complectator/ProvFondReport — отбор проверенных и непроверенных экземпляров путем сравнения данного подполя с датой начала проверки, указанной в фильтре.checkFondUserSubfield)Символ подполя для записи ФИО сотрудника, проводившего инвентаризацию (по умолчанию ().
ShowCheckFondForm — при успешном сканировании заполняется ФИО текущего пользователя системы (берется из полей 10, 11, 12 профиля сотрудника, либо берется логин из 30^A при их отсутствии). В отчетах используется для отображения ответственного.checkFondMhrSubfield)Символ подполя, куда записывается подтвержденное место хранения (по умолчанию !).
ShowCheckFondForm — актуализация места хранения (полученного из правил полок или выбранного из списка) в записи экземпляра.Complectator/ProvFondReport — отбор экземпляров для отчета по месту хранения (при этом система также проверяет стандартные подполя D и d, что позволяет корректно учитывать еще не проверенный фонд).checkFondHistorySubfield)Символ подполя для хранения предыдущих дат проверок (по умолчанию )).
ShowCheckFondForm — в это подполе переносится старая дата проверки, инвентарный номер (если отсутствует, используется штрих-код) и ФИО проверявшего в формате инвентарь/дата/ФИО.
История сохраняется только в том случае, если у экземпляра уже была заполнена дата предыдущей проверки или ФИО проверявшего. При первичной проверке пустая история не создается.checkFondHistoryField)Метка поля (по умолчанию 9101), в которое полностью копируется поле экземпляра для сохранения истории.
ShowCheckFondForm — после актуализации данных о текущей проверке в поле 910, обновленное поле копируется в указанную метку (например, 9101). Добавление нового повторения происходит только если его содержимое отличается от последнего добавленного, что предотвращает дублирование идентичных исторических записей при случайном повторном сканировании.checkFondPriceSubfield)Символ подполя цены экземпляра (по умолчанию E).
ShowCheckFondForm — вывод цены в результатах на странице инвентаризации. Если цена в 910 поле отсутствует, система автоматически попытается подставить значение из поля 10^D библиографического описания.checkFondArchiveLimit)Количество последних сеансов сканирования, которые хранятся в архиве (по умолчанию 100).
Если указать значение 0 или отрицательное число, система проигнорирует его и применит лимит в 100 записей (сделать архив безлимитным или отключить его таким образом нельзя).
ShowCheckFondForm — автоматическая очистка старых сеансов из локальной БД ProvFondArchive.db при добавлении новых.Complectator/ProvFondArchive — ограничивает максимальное количество доступных для просмотра записей в архиве.shelfMhrRules)Позволяет задать диапазоны штрих-кодов полок и соответствующее им место хранения.
Список доступных мест хранения для правил подгружается из справочника mhr.mnu базы данных комплектования.
Сравнение диапазонов происходит по принципу сравнения строк, поэтому для корректной работы диапазонов важно соблюдать ведущие нули (например, от 00000010 до 09999999).
Complectator (функция GetMhrByShelf в api.php) — определение места хранения по штрих-коду полки.
Если диапазоны пересекаются, применяется первое совпавшее правило (порядок расположения правил имеет значение).ShowCheckFondForm — при включенной единой форме ввода автоматически подставляет место хранения по отсканированному штрих-коду полки, применяя найденное место ко всем последующим книгам до сканирования новой полки.|
Если отсканированный штрих-код полки не попадает ни в один из заданных диапазонов, система не распознает его как полку. Он будет обработан как штрих-код книги (что приведет к ошибке «ЗАПИСЬ НЕ НАЙДЕНА»), а все следующие за ним книги будут ошибочно привязаны к предыдущей распознанной полке (или вызовут ошибку, если полка еще не была задана). Также убедитесь, что диапазоны штрих-кодов полок не пересекаются с инвентарными номерами или штрих-кодами книг, иначе книга может быть ошибочно распознана как полка. |
Хотя большинство параметров гибко настраивается, некоторые поисковые алгоритмы проверки жестко зашиты в коде модуля. Для корректной работы сервиса убедитесь, что ваши поисковые словари (FST) в базах данных соответствуют следующим требованиям:
IN= (штрих-код) и B= (инвентарный номер). После нахождения записи обновляется то повторение поля 910, где значение совпало с настроенным подполем штрих-кода (checkFondBarcodeSubfield) или инвентарного номера (checkFondInvNumSubfield).NJ) система для полноты отображения пытается найти сводное описание журнала по префиксу I= (ищется шифр, указанный в поле 933 номера). Из найденной сводной записи извлекаются город (210^A) и первые сведения об ответственности (200^A), а год, том и номер берутся из самой записи экземпляра (934, 935, 936).IN= или B=, система выдаст ошибку «ЗАПИСЬ НЕ НАЙДЕНА». Если же запись найдена, но внутри неё нет повторения 910 поля с указанным штрих-кодом/инвентарным номером, ошибка будет детализирована как «НЕ НАЙДЕНО В ЭКЗЕМПЛЯРАХ».ProvFondReport) в электронном каталоге обязательно должен присутствовать поисковый индекс с префиксом MHR= (Место хранения). Без него отчет не сможет отбирать экземпляры проверяемого фонда. Для стабильной работы при больших объемах данных система извлекает и обрабатывает записи порциями по 5000 штук.MHR=, а затем отсеивает экземпляры с неподходящей полкой. При значительных объемах фонда в одном месте хранения это может требовать дополнительного времени (что объясняет системное увеличение лимита времени выполнения отчета до 10 минут).H= (по штрих-коду) и B= (по инвентарному номеру) среди выданной литературы. Название базы читателей берется из настроек модуля Bookland, а если не задано — по умолчанию используется БД RDR. Если книга числится выданной, но была найдена при проверке на полке, система сверяет дату выдачи (извлекается из подполей 40^D или 40^d записи читателя) с датой проверки. Если книга выдана в день проверки или позже, это не фиксируется как ошибка (так как книга могла быть отсканирована утром, а выдана читателю днем). Если дата выдачи отсутствует или имеет некорректный формат, система пометит такую книгу как ошибочную (найденную на полке). Имя читателя в отчете строится из полей 10, 11, 12, а при их отсутствии — из 30^A (иначе выводится «Неизвестный читатель» с указанием содержимого поля 30).40^D или 40^d система удаляет все нечисловые символы и берет первые 8 цифр. Для корректного сравнения дата в базе должна начинаться с года (в формате YYYYMMDD или YYYY.MM.DD). Использование форматов вида DD.MM.YYYY приведет к ошибкам валидации дат (в том числе к ложным срабатываниям об ошибках выдачи).40^H), но и с инвентарным номером читательского билета (40^B). Это предотвращает ложные ошибки, если при выдаче штрих-код был ошибочно занесен в подполе инвентарного номера. В случае полного отсутствия инвентарного номера и штрих-кода у самого издания, в отчете ему будет присвоен технический идентификатор Без номера.ProvFondReport) опирается на системный справочник ste.mnu и базовые коды статусов для выявления проблем: 0 (или пустое значение) — свободен/на полке, 1 — выдан читателю, 4 — утерян, 6 — списан. При проверке статусов в 910 поле система учитывает как заглавное подполе ^A, так и строчное ^a. Если справочник ste.mnu отсутствует или статус в нем не найден, пустой статус (или 0) будет отображен как «Свободен (на полке)», а неизвестный код — как «Статус N».ProvFondReport в формате CSV библиографическое описание (которое возвращается форматом brief) автоматически очищается от HTML-тегов (strip_tags) и HTML-сущностей, чтобы текст в Excel отображался без служебной разметки.trim()), а также игнорирует пустые строки. Это гарантирует бесперебойную работу при смешанном формате окончаний строк (Windows/Linux) в файлах ТСД.sawtooth).[DataPath]/SQLiteData/ProvFondArchive/ProvFondArchive.db. При необходимости его можно архивировать или удалять для полного сброса.PRAGMA journal_mode=WAL;), рядом с файлом ProvFondArchive.db будут автоматически создаваться временные файлы ProvFondArchive.db-wal и ProvFondArchive.db-shm. При ручном резервном копировании базы администратору необходимо копировать все три файла.AudioContext) при первом клике или нажатии любой клавиши на странице.ShowCheckFondForm.inc) и генерации отчетов (ProvFondReport.page) могут выполняться долго. Они принудительно увеличивают внутренний лимит выполнения PHP до 10 минут (ini_set('max_execution_time', 10 * 60);). Системному администратору нужно убедиться, что таймауты фронтенд-сервера (например, proxy_read_timeout в Nginx или TimeOut в Apache) также допускают ожидание ответа до 600 секунд, чтобы пользователи не сталкивались с ошибкой 504 Gateway Time-out..txt) обрабатывается путем прямого добавления его содержимого в конец списка, введенного в текстовое поле вручную, через перенос строки (\n). К нему применяются ровно те же правила разбора, что и к тексту в форме (включая работу режима единой формы).Для этой книги не была указана полка, что существенно экономит ресурсы сервера.Если в вашей библиотеке настроены другие префиксы для поисковых словарей, инвентаризация не сможет находить сканируемые записи.