Как запретить проведение документа

1. sergqwert15 3 07.09.19 18:19 Сейчас в теме
Как запретить проведение документа для одного пользователя по складу Курская, именно по этому складу., другим дать доступ. Ограничивают доступ обычно в справочнике Доступы пользователей(проведение). Конфигурация УТП.

Функция ДоступКСкладам() Экспорт 

Запрос=Новый Запрос("ВЫБРАТЬ 
|	Спр.Ссылка 
|ИЗ 
|	Справочник.ДоступПользователей КАК Спр 
|ГДЕ 
|	Спр.Пользователь = &Пользователь 
|	И Спр.Родитель.Родитель = &ДоступКСкладам 
|	И Спр.ПометкаУдаления = ЛОЖЬ 
|	И Спр.Доступ = ИСТИНА"); 
Запрос.УстановитьПараметр("ДоступКСкладам",Справочники.ДоступПользователей.НайтиПоКоду("ДоступКСкладам",Истина));
Запрос.УстановитьПараметр("Пользователь",ПараметрыСеанса.ТекущийПользователь); 
Выгрузка = Запрос.Выполнить().Выгрузить(); 
Если Выгрузка.Количество()=0 тогда 
Возврат ЛОЖЬ; 
КонецЕсли;	
Возврат истина; 

КонецФункции	


Процедура ОбработкаЗапретаПроведенияОприходованияПоСкладуПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт 

Если ТипЗнч(Источник) = Тип("ДокументОбъект.ОприходованиеТоваров") тогда 
Если Найти("Евтушенко Виталий Михайлович",ИмяПользователя()) = 0 И РольДоступна("ЗаведующийСкладом") И (Источник.Склад) = Справочники.Склады.НайтиПоНаименованию("Склад Курская", Истина) И Не Дополнительные.ДоступКСкладам() Тогда 
Если РежимЗаписи = РежимЗаписиДокумента.Проведение тогда 
#Если Клиент тогда 
Сообщить("Отказано в проведении документа!",СтатусСообщения.Важное); 
#КонецЕсли 
Отказ = Истина; 
Возврат; 
КонецЕсли; 

КонецЕсли; 
КонецЕсли;	

КонецПроцедуры 
Показать


Теперь другие не могут провести документ Оприходование товаров(кроме тех, кто имеет полные права). Почему?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user596430_gleb21 3 08.09.19 00:55 Сейчас в теме
1. Зачем столько условий , если достаточно двух (по складу и пользователю)?
2. Найти("Евтушенко Виталий Михайлович",ИмяПользователя()) = 0 будет как раз тогда когда подстроки ИмяПользователя() не будет в строке "Евтушенко Виталий Михайлович"
3. Не правильней ли будет создать роль для запрета?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот