Re: Задвоение инентарных номеров в книжной базе ЭК
Пользователь:
А. Роман (IP-адрес скрыт)
Дата: 28, September, 2021 16:37
Вообще странную конструкцию вам посоветовали. Может для других целей, т.к. она находит записи содержащие одинаковые повторения 910 поля целиком. Если хоть один символ будет отличаться, то уже запись не будет найдена. (v910^B+|, |)<>&uf('Pv910^B') даст результат по записям в которых повторяется инв. номер.
А вот если нужно отобрать все записи по БД, в которых есть инвентарные номера, дублетные как в пределах одной записи, так и находящиеся в разных записях, то подойдет условие: |910 val(&uf('J,IN='v910^B))>1
Оно для каждого повторения поля проверяет кол-во его вхождений в словаре инв. номер. Правда, если у вас есть записи с разными статусами экземпляров (например списанные, утерянные и числящиеся в библиотеке или выданными читателям) то вы такие инвентарные номера таким сценарием не найдете.
Нужно строить отдельный вид поиска по всем значениям инв. номеров безотносительно статуса экземпляров и только после проводить отбор таких записей сценарием |910 val(&uf('J,INALL='v910^B))>1 где INALL= префикс словаря со всеми значениями инв. номеров.
Может кто-нибудь подскажет сценарий проще?
При этом если на результатах такого поискового запроса построить статистику по инв. номерам, то форма построится гораздо быстрее, так как в нее не попадут в таком случае записи, содержащие несколько одинаковых повторений поля 910 инв. номера, которые встречаются только единожды в БД.
Если бы вы работали с ИРБИС-Турбо то и изначальная форма статистики по всей БД без отбора записей построилась бы ощутимо быстрее и не пришлось бы огород городить.
Редактировано 1 раз. Последний раз 28.09.2021 16:38 пользователем А. Роман.