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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Функция ПараметрыКорректировки()
	
	ПараметрыКорректировки = 
	"КорректировкаСтоимости,КорректировкаПервоначальнойСтоимости,
	|КорректировкаАмортизации,ВключаетАмортизациюТекущегоМесяца,
	|УточнениеПериода,ПрименениеЦелевогоФинансирования,
	|ОтражениеУвеличенияСтоимости,ОтражениеУменьшенияСтоимости,ОтражениеУменьшенияСтоимостиСторно,
	|ОтражениеУвеличенияАмортизации,ОтражениеУменьшенияАмортизации,ОтражениеУменьшенияАмортизацииСторно,
	|РаздельнаяКорректировкаТекущегоИПрошлогоПериодов";
	
	Возврат ПараметрыКорректировки;
	
КонецФункции

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

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