Гибкая и оперативная настройка доступа пользователей на изменение объектов (закрытие периода в часах)

Публикация № 956269

Администрирование - Защита, права, пароли

обработка права доступа граница на изменение закрытие периода

2
Данная обработка позволяет гибко и оперативно настраивать доступ (закрывать период для документов) пользователя к справочникам, документам и ПВХ. Для документов есть возможность установить границу доступа в часах, после которой пользователь не сможет изменить документ.

Данная обработка позволяет гибко и оперативно настраивать доступ (закрывать период для документов) пользователя к справочникам, документам и ПВХ. Для документов есть возможность установить границу доступа в часах, после которой пользователь не сможет изменить документ.

Для работы с обработкой нужно внести в конфигурацию несколько объектов метаданных, которые описаны в файлах "Необходимые объекты метаданных.txt" и "Текст подписок.txt". Файлы в архиве.

Необходимые объекты метаданных:

Регистр сведений "НастройкаДоступаПользователейИзменениеОбъектов"
Константа "ИспользоватьНастройкуДоступаНаИзменениеОбъектов" (тип булево)

Подписки на события:
"ПроверкаНаИзменениеСправочники" (тип источника "СправочникОбъект", событие "ПередЗаписью")
"ПроверкаНаИзменениеДокументы" (тип источника "ДокументОбъект", событие "ПередЗаписью")
"ПроверкаНаИзменениеПВХ" (тип источника "ПланВидовХарактеристикОбъект", событие "ПередЗаписью")

Структура РС "НастройкаДоступаПользователейИзменениеОбъектов":
Измерения:
 - Пользователь (СправочникСсылка.Пользователи)
 - ВидОбъекта (Строка(50))
 - ИмяОбъекта (Строка(100))
 - СрокДоступа (Число(10, 0))
 

Текст подписок:

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

Процедура ПроверкаНаИзменениеСправочникиПередЗаписью(Источник, Отказ) Экспорт
	ПроверкаВозможностиИзменения("Справочники", Источник.Метаданные().Имя, Отказ);
КонецПроцедуры

Процедура ПроверкаНаИзменениеДокументыПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
	ПроверкаВозможностиИзменения("Документы", Источник.Метаданные().Имя, Отказ, Источник);
КонецПроцедуры

Процедура ПроверкаНаИзменениеПВХПередЗаписью(Источник, Отказ) Экспорт
	ПроверкаВозможностиИзменения("ПланыВидовХарактеристик", Источник.Метаданные().Имя, Отказ);
КонецПроцедуры


Обработка должна работать со всеми типовыми конфигурациями (обычное приложение), в которых есть справочник "Пользователи". Тестировалась на конфигурациях Управление торговлей 10.3, Комплексная автоматизация 1.1.

2

Скачать файлы

Наименование Файл Версия Размер
НастройкаДоступаПользователей
.zip 12,44Kb
05.12.18
4
.zip 12,44Kb 4 Скачать

См. также

Специальные предложения

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение