Корректировка стоимости и амортизации ОС / Параметры корректировки / Модуль формы

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

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

	Если НЕ ОтражатьВБУ
			И НЕ ОтражатьВУпрУчете
		ИЛИ НЕ Параметры.ВедетсяРегламентированныйУчетВНА
		ИЛИ НЕ (ОтражатьВУпрУчете
					И Параметры.ПорядокУчетаВНА = Перечисления.ПорядокУчетаВНА.ПоСтандартамРегл
				ИЛИ ОтражатьВБУ
					И НЕ Параметры.ПрименяетсяФСБУ6) Тогда
			
		Элементы.КорректировкаПараметровРасчетаАмортизации.Видимость = Ложь;
	КонецЕсли;
	
	Если НЕ ОтражатьВНУ
		ИЛИ НЕ Параметры.ПлательщикНалогаНаПрибыль Тогда
			
		Элементы.КорректировкаАмортизационнойПремии.Видимость = Ложь;
		Элементы.ДекорацияОтступКорректировкаАмортизационнойПремии1.Видимость = Ложь;
		Элементы.ДекорацияОтступКорректировкаАмортизационнойПремии2.Видимость = Ложь;
		Элементы.ОтражениеУвеличенияАмортизационнойПремии.Видимость = Ложь;
		Элементы.ОтражениеУменьшенияАмортизационнойПремии.Видимость = Ложь;
		Элементы.ОтражениеУменьшенияАмортизационнойПремииСторно.Видимость = Ложь;
		Элементы.КорректировкаСуммыРасходовНУПриИНВ.Видимость = Ложь;
	КонецЕсли;
	
	Если НЕ ОтражатьВНУ Тогда
		Элементы.ДекорацияОтступОтражениеИзмененияСтоимостиНУЗаСчетПР.Видимость = Ложь;
		Элементы.ОтражениеИзмененияСтоимостиНУЗаСчетПР.Видимость = Ложь;
	КонецЕсли;
	
	Если (НЕ Параметры.ОтражатьВБУ
			ИЛИ Параметры.ПрименяетсяФСБУ6)
		И (НЕ Параметры.ОтражатьВУпрУчете
			ИЛИ Параметры.ПорядокУчетаВНА = Перечисления.ПорядокУчетаВНА.ПоСтандартамМУ) Тогда
		
		Элементы.КорректировкаПараметровРасчетаАмортизации.Видимость = Ложь;
	КонецЕсли;
	
	Если УточнениеПериода <> 0 Тогда
		КорректировкаВСвязиСИзменениемУчетнойПолитики = Истина;
	КонецЕсли;

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

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)

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

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

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

&НаКлиенте
Процедура КорректировкаСтоимостиПриИзменении(Элемент)
	
	Если КорректировкаСтоимости Тогда
		ОтражениеУвеличенияСтоимости = Истина;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент.Имя);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтражениеУвеличенияСтоимостиПриИзменении(Элемент)

	Если НЕ ОтражениеУвеличенияСтоимости И НЕ ОтражениеУменьшенияСтоимости Тогда
		ОтражениеУвеличенияСтоимости = Истина;
	КонецЕсли;
	
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент.Имя);

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

&НаКлиенте
Процедура ОтражениеУменьшенияСтоимостиПриИзменении(Элемент)

	Если НЕ ОтражениеУвеличенияСтоимости И НЕ ОтражениеУменьшенияСтоимости Тогда
		ОтражениеУменьшенияСтоимости = Истина;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент.Имя);
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура КорректировкаАмортизационнойПремииПриИзменении(Элемент)
	
	Если КорректировкаАмортизационнойПремии Тогда
		ОтражениеУвеличенияАмортизационнойПремии = Истина;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент.Имя);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтражениеУвеличенияАмортизацииПриИзменении(Элемент)
	
	Если НЕ ОтражениеУвеличенияАмортизации И НЕ ОтражениеУменьшенияАмортизации Тогда
		ОтражениеУвеличенияАмортизации = Истина;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент.Имя);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтражениеУменьшенияАмортизацииПриИзменении(Элемент)

	Если НЕ ОтражениеУвеличенияАмортизации И НЕ ОтражениеУменьшенияАмортизации Тогда
		ОтражениеУменьшенияАмортизации = Истина;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент.Имя);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ОтражениеУвеличенияАмортизационнойПремииПриИзменении(Элемент)
	
	Если НЕ ОтражениеУвеличенияАмортизационнойПремии И НЕ ОтражениеУменьшенияАмортизационнойПремии Тогда
		ОтражениеУвеличенияАмортизационнойПремии = Истина;
	ИначеЕсли ОтражениеУвеличенияАмортизационнойПремии И ОтражениеУменьшенияАмортизационнойПремии Тогда
		ОтражениеУменьшенияАмортизационнойПремии = Ложь;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(
		ЭтотОбъект, "ОтражениеУвеличенияАмортизационнойПремии,ОтражениеУменьшенияАмортизационнойПремии");
	
КонецПроцедуры

&НаКлиенте
Процедура ОтражениеУменьшенияАмортизационнойПремииПриИзменении(Элемент)

	Если НЕ ОтражениеУвеличенияАмортизационнойПремии И НЕ ОтражениеУменьшенияАмортизационнойПремии Тогда
		ОтражениеУменьшенияАмортизационнойПремии = Истина;
	ИначеЕсли ОтражениеУвеличенияАмортизационнойПремии И ОтражениеУменьшенияАмортизационнойПремии Тогда
		ОтражениеУвеличенияАмортизационнойПремии = Ложь;
	КонецЕсли;

	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(
		ЭтотОбъект, "ОтражениеУвеличенияАмортизационнойПремии,ОтражениеУменьшенияАмортизационнойПремии");
	
КонецПроцедуры

&НаКлиенте
Процедура КорректировкаВСвязиСИзменениемУчетнойПолитикиПриИзменении(Элемент)

	УточнениеПериода = ?(КорректировкаВСвязиСИзменениемУчетнойПолитики,
		РеглУчетКлиентСервер.ОсновноеЗначениеУточненияМежотчетногоПериода(), 0);

	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент.Имя);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ЗавершитьРедактирование(Команда)
	
	Результат = РезультатРедактирования();
	
	Если Результат <> Неопределено Тогда
		Модифицированность = Ложь;
		Закрыть(Результат);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

	Если НЕ ОбновитьВсе Тогда
		
		ОбщегоНазначенияУТКлиентСервер.ОчиститьНеиспользуемыеРеквизиты(Форма, ПараметрыРеквизитовОбъекта);
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

	Возврат ПараметрыРеквизитовОбъекта;
	
КонецФункции

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

	Результат = РезультатРедактирования();
	
	Если Результат <> Неопределено Тогда
		Закрыть(Результат);
	КонецЕсли;
	
КонецПроцедуры

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

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

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