#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Объект.Ссылка.Пустая() Тогда
ИнициализацияФормы();
КонецЕсли;
ТекущийПользователь = Пользователи.ТекущийПользователь();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
БизнесПроцессыИЗадачиКлиент.ОбновитьДоступностьКомандПринятияКИсполнению(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ВыполнитьЗадачу = Ложь;
Если НЕ (ПараметрыЗаписи.Свойство("ВыполнитьЗадачу", ВыполнитьЗадачу) И ВыполнитьЗадачу) Тогда
Возврат;
КонецЕсли;
Если НЕ ЗаданиеВыполнено И НЕ ЗаданиеПодтверждено
И НЕ ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Укажите причину, по которой задача возвращается на доработку.'"),,
"Объект.РезультатВыполнения",,
Отказ);
Возврат;
ИначеЕсли НЕ ЗаданиеВыполнено И ЗаданиеПодтверждено
И НЕ ЗначениеЗаполнено(ТекущийОбъект.РезультатВыполнения) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Укажите причину, по которой задача отменяется.'"),,
"Объект.РезультатВыполнения",,
Отказ);
Возврат;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ЗаписатьРеквизитыБизнесПроцесса(ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ИнициализацияФормы();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
БизнесПроцессыИЗадачиКлиент.ФормаЗадачиОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
Если ИмяСобытия = "Запись_Задание" Тогда
Если (Источник = ЗаданиеСсылка ИЛИ (ТипЗнч(Источник) = Тип("Массив")
И Источник.Найти(ЗаданиеСсылка) <> Неопределено)) Тогда
Прочитать();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СрокНачалаИсполненияПриИзменении(Элемент)
Если Объект.ДатаНачала = НачалоДня(Объект.ДатаНачала) Тогда
Объект.ДатаНачала = КонецДня(Объект.ДатаНачала);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПредметНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(,Объект.Предмет);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаписатьИЗакрытьВыполнить(Команда)
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Выполнено(Команда)
ЗаданиеПодтверждено = Истина;
ЗаданиеВыполнено = Истина;
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Возвращено(Команда)
ЗаданиеПодтверждено = Ложь;
ЗаданиеВыполнено = Ложь;
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура Отменено(Команда)
ЗаданиеПодтверждено = Истина;
ЗаданиеВыполнено = Ложь;
БизнесПроцессыИЗадачиКлиент.ЗаписатьИЗакрытьВыполнить(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьЗаданиеВыполнить(Команда)
Если Модифицированность Тогда
Записать();
КонецЕсли;
ПоказатьЗначение(, ЗаданиеСсылка);
КонецПроцедуры
&НаКлиенте
Процедура Дополнительно(Команда)
БизнесПроцессыИЗадачиКлиент.ОткрытьДопИнформациюОЗадаче(Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ПринятьКИсполнению(Команда)
БизнесПроцессыИЗадачиКлиент.ПринятьЗадачуКИсполнению(ЭтотОбъект, ТекущийПользователь);
КонецПроцедуры
&НаКлиенте
Процедура ОтменитьПринятиеКИсполнению(Команда)
БизнесПроцессыИЗадачиКлиент.ОтменитьПринятиеЗадачиКИсполнению(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ИнициализацияФормы()
НачальныйПризнакВыполнения = Объект.Выполнена;
ПрочитатьРеквизитыБизнесПроцесса();
УстановитьСостояниеЭлементов();
ИспользоватьДатуИВремяВСрокахЗадач = ПолучитьФункциональнуюОпцию("ИспользоватьДатуИВремяВСрокахЗадач");
Элементы.СрокНачалаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач;
Элементы.ДатаИсполненияВремя.Видимость = ИспользоватьДатуИВремяВСрокахЗадач;
БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.СрокИсполнения);
БизнесПроцессыИЗадачиСервер.УстановитьФорматДаты(Элементы.Дата);
БизнесПроцессыИЗадачиСервер.ФормаЗадачиПриСозданииНаСервере(ЭтотОбъект, Объект,
Элементы.ГруппаСостояние, Элементы.ДатаИсполнения);
Элементы.ОписаниеРезультата.ТолькоПросмотр = Объект.Выполнена;
Исполнитель = ?(ЗначениеЗаполнено(Объект.Исполнитель), Объект.Исполнитель, Объект.РольИсполнителя);
Если ПравоДоступа("Изменение", Метаданные.БизнесПроцессы.Задание) Тогда
Элементы.Выполнено.Доступность = Истина;
Элементы.Отменено.Доступность = Истина;
Элементы.Возвращено.Доступность = Истина;
Иначе
Элементы.Выполнено.Доступность = Ложь;
Элементы.Отменено.Доступность = Ложь;
Элементы.Возвращено.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьРеквизитыБизнесПроцесса()
ЗадачаОбъект = РеквизитФормыВЗначение("Объект");
УстановитьПривилегированныйРежим(Истина);
ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
ЗаданиеВыполнено = ЗаданиеОбъект.Выполнено;
ЗаданиеСсылка = ЗаданиеОбъект.Ссылка;
ЗаданиеПодтверждено = ЗаданиеОбъект.Подтверждено;
ЗаданиеРезультатВыполнения = ЗаданиеОбъект.РезультатВыполнения;
ЗаданиеСодержание = ЗаданиеОбъект.Содержание;
КонецПроцедуры
&НаСервере
Процедура ЗаписатьРеквизитыБизнесПроцесса(ЗадачаОбъект)
УстановитьПривилегированныйРежим(Истина);
БизнесПроцессыИЗадачиСервер.ЗаблокироватьБизнесПроцессы(ЗадачаОбъект.БизнесПроцесс);
ЗаданиеОбъект = ЗадачаОбъект.БизнесПроцесс.ПолучитьОбъект();
ЗаблокироватьДанныеДляРедактирования(ЗаданиеОбъект.Ссылка);
ЗаданиеОбъект.Выполнено = ЗаданиеВыполнено;
ЗаданиеОбъект.Подтверждено = ЗаданиеПодтверждено;
ЗаданиеОбъект.Записать();
КонецПроцедуры
&НаСервере
Процедура УстановитьСостояниеЭлементов()
БизнесПроцессы.Задание.УстановитьСостояниеЭлементовФормыЗадачи(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти