Каталог решений - РасширПравПользовВ_УБРБД_С_FormEx.dll (Изменённое)

РасширПравПользовВ_УБРБД_С_FormEx.dll (Изменённое)

РасширПравПользовВ_УБРБД_С_FormEx.dll (Изменённое)

В наличии

Цель — запрет/разрешение исправлений документов в зависимости от автора создателя Документа. Делал для УРБД,а там как душе угодно.
Отдельная благодарность АЛЬФУ за FormEx. Всё от туда. И плюсы ему, а минусы мне.

Категория:

Описание

// Цель -запрет/разрешение исправлений документов в зависимости от автора создателя Документа и Наличия в квартале расчёта Фин рез. //В системе должен быть справочник пользователи // код-число // наименование-строка // в системе констант добавить константу (текст- длинна (по желанию(у меня 5ть))) // эта константа будет разрешать редактировать все документы. // у меня Константа.РедактироватьДок=»TROY» // в глобальнике в процедуре ПриНачалеРаботыСистемы добавить // механизм авторства

Спр 

= СоздатьОбъект(«Справочник.Пользователи»)

;
	Спр

.

НайтиПоНаименованию

(

ИмяПользователя

(), 1)

;
	Пользователь 

=

Спр

.

ТекущийЭлемент

()

;
	

Если

Пользователь

.

Выбран

() = 0 Тогда

Спр

.

Новый

()

;
		Спр

.

Наименование 

=

ИмяПользователя

()

;
		Спр

.

Записать

()

;
		Пользователь 

=

Спр

.

ТекущийЭлемент

()

;
	

КонецЕсли

;
	

Если

Пользователь

=«» Тогда

ЗавершитьРаботуСистемы

()

;

	

КонецЕсли

;



///Добавить в глоб. Приначалеработы системы добавить dll-ы Если

ЗагрузитьВнешнююКомпоненту

(«TurboMD.dll») = 0 Тогда// не обязательно

Предупреждение

(«Неудачная попытка загрузить TurboMD.dll»)

;
		СтатусВозврата

(0)

;
		

Возврат

;
	

КонецЕсли

; 
	

Если

ЗагрузитьВнешнююКомпоненту

(«1CPP.dll») = 0 Тогда// не обязательно

Предупреждение

(«Неудачная попытка загрузить 1CPP.dll»)

;
		СтатусВозврата

(0)

;
		

Возврат

;
	

КонецЕсли

;
	

//пытаемся загрузить компоненту в формате штатной ВК Если

ЗагрузитьВнешнююКомпоненту

(«FormEx.dll») = 0 Тогда// обязательно

Предупреждение

(«Неудачная попытка загрузить FormEx.dll»)

;
		СтатусВозврата

(0)

;

// можно глушить, а лучше не глушить Возврат

;
	

КонецЕсли

;


//Добавить в любое удобное место глобального модуяя / ///========================================== Добавил для запрета Работы в УРБД Процедура

ПроверкаРазрешенияРедактирования

(

Конт

) Экспорт

КретДата

=«»

;
 	КретДата

=

Конт

.

ДатаДок;
 	

//Сообщить(«КретДата==»+КретДата);

ФинРез

=СоздатьОбъект(«Документ.ФинансовыеРезультаты»)

; 
 	ФинРез

.

ВыбратьДокументы

(

НачКвартала

(

КретДата

),

КонКвартала

(

КретДата

))

; 
 	ДокумЕсть

=0

;
 	

Пока

ФинРез

.

ПолучитьДокумент

()=1 Цикл Если

ФинРез

.

Проведен

()=1 Тогда

Предупреждение

(«У ВАС УВАЖАЕМЫЙ ЕСТЬ ФИН РЕЗЕЛЬТАТ, НАДОБНО СДЕЛАТЬ ЕГО НЕ ПРОВЕДЁННЫМ»)

;	
 		ДокумЕсть

=1

; 
 		

Если

Конт

.

Проведен

()=0 Тогда

Конт

.

Форма

.

Закрыть

(0)

;
 		

Перейти

~

1

;
 		

Прервать

;
 		

КонецЕсли

;
 		

// Сообщить(«ДокФинРез=»+ФинРез.ТекущийДокумент()); Прервать

;
 		
 	

КонецЕсли

;
 	

КонецЦикла

;
 	
 	

Если

ДокумЕсть

=0

тогда
 	

Если

СокрЛП

(Константа.

РедактироватьДок

)<>«TROY» Тогда Если

Конт

.

Автор

<>

Пользователь  

Тогда Если

Конт

.

Проведен

()=1 Тогда

Конт

.

Форма

.

ТолькоПросмотр

(1)

;
ФормаРасш 

= СоздатьОбъект(«РасширениеФормы»)

; 
 ФормаРасш

.

УстановитьФорму

(

Конт

.

Форма

)

;
  

//Идентиф=»»; //Заголовок=»»; Для

Х 

= 0 По

ФормаРасш

.

КоличествоАтрибутов

() — 1 Цикл //Идентиф= Строка(ФормаРасш.ПолучитьАтрибут(Х).Идентификатор); //Заголовок=Строка(ФормаРасш.ПолучитьАтрибут(Х).Заголовок); Если (

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Тип 

= 3) Тогда // нужно оставить доступ на кнопку «печать» или …. Если (

Строка

(

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Заголовок

)=«&Печать»)

или 

(

Строка

(

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Заголовок

)=«Печать»)Тогда

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Доступность 

= 1

; 
 		ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Видимость 

= 1

;  
 	

Иначе

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Доступность 

= 0

; 
 		ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Видимость 

= 0

;
 		

КонецЕсли

;
 	

КонецЕсли

;
 Конеццикла;	
		

КонецЕсли

;
		 
	

КонецЕсли

;	

КонецЕсли

;  

Иначе Если

СокрЛП

(Константа.

РедактироватьДок

)<>«TROY» Тогда

Конт

.

Форма

.

ТолькоПросмотр

(1)

;
ФормаРасш 

= СоздатьОбъект(«РасширениеФормы»)

; 
 ФормаРасш

.

УстановитьФорму

(

Конт

.

Форма

)

;
  

//Идентиф=»»; //Заголовок=»»; Для

Х 

= 0 По

ФормаРасш

.

КоличествоАтрибутов

() — 1 Цикл //Идентиф= Строка(ФормаРасш.ПолучитьАтрибут(Х).Идентификатор); //Заголовок=Строка(ФормаРасш.ПолучитьАтрибут(Х).Заголовок); Если (

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Тип 

= 3) Тогда // нужно оставить доступ на кнопку «печать» или …. Если (

Строка

(

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Заголовок

)=«&Печать»)

или 

(

Строка

(

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Заголовок

)=«Печать»)Тогда

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Доступность 

= 1

; 
 		ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Видимость 

= 1

;  
 	

Иначе

ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Доступность 

= 0

; 
 		ФормаРасш

.

ПолучитьАтрибут

(

Х

).

Видимость 

= 0

;
 		

КонецЕсли

;
 	

КонецЕсли

;
 Конеццикла;
 

КонецЕсли

;

КонецЕсли

;
 ~

1

:
ДокумЕсть

=0

; 

// страховка КонецПроцедуры //===================== Процедура

ПослеОткрытия

(

Конт

) Экспорт

ФормаРасш 

= СоздатьОбъект(«РасширениеФормы»)

;
	ФормаРасш

.

УстановитьФорму

(

Конт

.

Форма

)

; 

//Сообщить(«Открыта форма: «+ФормаРасш.ПолныйТипОбъекта()+» [«+ФормаРасш.ПолныйПуть()+»]»); Если

ФормаРасш

.

ТипОбъекта

()=«Документ» Тогда

ПроверкаРазрешенияРедактирования

(

Конт

)

;
	

КонецЕсли

;

     	

КонецПроцедуры // ======================================

has been added to your cart:
Оформление заказа