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