| 
			
			 | 
		#1 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
			
			
			Динамическое изменение прав доступа на одну таблицу
			 
			
			Добрый день!  
		
		
		
		
		
		
		
	![]() Возможно ли динамически менять права доступа на одну и ту же таблицу в зависимости от точки (от параметра в форме)? Реальная задача - разграничить права доступа на строки складских журналов (таблица InventJournalTrans, форма InventJournalTransfer). Т.е. например в Инвентаризации строки можно редактировать, а вот в Проводках только просмотр. MS Axapta 3.0 SP3 Retail  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: DreamCreator (2). | |
| 
			
			 | 
		#3 | 
| 
			
			 Moderator 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
На menuItem складских журналов навешен один ключ InventJournals, т.е. различить их права доступа методом X++: hasSecuritykeyAccess(securityKeyNum(InventJournals),accessType::View);Как можно определить права доступа на конкретный тип журнала (menuItem)? (пойду разбирать настройку прав доступа..)  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Если нельзя, то вот тестовый job, который определяет доступ к конкретному пункту меню X++: static void SRF_CheckAccessRightMenuItem(Args _args) { SecurityKeySet securitySet; ; securitySet = SysSecurity::constructSecurityKeySet(); securitySet.loadUserRights(curUserId()); info(strFmt("%1", securitySet.menuItemAccess(menuItemDisplayStr(InventJournalTableMovement), AccessRecordType::MenuItemDisplay))); }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: DreamCreator (2). | |
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Как можно определить права доступа на конкретный тип журнала (menuItem)?
		
	 
PHP код: 
	
			
	Цитата: 
	
		
			Реальная задача - разграничить права доступа на строки складских журналов (таблица InventJournalTrans, форма InventJournalTransfer). Т.е. например в Инвентаризации строки можно редактировать, а вот в Проводках только просмотр.
		
	 
Управление запасами \ Разное \ Строки (те у которых после запятой стоит InventJournalTrans*)  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: DreamCreator (3). | |
| 
			
			 | 
		#7 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от SRF
			 
 
			А нельзя просто привязку сделать к типу журнала(это самый простой вариант)? 
		
	Если нельзя, то вот тестовый job, который определяет доступ к конкретному пункту меню X++: static void SRF_CheckAccessRightMenuItem(Args _args) { SecurityKeySet securitySet; ; securitySet = SysSecurity::constructSecurityKeySet(); securitySet.loadUserRights(curUserId()); info(strFmt("%1", securitySet.menuItemAccess(menuItemDisplayStr(InventJournalTableMovement), AccessRecordType::MenuItemDisplay))); } ![]() Привязку к типу сделать нельзя, т.к. для разных групп пользователей - права различны. Цитата: 
	
		
			Сообщение от Raven Melancholic
			 
 
			Примерно так: 
		
	PHP код: 
	
			
	программирование излишне. Это настраивается в обычных правах групп пользователей в ветке: Управление запасами \ Разное \ Строки (те у которых после запятой стоит InventJournalTrans*) Как вариант - доступность кнопки регулировать программно. Спасибо!   P.S. OffTop В Казани ураган за окном  
		 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Кнопка "Проверка" требует доступ как минимум на изменение, кнопка "Разноска" требует доступ "Полный". Поэтому вариант такой: 
		
		
		
		
		
		
		
	На менюитемы конкретных журналов устанавливаете для группы права с каскадным изменением. На определенные журналы Правка/Чтение/Полный. Теперь так как каскадным доступом устанавливаются такие же права и на таблицы датасорсов, то непосредственно на таблицы устанавливаете Полный доступ. Получается следующее: 1) пользователи группы имеют право на таблицу журналов полный доступ. 2) но на конкретные журналы только тот, что установили через права менюитема (форма открывается с правами менюитема при помощи которого вызвана). Соответственно, если на менюитем переноса установили права "Чтение", то по переносам ни проверить ни разнести не смогут. А в журнале инвентаризации из-за полного доступа к менюитему смогут выполнять и разноску.  | 
| 
	
 |