Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Форматирование документа из другой БД
Пользователь: RomanA (IP-адрес скрыт)
Дата: 13, January, 2012 09:37

В нашей библиотеке при доработке книг выданных без ЭК каким-то непостижимым образом меняют поле 903 (шифр документа) для тех книг, которые находятся на руках.

Так как это происходит не для всех дорабатываемых книг, обнаружить данную ситуацию удалось только сейчас. Она создат проблему: при расчете статистики книговыдачи из-за этого иногда теряются экземпляры.

В частности на этом фрагменте:

&uf('D',v40^g,|,!I=|v40^a|!,if p(v60) then v60 else if v920:'NJ'then ref(L("I="v933),if p(v60) then v60 else '*' fi,)else '*' fi,fi,/|),

идет потеря экземпляров из-за того, что в БД каталога не находится соответствующий шифр.

Можно ли сделать так, чтобы в случае, если не удалось найти документ по шифру, осуществлялся бы поиск по инвентарному номеру? Это сведет к минимуму вероятность возникновения ошибки.

Я пытался модифицировать вызов функции &uf('D'), изменив выделенный фрагмент первоначального кода:

&uf('D',v40^g,|,if &uf('D',v40^g,|,!I=|v40^a|!,v910/|)<>'' then '!I=|v40^a|!' else '!IN=|v40^b|!' fi,if p(v60) then v60 else if v920:'NJ'then ref(L("I="v933),if p(v60) then v60 else '*' fi,) else '*' fi,fi,/|),

но тут или я допустил ошибку, или такое невозможно в принципе.



Редактировано 1 раз. Последний раз 13.01.2012 09:38 пользователем RomanA.

Re: Форматирование документа из другой БД
Пользователь: Gena (IP-адрес скрыт)
Дата: 13, January, 2012 11:03

Роман, я бы на вашем месте в первую очередь задумался не о методах доработки статистики, а о тех последствиях, к которым приведут такие изменения шифра. Шифр или не должен меняться, или должен меняться одновременно и в БД ЭК и в БД Читателей. Иначе у вас начнутся большие проблемы при возвратах. Как минимум у вас будут сниматься с читателя книги, а статусы на экземплярах оставаться "1". Думаю, вам стоит сделать доработку вашего DBNFLC.PFT, что бы при изменении шифра документа происходила проверка, не выданны ли экземпляры. И если экземпляры выданы - то ни в коем случае не давать изменить шифры.

Re: Форматирование документа из другой БД
Пользователь: RomanA (IP-адрес скрыт)
Дата: 13, January, 2012 12:28

В том-то и дело, что проверка идёт! Лично я как не пытался так и не смог изменить шифр выданной книги. Но как-то ведь умудряются...

Про статусы "1" остающихся при вовзрате - чистейшая правда. Приходилось редактировать через контроль системы книговыдачи. Сам долго искал причину, пока сегодня утром не стал разбираться почему статистика на разных формах разная.



Редактировано 1 раз. Последний раз 13.01.2012 12:28 пользователем RomanA.

Re: Форматирование документа из другой БД
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 13, January, 2012 12:38

RomanA написал(а):
-------------------------------------------------------
> В том-то и дело, что проверка идёт! Лично я как не
> пытался так и не смог изменить шифр выданной
> книги. Но как-то ведь умудряются...

Можно, например, глобальной корректурой - ФЛК работает только при сохранении записи уже после ее изменения

>
> Про статусы "1" остающихся при вовзрате -
> чистейшая правда. Приходилось редактировать через
> контроль системы книговыдачи. Сам долго искал
> причину, пока сегодня утром не стал разбираться
> почему статистика на разных формах разная.

Re: Форматирование документа из другой БД
Пользователь: RomanA (IP-адрес скрыт)
Дата: 16, January, 2012 07:09

Глобальной корректировкой сам я шифр никогда не менял. А другие сотрудники вряд ли это смогут сделать. Возник вопрос: если я глобальной корректировкой меняю какое-нибудь другое поле, шифр может измениться?

Я тестировал и глобальной (менял 60-е поле) и по словарю (место хранения), но шифр не менялся.

Re: Форматирование документа из другой БД
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 16, January, 2012 11:35

RomanA написал(а):
-------------------------------------------------------
> Глобальной корректировкой сам я шифр никогда не
> менял. А другие сотрудники вряд ли это смогут
> сделать. Возник вопрос: если я глобальной
> корректировкой меняю какое-нибудь другое поле,
> шифр может измениться?
>
Да, в том случае, если
1. нет выданных экземпляров
2. шифр начинается с дефиса (-), а в записи есть поля v906, v686, v621 или v675, это означает, что во время предыдущего(их) сохранения(й) записи и создания шифра эти классификационные индексы не были введены в документ (или были выданные экз-ры) и поэтому не вошли в шифр, а в теперешном состоянии документа строится полноценный шифр

> Я тестировал и глобальной (менял 60-е поле) и по
> словарю (место хранения), но шифр не менялся.

Re: Форматирование документа из другой БД
Пользователь: RomanA (IP-адрес скрыт)
Дата: 18, January, 2012 11:07

Ни одно из условий выполнено не было.

Но, по крайней мере одну из причин изменения шифра я нашел. Вот что происходило:

В ЭК была книга с одним экземпляром, у которого был инвентарный номер 481497. В библиотеке была выдана точно такая же книга, но с инвентарным номером 448428. Так как в базе книги с таким номером не было (а на выдаче из-за недостатка времени проверяют только по номеру), то в выдаче без ЭК ввели ввели данные о книге.

На следующий день, когда обрабатывали введенное без ЭК, обнаружили, что введенная вчера книга уже существует. Тогда ее удалили, а данные об экземплярах скопировали в первую книгу.

Таким образом, получилось что шифр в БД ЭК по которому выдавалась книга вообще исчез.



Редактировано 1 раз. Последний раз 18.01.2012 11:08 пользователем RomanA.

Re: Форматирование документа из другой БД
Пользователь: Gena (IP-адрес скрыт)
Дата: 18, January, 2012 11:12

Очень странно. Я думал ФЛК не даст удалить книгу, у которой есть выданные экземпляры

Re: Форматирование документа из другой БД
Пользователь: RomanA (IP-адрес скрыт)
Дата: 18, January, 2012 11:25

Немного ошибся: они нажимали кнопку "Очистить" и прописывали туда что-то новое.

Re: Форматирование документа из другой БД
Пользователь: Gena (IP-адрес скрыт)
Дата: 18, January, 2012 11:50

Ну... Вообще-то есть возможность проверять даже очищенную запись на наличие в старой ее копии определенных данных

ref(mfn, ....)

Вот это вывидит не измененные данные в записи, а данные до редактирования. Таким образом нечто типа

if rsum(ref(mfn, (if p(v910) then if v910^a='1' then '1,' fi fi)) )>0 then '2Запрещено удалять книгу! Есть выданные экземпляры!' fi


Формат писал по памяти, могут быть погрешности. И я не помню номер непреодалимого запрета, это надо в ФЛК посмотреть.

Re: Форматирование документа из другой БД
Пользователь: RomanA (IP-адрес скрыт)
Дата: 19, January, 2012 05:26

Спасибо большое! Вставим проверку! :)



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.