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