Уважаемые коллеги! В своей работе постоянно приходится сталкиваться с рядом механических ошибок, которые допускают операторы при росписи статей. В этой теме я хочу выложить некоторые наработки, помогающие автоматически отлавливать многие ошибки и недочеты. Все наработки были сделаны для Ирбиса 32 2006.1, но в дальнейшем нормально применялись для Ирбиса 64 2009.1 Контроль всей записи в целом осуществляется с помощью формата DBNFLC.PFT, который находится в директории базы данных. ФЛК может выдавать сообщения трех типов:
начинающихся на 0 - ошибки нет
начинающихся на 1 - ошибка критическая, сохранение недопускается до устранения ошибки
начинающихся на 2 - ошибка не критическая, пользователь информируется о ее наличии и разрешается сохранение и дальнейшая работа.
Свои изменения я вносил в файл DBNFLC.PFT в самый его конец, дабы не нарушить работу базовых форматов.
1. В нашей библиотеке было принято решение о том, что между инициалами пробелов быть не должно. Так как на просмотре это далеко не всегда видно, был добавлен следующий формат, который информирует о наличии пробела после точки в инициалах в полях 700 и 701:
(if p(v700) then
if v700^b:'. ' then
'2 Первый автор: в инициалах после точки пробел! ('
'['v700^b']'
fi,/
if v700^b.1=' ' then
'2 Первый автор: перед инициалами пробел! ('
'['v700^b']'
fi,/
if v700^a.1=' ' then
'2 Первый автор: перед фамилией пробел! ('
'['v700^a']'
fi,/
fi),
&uf('s0'),
(if p(v701) then &uf('s1')
if v701^b:'. ' then
'2 Другие авторы: в инициалах после точки пробел! (' &uf('s1a'), '. - '
'['v701^b'])'
fi,/
if v701^b.1=' ' then
'2 Другие авторы: перед инициалами пробел! (' &uf('s1a'), '. - '
'['v701^b'])'
fi,/
if v701^a.1=' ' then
'2 Другие авторы: перед фамилией пробел! ('&uf('s1a'), '. - '
'['v701^a'])'
fi,/
fi/),
2. Следующий формат отлавливает в заглавиях статей лишнии пробелы и сообщает в каких именно метсах они находятся
if v200^a.1 =' ' then
'2 Заглавие статьи начинается с пробела!'
fi,/
if v200^a :' ( ' then
'2 В заглавии статьи скобка с пробелами с двух сторон!'
fi,/
if v200^a :' ' then
'2 Заглавие статьи содержит двойные пробелы!'
fi/
3. А это дополнение помогает отслеживать разночтения заглавия статьи в записи на статью и в оглавлении журнала. Такое часто бывает при росписи, когда допущенная ошибка исправляется только в аналитической записи, а в поле 922 записи на журнал остается ошибка. Тогда программа при выборе записи журнала с оглавлением выдает сообщение, что есть статья, на которую не создана аналитическая запись. При введении этого формата в DBNFLC.PFT при редактировании заглавия статьи будет выдано сообщение, что оно не совпадает с введенным в оглавление журнала.
if v920:'ASP' then
if &unifor('DDB-1,!I='v463^w'!, (if p(v922) then v922^c/ fi/)'):v200^a then else '2 Заглавие не соответствует введенному в оглавлении журнала' fi
fi