Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Чт Сен 08, 2011 11:50  Просмотр документов от электронных клиентов |
|
Полезность: Нет оценки
|
Есть необходимость запретить редактирование документов, поступающих через системы дистанционного банковского обслуживания (не фактура).
Но на форме просмотра долна быть возможность поставить документ в картотеку, например как на рисунке (реквизиты документа недоступны для редактирования, однако Frame внизу не заблокирован).
Как это можно сделать?
В операции EDIT_DOC есть переменная V_EL_CLIENT (От электронного клиента) которая по идее как раз и должна управлять доступностью контролов.
Кусок куда из-клиент скрипта:
Код: | ' просмотр документов от электронных клиентов
If v_el_client.text = "1" then
frmNew_Dt.Caption = "Просмотр документа от электронного клиента"
'Memo1.Enabled = true
Number5.Enabled = true
cl_inn_kt_2.Enabled = true |
НО! Я не понимаю как эту переменную можно установить в "1"!
На ум приходит только сделать расширение для EDIT_DOC, но как показывает практика это неудачная идея.
Еще можно сделать расширение на операцию выбора CHOICE#EDIT и вызывать по нужному условию не EDIT_DOC, а CHOICE#LOOK(Просмотреть). Но в той операции нет возможности просмотреть плановый остаток по счету плательщика. Еще как вариант скопировать EDIT_DOC, немного поправить его и в перекрытой операции выбора CHOICE#EDIT вызывать свой EDIT_DOC. Но здесь при каждом обновлении (а EDIT_DOC меняется практически всегда) придется следить за актуальности своей копии этой операции.
И еще вопрос: у вас документы поступившие через системы ДБО доступны для редактирования операционистами?
Последний раз редактировалось: prog (Чт Сен 08, 2011 13:44), всего редактировалось 1 раз |
|
 |
Ghost Профи
Вступление в Клуб: 24.11.2007
|
Чт Сен 08, 2011 11:58   |
|
Полезность: Нет оценки
|
Есть стандартный дистрибутивный подход к этой проблеме: можно запретить пользователям редактировать ЧУЖИЕ документы(отнять группу доступа EDIT_ADM), а в документах поступивших через системы ДБО ставить создателем некоего служебного пользователя. |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Чт Сен 08, 2011 12:05   |
|
Полезность: Нет оценки
|
Ghost пишет: | Есть стандартный дистрибутивный подход к этой проблеме: можно запретить пользователям редактировать ЧУЖИЕ документы(отнять группу доступа EDIT_ADM), а в документах поступивших через системы ДБО ставить создателем некоего служебного пользователя. |
У вас именно такой подход используется?
Во первых, опять таки будет подниматься операция просмотра документа в которой нет возможности просмотреть плановый остаток по счету плательщика. Во вторых у нас создатель документа используется при своде дня.
Последний раз редактировалось: prog (Чт Сен 08, 2011 13:46), всего редактировалось 1 раз |
|
 |
Ghost Профи
Вступление в Клуб: 24.11.2007
|
Чт Сен 08, 2011 12:30   |
|
Полезность: Нет оценки
|
В текущем банке почти такой, с некоторыми извращениями. В предыдущих двух банках использовали его в чистом виде, для постановки в картотеку пользовали и пользуем простую операцию "Поставить в картотеку", т.к. данная процедура выполняется в конце дня когда ясно что денег у клиента на счете не будет и он не будет отзывать документ.
При своде дня использовали проведшего, либо брали ответственного по счету в зависимости от алгоритма который давали постановщики задачи.
Последний раз редактировалось: Ghost (Чт Сен 08, 2011 14:49), всего редактировалось 1 раз |
|
 |
svn Профи
Вступление в Клуб: 04.02.2008
|
Чт Сен 08, 2011 12:33   |
|
Полезность: Нет оценки
|
1.помойму если на документе проставлен DOCUMENT_UNO он не редактируется обычными пользователями
2. есть отдельная простая операция постановки в картотеку. |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Чт Сен 08, 2011 12:37   |
|
Полезность: Нет оценки
|
svn пишет: | 1.помойму если на документе проставлен DOCUMENT_UNO он не редактируется обычными пользователями |
DOCUMENT_UNO должен быть определенным
Код: | elsif doc_state in ('PROV','TO_KART','PAY','WAIT_DVALUT','WAIT_MONEY','TO_MBR','DELETED','2985')
or (doc_uno is not null and
(doc_uno like 'INK%' or doc_uno like 'KLB%' or doc_uno like 'IMP%' or doc_uno like 'VAL%')
)
then
V_EDIT_STATE := '1'; -- В клиент-скрипте становятся НЕдоступны все контролы
elsif ::[MAIN_DOCUM].[MD_OTHERS].get_quit_kass(ref_this) is not null then
V_EDIT_STATE := '1';
else
NEW_STATE.[0] := 1; -- Необработано
end if; |
svn пишет: | 2. есть отдельная простая операция постановки в картотеку. |
операционисты жалуются что неудобно это. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Сен 08, 2011 13:33   |
|
Полезность: Нет оценки
|
prog пишет: | будет подниматься операция просмотра документа в которой нет возможности ставить в картотеку. |
А сделать расширение на Просмотр , в расширении проверять права (security.Check_Equal) и ставить в картотеку ? |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Чт Сен 08, 2011 13:42   |
|
Полезность: Нет оценки
|
vtar пишет: | prog пишет: | будет подниматься операция просмотра документа в которой нет возможности ставить в картотеку. |
А сделать расширение на Просмотр , в расширении проверять права (security.Check_Equal) и ставить в картотеку ? |
Что-то я попутал. В операции просмотреть есть возможность ставить в картотеку.
Но нет возможности просмотреть плановый остаток, а это нужно.
Поправил первый пост |
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Чт Сен 08, 2011 13:46   |
|
Полезность: Нет оценки
|
V_EL_CLIENT - это же пакетная переменная, т.е. ей можно присваивать значения из других пакетов..
Что если попробовать проинициализировать её из хука MD_ED_VALIDATE? |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Чт Сен 08, 2011 13:48   |
|
Полезность: Нет оценки
|
maestro пишет: | V_EL_CLIENT - это же пакетная переменная, т.е. ей можно присваивать значения из других пакетов..
Что если попробовать проинициализировать её из хука MD_ED_VALIDATE? |
Идея хорошая, но он запускается при валидации. А надо при поднятии экранной формы. Я специально просмотрел все вызовы функций в секции DEFAULT на предмет вызова хоть какого-нибудь хука. Но ничего не нашел  |
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Чт Сен 08, 2011 14:03   |
|
Полезность: Нет оценки
|
prog пишет: | maestro пишет: | V_EL_CLIENT - это же пакетная переменная, т.е. ей можно присваивать значения из других пакетов..
Что если попробовать проинициализировать её из хука MD_ED_VALIDATE? |
Идея хорошая, но он запускается при валидации. А надо при поднятии экранной формы. Я специально просмотрел все вызовы функций в секции DEFAULT на предмет вызова хоть какого-нибудь хука. Но ничего не нашел  |
Да, точно, срабатывает по Ok.
Но тогда видимо только расширением.. У нас EDIT_DOC расширен, вроде проблем нет... |
|
 |
|