Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Книговыдача :  ИРБИС Irbis
 
Стат.формы для БД RDR в версии 2016.1
Пользователь: Alio (IP-адрес скрыт)
Дата: 22, February, 2017 20:38

Обнаружена ошибка в клиентском форматере, следствием которой являются аварии при получении стат.форм в БД читателей в версии 2016.1

Для того чтобы исключить влияние этой ошибки, необходимо в STF-файлах всех стат.форм (кроме форм 11,12,15,16) в строчках форматов (это 2 и возможно 4 строки), где есть обращения к БД RDR_ARH - это конструкция вида &uf('+7U40#',&uf('7RDR_ARH,!RI=',v30,'!,(v40/)')) - в начале строки (т.е. в начале формата) вставить конструкцию:
&uf('&')

Например, для формы Form14 это будет выглядеть так:
Form14
&uf('&'),&uf('+7W40#',(v40/)),&uf('+7U40#',&uf('7RDR_ARH,!RI=',v30,'!,(v40/)')),&uf('+7W1#'),(if p(g40) then if (g40^d>=&uf('Av1000^a#1')) and (g40^d<=&uf('Av1000^b#1')) and (g40^a='') then &uf('+7U1#',&uf('G0 ',g40^c)) fi fi),(g1/)
visit.mnu
if p(v50) then &uf('Av50#1') else '*' fi
kat_STF.mnu
........

Необходимо также иметь в виду, что обращение к архивным данным по книговыдаче (т.е. к БД RDR_ARH) приводит к замедлению процесса формирования стат.форм. Поэтому, если Вы не используете архивирование сведений по книговыдаче, стоит удалить из форматов в STF-файлах конструкции обращения к БД RDR_ARH, а именно конструкцию:
&uf('+7U40#',&uf('7RDR_ARH,!RI=',v30,'!,(v40/)'))
или вернуться к формам из предыдущих версий. И при этом, конечно же, НЕ ИСПОЛЬЗОВАТЬ конструкцию &uf('&')

В общем случае можно рекомендовать для каждой стат.формы сделать ДВА ВАРИАНТА:
- один вариант с обращением к RDR_ARH и использовать его, когда Вы формируете стат.форму, в которой должны участвовать архивные сведения
- второй вариант без обращения к RDR_ARH и использовать его при получении стат.формы, в которой не должны использоваться архивные сведения.

(Что касается собственно ошибки в клиентском форматере - а он присутствует в каждом АРМе - она будет исправлена в ближайшее время. Что не отменяет использования конструкции &uf('&') при обращении к RDR_ARH)

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: bazhenov (IP-адрес скрыт)
Дата: 27, February, 2017 17:15

1. Хотелось бы знать, что делает и как работает &uf('&'), чтобы его правильно применять.
2. Вероятно его нужно вставлять и в FST в строку 60 0 &uf('+7W40#',(v40/)),&uf('+7U40#',&uf('7RDR_ARH,!RI=',v30,'!,(v40/)')),..... ?
Здесь ведь такая же конструкция.
3. Цитата: "В общем случае можно рекомендовать для каждой стат.формы сделать ДВА ВАРИАНТА"
Чтобы не плодить формы, вероятно, можно рекомендовать вставить в форму опроса еще один параметр "Использовать БД Архив" и вместо:

&uf('+7W40#',(v40/)),&uf('+7U40#',&uf('7RDR_ARH,!RI=',v30,'!,(v40/)'))

получится:

&uf('+7W40#',(v40/)),if v1000^b='1' then &uf('+7U40#',&uf('7RDR_ARH,!RI=',v30,'!,(v40/)')) fi


Правда, т.к. не знаю пока как работает &uf('&'), то не совсем ясно куда его нужно вставлять: в начале строки или под if

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: Alio (IP-адрес скрыт)
Дата: 27, February, 2017 20:12

bazhenov написал(а):
-------------------------------------------------------
> 1. Хотелось бы знать, что делает и как работает
> &uf('&'), чтобы его правильно применять.
Этот форматный выход является инструкцией: ВЫПОЛНИТЬ ФОРМАТ НА СЕРВЕРЕ. Может стоять в любом месте, но лучше - в начале.


> 2. Вероятно его нужно вставлять и в FST в строку
> 60 0
> &uf('+7W40#',(v40/)),&uf('+7U40#',&uf('7RDR_ARH,!R
> I=',v30,'!,(v40/)')),..... ?
> Здесь ведь такая же конструкция.
Нет, не нужно. Форматы FST инвертирования ВСЕГДА выполняются на сервере.



> 3. Цитата: "В общем случае можно рекомендовать для
> каждой стат.формы сделать ДВА ВАРИАНТА"
> Чтобы не плодить формы, вероятно, можно
> рекомендовать вставить в форму опроса еще один
> параметр "Использовать БД Архив" и вместо:
>
> &uf('+7W40#',(v40/)),&uf('+7U40#',&uf('7RDR_ARH,!R
> I=',v30,'!,(v40/)'))
>
> получится:
>
> &uf('+7W40#',(v40/)),if v1000^b='1' then
> &uf('+7U40#',&uf('7RDR_ARH,!RI=',v30,'!,(v40/)'))
> fi
>
>
> Правда, т.к. не знаю пока как работает &uf('&'),
> то не совсем ясно куда его нужно вставлять: в
> начале строки или под if
А это уже пространство для личного творчества...

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: roit (IP-адрес скрыт)
Дата: 28, February, 2017 08:57

Александр Иосифович! А для таких как мы, кто не занимается личным творчеством и использует формы статистики из дистрибутива для RDR нельзя ли прислать все дистрибутивные формы в исправленном виде? И совсем бы было замечательно чтобы, раз Вы рекомендуете 2 варианта, то заполучить эти 2 варианта в готовом виде.

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: Alio (IP-адрес скрыт)
Дата: 28, February, 2017 09:15

Вот исправленные STF-файлы для БД RDR версии 2016.1 (появятся в ближайшем обновлении)

Вложения: temp.zip (6.1KB)  
Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: roit (IP-адрес скрыт)
Дата: 28, February, 2017 10:09

Спасибо!

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: elkinaos (IP-адрес скрыт)
Дата: 28, February, 2017 13:43

С данной конструкцией статформы перестали зависать, правда выполнение идет достаточно долго.

Цитата:
>> 2. Вероятно его нужно вставлять и в FST в строку
>> 60 0
>> &uf('+7W40#',(v40/)),&uf('+7U40#',&uf('7RDR_ARH,!R
>> I=',v30,'!,(v40/)')),..... ?
>> Здесь ведь такая же конструкция.
>Нет, не нужно. Форматы FST инвертирования ВСЕГДА выполняются на сервере.

Вот еще вопрос
RDR.FST отрабатывает только во время создания словарей или в процессе книговыдачи тоже. А то у нас еще очень сильно стала тормозить книговыдача, особенно когда в ней начинают работать все отделы. Иногда после длительного бегания ирбиса выдает сообщение, о блокировке или записи или базы, хотя в администраторе блокировку не показывает.
С чем это может быть связано?

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: Alio (IP-адрес скрыт)
Дата: 28, February, 2017 13:46

elkinaos написал(а):
-------------------------------------------------------
> С данной конструкцией статформы перестали
> зависать, правда выполнение идет достаточно
> долго.
>
> Цитата:
> >> 2. Вероятно его нужно вставлять и в FST в
> строку
> >> 60 0
> >>
> &uf('+7W40#',(v40/)),&uf('+7U40#',&uf('7RDR_ARH,!R
>
> >> I=',v30,'!,(v40/)')),..... ?
> >> Здесь ведь такая же конструкция.
> >Нет, не нужно. Форматы FST инвертирования ВСЕГДА
> выполняются на сервере.
>
> Вот еще вопрос
> RDR.FST отрабатывает только во время создания
> словарей или в процессе книговыдачи тоже. А то у
> нас еще очень сильно стала тормозить книговыдача,
С какого момента "стала"?


> особенно когда в ней начинают работать все отделы.
> Иногда после длительного бегания ирбиса выдает
> сообщение, о блокировке или записи или базы, хотя
> в администраторе блокировку не показывает.
> С чем это может быть связано?

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: elkinaos (IP-адрес скрыт)
Дата: 28, February, 2017 15:57

С момента перехода на 16.1

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: Konstantinus (IP-адрес скрыт)
Дата: 28, February, 2017 16:09

Спасибо, а то мы откатились руками на предыдущие.

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: roit (IP-адрес скрыт)
Дата: 27, December, 2017 13:05

У нас пока версия 2016 со всеми обновлениями по D5 включительно.
Возникли сомнения учитывают ли стат. формы в АРМ Книговыдача данные RDR_ARH?
На всякий случай прикреплю 2 стат формы. В них архивные данные считаются?
У нас все стат формы только те, которые были в дистрибутиве и потом в обновлениях, сами мы ничего не меняли.

Вложения: Form1.stf (513 bytes)   Form6.stf (1.1KB)  
Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: Alio (IP-адрес скрыт)
Дата: 27, December, 2017 13:34

roit написал(а):
-------------------------------------------------------
> У нас пока версия 2016 со всеми обновлениями по D5
> включительно.
> Возникли сомнения учитывают ли стат. формы в АРМ
> Книговыдача данные RDR_ARH?
> На всякий случай прикреплю 2 стат формы. В них
> архивные данные считаются?
Считаются.

> У нас все стат формы только те, которые были в
> дистрибутиве и потом в обновлениях, сами мы ничего
> не меняли.

Re: Стат.формы для БД RDR в версии 2016.1
Пользователь: Сергей Иванович (IP-адрес скрыт)
Дата: 16, March, 2021 11:51

Добрый день.Подскажите пожалуйста если код был такой
Form6
&uf('+7W1#'),&uf('+7W2#'),(if p(v40) then if (v40^d>=&uf('Av1000^a#1')) and (v40^d<=&uf('Av1000^b#1')) and (v40^a<>'') then &uf('+7U1#',v40^d,if v40^v<>'' then v40^v else '*' fi) fi,if (v40^f>=&uf('Av1000^a#1')) and (v40^f<=&uf('Av1000^b#1')) and (v40^a<>'') then &uf('+7U1#',v40^f,if v40^v<>'' then v40^v else '*' fi) fi,if (v40^L>=&uf('Av1000^a#1')) and (v40^L<=&uf('Av1000^b#1')) and (v40^a<>'') then &uf('+7U1#',v40^L,if v40^v<>'' then v40^v else '*' fi) fi,if (v40^d>=&uf('Av1000^a#1')) and (v40^d<=&uf('Av1000^b#1')) and (v40^a='') then &uf('+7U2#',if v40^v<>'' then v40^v else '*' fi) fi fi),&uf('+7G1'),(g1*8/),(g2/)
kv_STF.mnu
а если мы ещё используем базу RDR_ARH

Form6
&uf('&'),&uf('+7W40#',(v40/)),&uf('+7U40#',&uf('7RDR_ARH,!RI=',v30,'!,(v40/)')),&uf('+7W1#'),&uf('+7W2#'),(if p(g40) then if (g40^d>=&uf('Av1000^a#1')) and (g40^d<=&uf('Av1000^b#1')) and (g40^a<>'') then &uf('+7U1#',g40^d,| |g40^1,| 000000|N40^1,if g40^v<>'' then g40^v else '*' fi) fi,if (g40^f>=&uf('Av1000^a#1')) and (g40^f<=&uf('Av1000^b#1')) and (g40^a<>'') then &uf('+7U1#',g40^f,| |g40^2,| 000000|N40^2,if g40^v<>'' then g40^v else '*' fi) fi,if (g40^L>=&uf('Av1000^a#1')) and (g40^L<=&uf('Av1000^b#1')) and (g40^a<>'') then &uf('+7U1#',g40^L,| |g40^3,| 000000|N40^3,if g40^v<>'' then g40^v else '*' fi) fi,if (g40^d>=&uf('Av1000^a#1')) and (g40^d<=&uf('Av1000^b#1')) and (g40^a='') then &uf('+7U2#',if g40^v<>'' then g40^v else '*' fi) fi fi),&uf('++B1#30'),(g1*8/),(g2/)
то код должен быть такой???? Посмотрите кто знает!



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