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

файл

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

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

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

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

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

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	НастройкаСчетовУчетаСервер.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
	
	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(
		ЭтотОбъект,
		ТекущийОбъект,
		ПараметрыЗаписи);
	// Конец ИнтеграцияС1СДокументооборотом
	
КонецПроцедуры

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

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

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

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
	
	ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
	
	СобытияФорм.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
	
	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
	// Конец СтандартныеПодсистемы.РаботаСФайлами

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

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

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

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

&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
	
	ВнеоборотныеАктивыКлиент.УстановитьТекущееВремяДляПрошлойДаты(Объект.Дата);

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

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

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

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

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

#Область СтраницаРасходыИДоходы

#Область УвеличениеСтоимости

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

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

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

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

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

#Область УменьшениеСтоимости

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура АналитикаРасходовУменьшениеСтоимостиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

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

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

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

#Область УвеличениеАмортизации

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область УменьшениеАмортизацииТекущегоГода

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

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

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

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

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

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

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

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

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

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

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

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

#Область УменьшениеАмортизацииПрошлыхЛет

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

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

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

&НаКлиенте
Процедура ПараметрыРасходовСовпадаютСДаннымиУчетаУменьшениеАмортизацииПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы("ПараметрыРасходовСовпадаютСДаннымиУчетаУменьшениеАмортизации");
	
КонецПроцедуры

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

#Область УвеличениеДоходовЦФ

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

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

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

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

&НаКлиенте
Процедура АналитикаРасходовУвеличениеДоходовЦФОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура ПредставлениеОтраженияУвеличениеДоходовЦФНажатие(Элемент, СтандартнаяОбработка)
	
	НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура ПараметрыРасходовСовпадаютСДаннымиУчетаУвеличениеДоходовЦФПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
	
КонецПроцедуры

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

#Область УменьшениеДоходовЦФ

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

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

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

&НаКлиенте
Процедура ПараметрыРасходовСовпадаютСДаннымиУчетаУменьшениеДоходовЦФПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы("ПараметрыРасходовСовпадаютСДаннымиУчетаУменьшениеДоходовЦФ");
	
КонецПроцедуры

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

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

#Область Локализация

&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизита(Элемент)

	КорректировкаСтоимостиИАмортизацииНМАКлиентЛокализация.ПриИзмененииРеквизита(Элемент, ЭтаФорма);

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

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

#Область СтандартныеПодсистемы

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)

	РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

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

	РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

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

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

	РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

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

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

&НаКлиенте
Процедура НМАОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	ПодборНаСервере(ВыбранноеЗначение);
	
КонецПроцедуры

&НаКлиенте
Процедура НМАНематериальныйАктивПриИзменении(Элемент)
	
	НМАНематериальныйАктивПриИзмененииНаСервере();
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура ПровестиДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма);
	
КонецПроцедуры

#Область ПодключаемыеКоманды

// ИнтеграцияС1СДокументооборотом
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
	
	ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(
		Команда,
		ЭтотОбъект,
		Объект);
	
КонецПроцедуры
// Конец ИнтеграцияС1СДокументооборотом

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
	ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)

	РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

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

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

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

&НаКлиенте
Процедура ПриОкончанииИзмененияРеквизитаЛокализации(ИмяЭлемента, ПараметрыОповещения) Экспорт
	
	Перем ПараметрыДействия;

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

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

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

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

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

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

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

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

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

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

	#Область СтраницаРасходыИДоходы

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

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

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

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

	КонецЕсли;

	Если СтруктураИзмененныхРеквизитов.Свойство("КорректировкаАмортизации") 
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ОтражениеУменьшенияАмортизации") 
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ОтражениеУменьшенияАмортизацииСторно") 
		ИЛИ ОбновитьВсе Тогда

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

	КонецЕсли;

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

	КорректировкаСтоимостиИАмортизацииНМАКлиентСерверЛокализация.НастроитьЗависимыеЭлементыФормы(Форма, СтруктураИзмененныхРеквизитов);
	
КонецПроцедуры

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

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

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

&НаКлиенте

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

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

&НаСервере
Процедура НМАНематериальныйАктивПриИзмененииНаСервере()

	ЗаполнитьШапкуПоВыбраннымНМА();

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

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

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

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

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

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

&НаСервере
Процедура ИнициализацияФормыПриСозданииНаСервере()

	ИнициализироватьСлужебныеПараметрыФормы();
	
КонецПроцедуры

&НаСервере
Процедура ИнициализироватьСлужебныеПараметрыФормы()

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

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

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

&НаСервере
Процедура ПодборНаСервере(ВыбранноеЗначение)

	ДобавленныеСтроки = ВнеоборотныеАктивыКлиентСервер.ОбработкаВыбораЭлемента(Объект.НМА, "НематериальныйАктив", ВыбранноеЗначение);
	Если ДобавленныеСтроки.Количество() <> 0 Тогда
		ЗаполнитьШапкуПоВыбраннымНМА();
		ЗаполнитьПоДаннымУчетаНаСервере(ДобавленныеСтроки);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

	Документы.КорректировкаСтоимостиИАмортизацииНМА.ЗаполнитьПоДаннымУчета(Объект, СписокСтрок);

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

&НаКлиентеНаСервереБезКонтекста
Функция ЗаполнитьРеквизитыВЗависимостиОтСвойств(Форма, ПараметрыРеквизитовОбъекта)

	Объект = Форма.Объект;
	Элементы = Форма.Элементы;

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

&НаСервере
Процедура ЗаполнитьШапкуПоВыбраннымНМА()

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

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

&НаСервере
Процедура РассчитатьАмортизациюПриПереходеНаФСБУ14НаСервере()

	СписокСтрок = Новый Массив;
	
	Для каждого ИдентификаторСтроки Из Элементы.НМА.ВыделенныеСтроки Цикл
		ДанныеСтроки = Объект.НМА.НайтиПоИдентификатору(ИдентификаторСтроки);
		СписокСтрок.Добавить(ДанныеСтроки);
	КонецЦикла; 
	
	Документы.КорректировкаСтоимостиИАмортизацииНМА.РассчитатьАмортизациюПриПереходеНаФСБУ14(Объект, СписокСтрок);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьУсловноеОформление()
	
	УсловноеОформление.Элементы.Очистить();
	
	КорректировкаСтоимостиИАмортизацииНМАЛокализация.УстановитьУсловноеОформление(ЭтотОбъект);
		
КонецПроцедуры

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

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

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

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

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

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

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

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

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