Подскажите куда прописать код для блокировки формы? - Каминсофт

Подскажите куда прописать код для блокировки формы?

21 фев 2019 14:50 #1
от Леонид
Подскажите пожалуйста... сотрудники расчетного отдела требуют заблокировать изменение документов после их проверки и проведения... с ролью Расчетчик

Хочу добавить через расширение в общий модель ко всем документам, но не знаю через какой лучше...???
Если (ЭтотОбъект.Автор = РольДоступна("Расчетчик")) И НЕ ЭтотОбъект.ЭтоНовый() И (НЕ РольДоступна("ПолныеПрава")) Тогда 
		Сообщить("У вас нет прав редактировать этот Документ.Ответственный: "+ЭтотОбъект.Ссылка.Автор);
		ЭтотОбъект.ТолькоПросмотр = Истина;
		Отказ = Истина;
	КонецЕсли;
- где ЭтотОбъект - это форма...

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

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

- может кто делал, поделитесь своими на работками?
Тема закрыта.

21 фев 2019 15:36 #2
от Андрей Ланьшин

Подскажите пожалуйста... сотрудники расчетного отдела требуют заблокировать изменение документов после их проверки и проведения... с ролью Расчетчик


А где признак того что документ проверен? ИМХО это самое сложное в задаче... Или если проведен = проверен ?

Ланьшин Андрей, фирма КАМИН
Правильно заданный вопрос содержит половину ответа!
Тема закрыта.

21 фев 2019 16:59 #3
от Леонид

... Или если проведен = проверен ?


- Документ проведен автором с правами расчетчик...
Тема закрыта.
Спасибо сказали: Андрей Ланьшин
21 фев 2019 17:34 #4
от Леонид
или как вариант для разработчиков, но много возни прописывать в каждом документе, например
- реквизит"ПроверенноЗапретРедактирования" со значением булево
- выводить в каждой форме Поле флажка "ПроверенноЗапретРедактирования" , которое доступно только Расчетчик-у
...
	Если Не РольДоступна("Расчетчик") И Объект.ПроверенноЗапретРедактирования Тогда
		Элементы.ПроверенноЗапретРедактирования.ТолькоПросмотр=Истина;
		ТолькоПросмотр=Истина;
	КонецЕсли;
...
и сделать форму документа только просмотр при установке этого флажка
Тема закрыта.

22 фев 2019 10:58 #5
от Леонид
Пока сделал так:
Есть сотрудник отвечающий за расчет БухгалтерЗПЛ
Добавил через расширение (с отключением безопасного режима)
- Общие - ОбщиеМодули - ОбщегоНазначенияСервер
&Вместо("ИзменитьАвтораПередЗаписьюДокумента")
Процедура Вместо_ИзменитьАвтораПередЗаписьюДокумента(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт
	
	Если Источник.Проведен И Источник.Автор = Пользователи.НайтиПоИмени("БухгалтерЗПЛ") И НЕ РольДоступна("Расчетчик") Тогда 
		Сообщить("У вас нет прав редактировать этот Документ.Ответственный: "+Источник.Ссылка.Автор);
		Отказ = Истина;
	Иначе
		Если ПолучитьФункциональнуюОпцию("ЗаписыватьАвтораПриИзмененииДокумента") Тогда		
			Если Источник.Метаданные().Реквизиты.Найти("Автор") <> Неопределено Тогда
				Источник.Автор = ПараметрыСеанса.ТекущийПользователь;
			КонецЕсли;	
		КонецЕсли;	
	КонецЕсли;

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

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

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


Тема закрыта.
Спасибо сказали: Андрей Ланьшин
22 фев 2019 12:09 #6
от Boris Nagornov

- может кто делал, поделитесь своими на работками?

Делал подобное еще в УПП 1.3 через событие "ПередЗаписью". Расширений не было. Конфигурация была снята с поддержки.
Тема закрыта.
Спасибо сказали: Андрей Ланьшин

Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie и пользовательских данных в целях функционирования сайта, проведения ретаргетинга и статистических исследований, обзоров. Если вы не хотите, чтобы ваши данные обрабатывались, покиньте сайт.

Принять