Ввод остатков внеоборотных активов / Сведения о расчетах по договору аренды / Модуль формы

файл

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

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

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

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

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

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

#Область СтраницаОстаткиРасчетов

&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент.Имя);

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

&НаКлиенте
Процедура АрендныеОбязательстваОстатокПриИзменении(Элемент)
	
	Если Элементы.АрендныеОбязательстваОстатокРегл.Видимость
		И ВалютаДоговора = ВалютаРегл
		И АрендныеОбязательстваОстатокРегл = ЗначенияРеквизитовДоИзменения.АрендныеОбязательстваОстаток Тогда
		АрендныеОбязательстваОстатокРегл = АрендныеОбязательстваОстаток;
	КонецЕсли;
	
	Если Элементы.АрендныеОбязательстваОстатокУпр.Видимость
		И ВалютаДоговора = ВалютаУпр
		И АрендныеОбязательстваОстатокУпр = ЗначенияРеквизитовДоИзменения.АрендныеОбязательстваОстаток Тогда
		АрендныеОбязательстваОстатокУпр = АрендныеОбязательстваОстаток;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормы(Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура АрендныеОбязательстваОстатокРеглПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент);

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

&НаКлиенте
Процедура АрендныеОбязательстваОстатокУпрПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент);

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

&НаКлиенте
Процедура УслугаПоАрендеОстатокПриИзменении(Элемент)
	
	Если Элементы.УслугаПоАрендеОстатокРегл.Видимость
		И ВалютаДоговора = ВалютаРегл
		И УслугаПоАрендеОстатокРегл = ЗначенияРеквизитовДоИзменения.УслугаПоАрендеОстаток Тогда
		УслугаПоАрендеОстатокРегл = УслугаПоАрендеОстаток;
	КонецЕсли;
	
	Если Элементы.УслугаПоАрендеОстатокУпр.Видимость
		И ВалютаДоговора = ВалютаУпр
		И УслугаПоАрендеОстатокУпр = ЗначенияРеквизитовДоИзменения.УслугаПоАрендеОстаток Тогда
		УслугаПоАрендеОстатокУпр = УслугаПоАрендеОстаток;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормы(Элемент);

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

&НаКлиенте
Процедура УслугаПоАрендеОстатокРеглПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент);

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

&НаКлиенте
Процедура УслугаПоАрендеОстатокУпрПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент);

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

&НаКлиенте
Процедура ВыкупнаяСтоимостьОстатокПриИзменении(Элемент)
	
	Если Элементы.ВыкупнаяСтоимостьОстатокРегл.Видимость
		И ВалютаДоговора = ВалютаРегл
		И ВыкупнаяСтоимостьОстатокРегл = ЗначенияРеквизитовДоИзменения.ВыкупнаяСтоимостьОстаток Тогда
		ВыкупнаяСтоимостьОстатокРегл = ВыкупнаяСтоимостьОстаток;
	КонецЕсли;
	
	Если Элементы.ВыкупнаяСтоимостьОстатокУпр.Видимость
		И ВалютаДоговора = ВалютаУпр
		И ВыкупнаяСтоимостьОстатокУпр = ЗначенияРеквизитовДоИзменения.ВыкупнаяСтоимостьОстаток Тогда
		ВыкупнаяСтоимостьОстатокУпр = ВыкупнаяСтоимостьОстаток;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормы(Элемент);

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

&НаКлиенте
Процедура ВыкупнаяСтоимостьОстатокРеглПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормы(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ВыкупнаяСтоимостьОстатокУпрПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормы(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура НДСОстатокПриИзменении(Элемент)
	
	Если Элементы.НДСОстатокРегл.Видимость
		И ВалютаДоговора = ВалютаРегл
		И НДСОстатокРегл = ЗначенияРеквизитовДоИзменения.НДСОстаток Тогда
		НДСОстатокРегл = НДСОстаток;
	КонецЕсли;
	
	Если Элементы.НДСОстатокУпр.Видимость
		И ВалютаДоговора = ВалютаУпр
		И НДСОстатокУпр = ЗначенияРеквизитовДоИзменения.НДСОстаток Тогда
		НДСОстатокУпр = НДСОстаток;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормы(Элемент);

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

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

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

&НаКлиенте
Процедура ПроцентыОстатокПриИзменении(Элемент)
	
	Если Элементы.ПроцентыОстатокРегл.Видимость
		И ВалютаДоговора = ВалютаРегл
		И ПроцентыОстатокРегл = ЗначенияРеквизитовДоИзменения.ПроцентыОстаток Тогда
		ПроцентыОстатокРегл = ПроцентыОстаток;
	КонецЕсли;
	
	Если Элементы.ПроцентыОстатокУпр.Видимость
		И ВалютаДоговора = ВалютаУпр
		И ПроцентыОстатокУпр = ЗначенияРеквизитовДоИзменения.ПроцентыОстаток Тогда
		ПроцентыОстатокУпр = ПроцентыОстаток;
	КонецЕсли;
	
	НастроитьЗависимыеЭлементыФормы(Элемент);
	
КонецПроцедуры

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

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

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

#Область СтраницаРасчетыПоДоговору

&НаКлиенте
Процедура СрокАрендыОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)

	СтандартнаяОбработка = Ложь;
	
	УчетАрендованныхОСКлиент.ВвестиСрокАренды(
		ЭтотОбъект, 
		ЭтотОбъект, 
		Новый ОписаниеОповещения("ВвестиСрокАрендыЗавершение", ЭтотОбъект));
	
КонецПроцедуры

&НаКлиенте
Процедура ПериодичностьОплатПриИзменении(Элемент)
	
	Если НЕ ЗначениеЗаполнено(ПериодичностьОплат) Тогда
		ПериодичностьОплат = ПредопределенноеЗначение("Перечисление.ПериодичностьГрафика.Месяц");
	КонецЕсли;
	
	НастроитьЗависимыеЭлементыФормы(Элемент);

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

&НаКлиенте
Процедура ПериодичностьНачисленийПриИзменении(Элемент)
	
	Если НЕ ЗначениеЗаполнено(ПериодичностьНачислений) Тогда
		ПериодичностьНачислений = ПредопределенноеЗначение("Перечисление.ПериодичностьГрафика.Месяц");
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормы(Элемент);

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

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

#Область ГрафикиОплатИНачислений

&НаКлиенте
Процедура ГрафикОплатУслугПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормы(Элемент);	
КонецПроцедуры

&НаКлиенте
Процедура ГрафикНачисленияУслугПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормы(Элемент);	
КонецПроцедуры

&НаКлиенте
Процедура ГрафикНачисленияПроцентовПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормы(Элемент);	
КонецПроцедуры

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыАвансыПоДоговорамАренды

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

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

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

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

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

&НаКлиенте
Процедура ЗагрузитьГрафик_ГрафикОплат(Команда)
	
	ЗагрузитьГрафик("ГрафикОплатУслуг");

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

&НаКлиенте
Процедура ЗагрузитьГрафик_ГрафикНачислений(Команда)
	
	ЗагрузитьГрафик("ГрафикНачисленияУслуг");

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

&НаКлиенте
Процедура ЗагрузитьГрафик_ГрафикПроцентов(Команда)
	
	ЗагрузитьГрафик("ГрафикНачисленияПроцентов");

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

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

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

#Область ПриИзмененииРеквизитов

&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(Знач ИзмененныеРеквизитыИлиЭлемент = "")

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

&НаКлиентеНаСервереБезКонтекста
Процедура НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(Форма, ИзмененныеРеквизиты = "")

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

		Элементы.ДекорацияОстаткиУпр.Видимость = 
			Элементы.АрендныеОбязательстваОстатокУпр.Видимость
			ИЛИ Элементы.УслугаПоАрендеОстатокУпр.Видимость
			ИЛИ Элементы.ВыкупнаяСтоимостьОстатокУпр.Видимость
			ИЛИ Элементы.НДСОстатокУпр.Видимость
			ИЛИ Элементы.ПроцентыОстатокУпр.Видимость;

		//
		Элементы.АрендныеОбязательстваОстатокДекорация.Видимость =
			Элементы.АрендныеОбязательстваОстаток.Видимость
			ИЛИ Элементы.АрендныеОбязательстваОстатокРегл.Видимость
			ИЛИ Элементы.АрендныеОбязательстваОстатокУпр.Видимость;

		Элементы.УслугаПоАрендеОстатокДекорация.Видимость =
			Элементы.УслугаПоАрендеОстаток.Видимость
			ИЛИ Элементы.УслугаПоАрендеОстатокРегл.Видимость
			ИЛИ Элементы.УслугаПоАрендеОстатокУпр.Видимость;

		Элементы.ВыкупнаяСтоимостьОстатокДекорация.Видимость =
			Элементы.ВыкупнаяСтоимостьОстаток.Видимость
			ИЛИ Элементы.ВыкупнаяСтоимостьОстатокРегл.Видимость
			ИЛИ Элементы.ВыкупнаяСтоимостьОстатокУпр.Видимость;

		Элементы.НДСОстатокДекорация.Видимость =
			Элементы.НДСОстаток.Видимость
			ИЛИ Элементы.НДСОстатокРегл.Видимость
			ИЛИ Элементы.НДСОстатокУпр.Видимость;

		Элементы.ПроцентыОстатокДекорация.Видимость =
			Элементы.ПроцентыОстаток.Видимость
			ИЛИ Элементы.ПроцентыОстатокРегл.Видимость
			ИЛИ Элементы.ПроцентыОстатокУпр.Видимость;

		//
		Элементы.АрендныеОбязательстваСальдоДебетовое.Видимость = 
			Элементы.АрендныеОбязательстваОстаток.Видимость
			ИЛИ Элементы.АрендныеОбязательстваОстатокРегл.Видимость
			ИЛИ Элементы.АрендныеОбязательстваОстатокУпр.Видимость;
		
		Элементы.УслугаПоАрендеСальдоДебетовое.Видимость = 
			Элементы.УслугаПоАрендеОстаток.Видимость
			ИЛИ Элементы.УслугаПоАрендеОстатокРегл.Видимость
			ИЛИ Элементы.УслугаПоАрендеОстатокУпр.Видимость;
		
		Элементы.ВыкупнаяСтоимостьСальдоДебетовое.Видимость = 
			Элементы.ВыкупнаяСтоимостьОстаток.Видимость
			ИЛИ Элементы.ВыкупнаяСтоимостьОстатокРегл.Видимость
			ИЛИ Элементы.ВыкупнаяСтоимостьОстатокУпр.Видимость;

		Элементы.НДССальдоДебетовое.Видимость = 
			Элементы.НДСОстаток.Видимость
			ИЛИ Элементы.НДСОстатокРегл.Видимость
			ИЛИ Элементы.НДСОстатокУпр.Видимость;

		Элементы.ПроцентыСальдоДебетовое.Видимость = 
			Элементы.ПроцентыОстаток.Видимость
			ИЛИ Элементы.ПроцентыОстатокРегл.Видимость
			ИЛИ Элементы.ПроцентыОстатокУпр.Видимость;

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

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

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

		//
		ЗначениеСвойства = 
			ВспомогательныеРеквизиты.ОтражатьВОперативномУчете
			И ВспомогательныеРеквизиты.ИспользуетсяУчетАрендыПоФСБУ25_2018;
			
		Элементы.ГрафикНачисленияПроцентов.Видимость = ЗначениеСвойства;

	КонецЕсли;

	Если СтруктураИзмененныхРеквизитов.Свойство("ГрафикОплатУслуг")
		ИЛИ ОбновитьВсе Тогда
		Форма.Оплата_КоличествоСтрок = Форма.ГрафикОплатУслуг.Количество();
	КонецЕсли;
	
	Если СтруктураИзмененныхРеквизитов.Свойство("ГрафикНачисленияУслуг")
		ИЛИ ОбновитьВсе Тогда
		Форма.Начисление_КоличествоСтрок = Форма.ГрафикНачисленияУслуг.Количество();
	КонецЕсли;
	
	Если СтруктураИзмененныхРеквизитов.Свойство("ГрафикНачисленияПроцентов")
		ИЛИ ОбновитьВсе Тогда
		Форма.Проценты_КоличествоСтрок = Форма.ГрафикНачисленияПроцентов.Количество();
	КонецЕсли;
	
	#КонецОбласти
	
КонецПроцедуры

&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(Знач ИзмененныеРеквизиты = "")

	СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
	ОбновитьВсе = СтруктураИзмененныхРеквизитов.Количество() = 0;
	
	Если СтруктураИзмененныхРеквизитов.Свойство("Договор")
		ИЛИ ОбновитьВсе Тогда
		
		ВспомогательныеРеквизиты = Документы.ВводОстатковВнеоборотныхАктивов2_4.ВспомогательныеРеквизиты(ЭтотОбъект, Истина);
		
		ВалютаДоговора = ВспомогательныеРеквизиты.РеквизитыДоговора.ВалютаВзаиморасчетов;
		Элементы.ДекорацияОстаткиВВалютеДоговора.Заголовок = Строка(ВалютаДоговора);
		
	КонецЕсли;
	
	Если ОбновитьВсе Тогда
		
		Элементы.ДекорацияОстаткиУпр.Заголовок = СтрШаблон(НСтр("ru = 'Упр. (%1):'"), Строка(ВалютаУпр));
		Элементы.ДекорацияОстаткиРегл.Заголовок = СтрШаблон(НСтр("ru = 'Регл. (%1):'"), Строка(ВалютаРегл));
		
		//
		Если ТолькоПросмотр Тогда
			Элементы.ФормаЗаписатьИЗакрыть.Доступность = Ложь;
		КонецЕсли;
		
	КонецЕсли;	
	
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, ИзмененныеРеквизиты);

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

&НаКлиентеНаСервереБезКонтекста
Процедура ПриИзмененииРеквизитов(Объект, ИзмененныеРеквизиты)

	Если НЕ ЗначениеЗаполнено(ИзмененныеРеквизиты) Тогда
		Возврат; 
	КонецЕсли; 
	
	СписокРеквизитов = СтрРазделить(ИзмененныеРеквизиты, ",");
	
	ИзмененныеРеквизиты = СтрСоединить(СписокРеквизитов, ",");
	
КонецПроцедуры

&НаКлиенте
Функция ТребуетсяВызовСервераДляНастройкиЭлементовФормы(СтруктураИзмененныхРеквизитов)

	Если СтруктураИзмененныхРеквизитов.Количество() = 0
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ГруппаФинансовогоУчета")
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Договор") Тогда
		Возврат Истина;
	КонецЕсли; 
	
	Возврат Ложь;

КонецФункции

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

#Область Графики

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

&НаКлиенте
Процедура ЗагрузитьГрафикЗавершение(РезультатЗакрытия, ИмяГрафика) Экспорт
	
	Если ТипЗнч(РезультатЗакрытия) = Тип("Строка") 
		И ЭтоАдресВременногоХранилища(РезультатЗакрытия) Тогда
		ЗагрузитьГрафикЗавершениеНаСервере(РезультатЗакрытия, ИмяГрафика);
	КонецЕсли;

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

&НаСервере
Процедура ЗагрузитьГрафикЗавершениеНаСервере(Знач АдресРезультата, Знач ИмяГрафика)
	
	ТаблицаГрафика = ПолучитьИзВременногоХранилища(АдресРезультата);
	
	Если ИмяГрафика = "ГрафикОплатУслуг" Тогда
		ТаблицаПриемник = ГрафикОплатУслуг;
	ИначеЕсли ИмяГрафика = "ГрафикНачисленияУслуг" Тогда
		ТаблицаПриемник = ГрафикНачисленияУслуг;
	ИначеЕсли ИмяГрафика = "ГрафикНачисленияПроцентов" Тогда
		ТаблицаПриемник = ГрафикНачисленияПроцентов;
	КонецЕсли;

	ТаблицаПриемник.Загрузить(ТаблицаГрафика);
	ТаблицаПриемник.Сортировать("Дата");
	
	НастроитьЗависимыеЭлементыФормыНаСервере(ИмяГрафика);
	
КонецПроцедуры

&НаКлиенте
Процедура ВвестиСрокАрендыЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	Если Результат = Неопределено 
		ИЛИ ТипЗнч(Результат) <> Тип("Структура") Тогда
		Возврат;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормы("ДатаНачалаАренды,СрокЛет,СрокМес,СрокДней");
	
КонецПроцедуры

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

#Область Прочее

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()

	ПолучитьДанныеИзСвязанныхТаблиц();
	
	ВалютаУпр = Константы.ВалютаУправленческогоУчета.Получить();
	ВалютаРегл = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация);
	
	ОбновитьЗначенияРеквизитовДоИзменения(ЭтотОбъект);
	
	НастроитьЗависимыеЭлементыФормыНаСервере();

	Если Параметры.НоваяСтрока И НЕ Параметры.Копирование Тогда
		ЗаполнитьЗначенияПоУмолчанию();
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ЗавершитьРедактированиеЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
		Возврат;
	КонецЕсли;
	
	РезультатРедактирования = Новый Структура(РедактируемыеРеквизиты);
	ЗаполнитьЗначенияСвойств(РезультатРедактирования, ЭтотОбъект);
	
	ПоместитьВоВременноеХранилищеДанныеСвязанныхТаблиц();

	Модифицированность = Ложь;
	
	Закрыть(РезультатРедактирования);
	
КонецПроцедуры

&НаСервере
Процедура ПолучитьДанныеИзСвязанныхТаблиц()

	Если НЕ ЭтоАдресВременногоХранилища(АдресДанныхВСвязанныхТаблицах) Тогда
		Возврат;
	КонецЕсли;
	
	ДанныеТаблиц = ПолучитьИзВременногоХранилища(АдресДанныхВСвязанныхТаблицах);
	
	Если ДанныеТаблиц = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ГрафикОплатУслуг.Загрузить(ДанныеТаблиц.ГрафикОплатУслуг);
	ГрафикНачисленияУслуг.Загрузить(ДанныеТаблиц.ГрафикНачисленияУслуг);
	ГрафикНачисленияПроцентов.Загрузить(ДанныеТаблиц.ГрафикНачисленияПроцентов);
	АвансыПоДоговорамАренды.Загрузить(ДанныеТаблиц.АвансыПоДоговорамАренды);
	
КонецПроцедуры

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

&НаСервере
Процедура ЗаполнитьЗначенияПоУмолчанию()

	Если Элементы.НДССальдоДебетовое.Видимость Тогда
		НДССальдоДебетовое = Истина;
	КонецЕсли;
	
	Если Элементы.ПроцентыСальдоДебетовое.Видимость Тогда
		ПроцентыСальдоДебетовое = Истина;
	КонецЕсли;
		
	Если Элементы.ПериодичностьОплат.Видимость Тогда
		ПериодичностьОплат = Перечисления.ПериодичностьГрафика.Произвольная;
	КонецЕсли;
		
	Если Элементы.ПериодичностьНачислений.Видимость Тогда
		ПериодичностьНачислений = Перечисления.ПериодичностьГрафика.Произвольная;
	КонецЕсли;
		
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьЗначенияРеквизитовДоИзменения(Форма)

	СписокРеквизитов = 
	"АрендныеОбязательстваОстаток,АрендныеОбязательстваОстатокРегл,АрендныеОбязательстваОстатокУпр,
	|УслугаПоАрендеОстаток,УслугаПоАрендеОстатокРегл,УслугаПоАрендеОстатокУпр,
	|ВыкупнаяСтоимостьОстаток,ВыкупнаяСтоимостьОстатокРегл,ВыкупнаяСтоимостьОстатокУпр,
	|НДСОстаток,НДСОстатокРегл,НДСОстатокУпр,
	|ПроцентыОстаток,ПроцентыОстатокРегл,ПроцентыОстатокУпр";
	
	НовыеЗначения = Новый Структура(СписокРеквизитов);
	ЗаполнитьЗначенияСвойств(НовыеЗначения, Форма);
	
	Форма.ЗначенияРеквизитовДоИзменения = Новый ФиксированнаяСтруктура(НовыеЗначения);
	
КонецПроцедуры

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

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

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