Темы, этапы исследований и разработок / Модуль объекта

файл

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ОбработчикиСобытий

Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
	
	ВыполнитьПроверкуЗавершенияВИерархииЭлементов(ЭтотОбъект, Отказ);
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

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

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

	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#КонецЕсли

Связанные материалы