Договоры аренды (лизинга) / Ввод срока аренды / Модуль формы

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;
	
	ДатаНачалаАренды = Параметры.ДатаНачалаАренды;
	СрокЛет = Параметры.СрокЛет;
	СрокМес = Параметры.СрокМес;
	СрокДней = Параметры.СрокДней;
	
	ЗаполнитьДатуОкончания(ЭтотОбъект);
	
	Если ТолькоПросмотр Тогда
		Элементы.ДекорацияПодвал.Видимость = Ложь;
		Элементы.ТекстПодвала.Видимость = Ложь;
	КонецЕсли;
	
КонецПроцедуры

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

КонецПроцедуры

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

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

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ДатаНачалаАрендыПриИзменении(Элемент)
	ЗаполнитьСрокАренды(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура ДатаОкончанияАрендыПриИзменении(Элемент)
	ЗаполнитьСрокАренды(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура СрокЛетПриИзменении(Элемент)
	ЗаполнитьДатуОкончания(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура СрокМесПриИзменении(Элемент)
	ЗаполнитьДатуОкончания(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура СрокДнейПриИзменении(Элемент)
	ЗаполнитьДатуОкончания(ЭтотОбъект);
КонецПроцедуры

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

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура ЗавершитьРедактирование(Команда)
	
	ЗавершитьРедактированиеИЗакрыть();
	
КонецПроцедуры

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьДатуОкончания(Форма)
	
	Форма.ДатаОкончанияАренды = ВнеоборотныеАктивыКлиентСервер.ДатаОкончанияПоСроку(
		Форма.ДатаНачалаАренды, Форма.СрокЛет, Форма.СрокМес, Форма.СрокДней);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьСрокАренды(Форма)
	
	ВнеоборотныеАктивыКлиентСервер.РассчитатьСрокПоПериоду(
		Форма.ДатаНачалаАренды, Форма.ДатаОкончанияАренды, Форма.СрокЛет, Форма.СрокМес, Форма.СрокДней);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьИЗакрытьНаКлиенте(Результат, ДополнительныеПараметры) Экспорт 
	
	ЗавершитьРедактированиеИЗакрыть();
	
КонецПроцедуры

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

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

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