| Предыдущая тема :: Следующая тема | 
	
	
		| Автор | Сообщение | 
	
		| 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 расширен, вроде проблем нет...
 |  | 
	
		|  | 
	
		|  |