ПроверитьПраваНаИзменениеСостоянияБизнесПроцесса (БСП)

Автор: 1С
ОбщийМодуль.БизнесПроцессыИЗадачиСервер
БСП

Проверить права на изменение состояния бизнес процесса. Проверяет у текущего пользователя наличие прав на изменение состояния бизнес-процесса.

// Проверяет у текущего пользователя наличие прав на изменение состояния бизнес-процесса.
//
// Параметры:
//  БизнесПроцессОбъект - БизнесПроцессОбъект - объект бизнес-процесса.
//
Процедура ПроверитьПраваНаИзменениеСостоянияБизнесПроцесса(БизнесПроцессОбъект) Экспорт
	
	Если Не ЗначениеЗаполнено(БизнесПроцессОбъект.Состояние) Тогда 
		БизнесПроцессОбъект.Состояние = Перечисления.СостоянияБизнесПроцессов.Активен;
	КонецЕсли;
	
	Если БизнесПроцессОбъект.ЭтоНовый() Тогда
		ПредыдущееСостояние = Перечисления.СостоянияБизнесПроцессов.Активен;
	Иначе
		ПредыдущееСостояние = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(БизнесПроцессОбъект.Ссылка, "Состояние");
	КонецЕсли;
	
	Если ПредыдущееСостояние <> БизнесПроцессОбъект.Состояние Тогда
		
		Если Не ЕстьПраваНаОстановкуБизнесПроцесса(БизнесПроцессОбъект) Тогда 
			ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'Недостаточно прав для остановки бизнес-процесса ""%1"".'"),
				Строка(БизнесПроцессОбъект));
			ВызватьИсключение ТекстСообщения;
		КонецЕсли;
		
		Если ПредыдущееСостояние = Перечисления.СостоянияБизнесПроцессов.Активен Тогда
			
			Если БизнесПроцессОбъект.Завершен Тогда
				ВызватьИсключение НСтр("ru = 'Невозможно остановить завершенные бизнес-процессы.'");
			КонецЕсли;
				
			Если Не БизнесПроцессОбъект.Стартован Тогда
				ВызватьИсключение НСтр("ru = 'Невозможно остановить не стартовавшие бизнес-процессы.'");
			КонецЕсли;
			
		ИначеЕсли ПредыдущееСостояние = Перечисления.СостоянияБизнесПроцессов.Остановлен Тогда
			
			Если БизнесПроцессОбъект.Завершен Тогда
				ВызватьИсключение НСтр("ru = 'Невозможно сделать активными завершенные бизнес-процессы.'");
			КонецЕсли;
				
			Если Не БизнесПроцессОбъект.Стартован Тогда
				ВызватьИсключение НСтр("ru = 'Невозможно сделать активными не стартовавшие бизнес-процессы.'");
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПриИзмененииСостоянияБизнесПроцесса (БСП)

ПроверитьНомерБизнесПроцессаПоДате (БСП)

ОбновитьСостояниеБизнесПроцесса (БСП)

ПриПроверкеПравНаОстановкуБизнесПроцесса (БСП)

ПроверитьНомерБизнесПроцессаПоДатеИОрганизации (БСП)

ОткрытьБизнесПроцесс (БСП)

ОстановитьБизнесПроцессы (БСП)

ОстановитьБизнесПроцесс (БСП)

ВыбратьБизнесПроцессыВедущейЗадачи (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз