05.02.2008 14:51
Mihon
 
Появилась необходимость для подчиненных баз автоматизированно менять значения проверок (для должности) в админ. модуле.
SSInspectCfg.Inspectmode это режим проверки.
изменяется от 0 до 3.
Вопрос: как узнать, какое значение этого поля соответствует статусам "предупрежение", "всегда запрет" и т.д.?
заранее благодарен.
05.02.2008 14:58
Mtirt
 
Насколько я понимаю:
3 - всегда запрет
2 - запрет
1 - предупреждение
0 - отключена
05.02.2008 15:06
Mihon
 
Вот только что проверил - 0-предупреждение, потом тут же запись 0-отключена.
как будто данные по таблице расходятся с данными адм. модуля.
должность одну смотрю.
05.02.2008 17:11
Mihon
 
Код:
SELECT if.name, ic.inspectmode
FROM SUPERMAG.SMINSPECTCFG ic,
SUPERMAG.SSINSPECTFUNC if
where
(if.id=ic.inspectid)and(ic.offid=1)
вот это и данные админ. модуля никак не могу увязать.
то 0 получается "отключена", то "запрет", в общем билиберда.
Почему так?
05.02.2008 17:17
Mtirt
 
SSINSPECTFUNC - просто список возможных проверок.
SMINSPECTCFG - назначение проверки для конкретной должности.

Может забываешь учитывать SUBID ? Там для разных документов могут быть разные значения.

И еще, версия СМ2000, какая? А то помнится мне, что в 1.026 по этому поводу есть большие изменения.
06.02.2008 08:55
Mihon
 
1.024.6 sp5

SUBID действительно не учитываю, выполняю тот запрос он мне и так не выдает повт.записей. всего штук 20, хотя проверок - штук 150...
а какое тогда значение у оставшихся 130?

в табличке SSINSPECTFUNC ведь по ID уникальность. или нет? я отбирал записи SSINSPECTFUNC и SSINSPECTFUNCDETAIL, для одной записи SSINSPECTFUNC может быть 2 записи в SSINSPECTFUNCDETAIL...
я ошибаюсь?
06.02.2008 09:11
Mtirt
 
Цитата:
Mihon 1.024.6 sp5

SUBID действительно не учитываю, выполняю тот запрос он мне и так не выдает повт.записей. всего штук 20, хотя проверок - штук 150...
а какое тогда значение у оставшихся 130?
Насколько я понимаю, в SSINSPECTFUNC есть значение этой проверки по умолчанию для всех должностей.
В sminspectcfg сохраняются ТОЛЬКО значения, отличные от тех, которые указаны в SSINSPECTFUNC.

Таким образом тебе для полных проверок нужно объединение sminspectcfg и SSINSPECTFUNC.
06.02.2008 10:56
Mihon
 
Цитата:
Mihon
Код:
SELECT if.name, ic.inspectmode
FROM SUPERMAG.SMINSPECTCFG ic,
SUPERMAG.SSINSPECTFUNC if
where
(if.id=ic.inspectid)and(ic.offid=1)
Выполняю этот запрос.
Открываю адм. модуль, права доступа, должности, должность с этим id, захожу в проверки.
Начинаю сравнивать:
"запрет повышения тарарарарам" - inspectmode = 2, в адм. модуле "запрет"
"не указана причина тарарам" - inspectmode = 0, в адм. модуле "предупрежение"
"запрет принятия док. тарарам" - inspectmode = 2, в адм. модуле "предупрежение"
Это же полная неразбериха.
Помогите понять...
06.02.2008 11:07
Mtirt
 
Код:
SELECT if.id, if.name, nvl(ic.inspectmode,if.definspectmode)
FROM SUPERMAG.SMINSPECTCFG ic,
SUPERMAG.SSINSPECTFUNC if
where
(if.id(+)=ic.inspectid)and(ic.offid=1)
так больше похоже на правду?
06.02.2008 11:27
Mihon
 
Спасибо.
Невнимательность ужасная штука.
Я НЕ ТУ БАЗУ ПОДКЛЮЧАЛ(((((((((((

А по поводу запроса - выдает те же данные.
А что там измениться должно было? nvl какой-то))))
Спасибо огромное!
Часовой пояс GMT +3, время: 09:02.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.