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

файл

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

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

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

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

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

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

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

#Область СтраницаУчет

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

	ОсновноеСредствоПриИзмененииНаСервере();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура АдресМестонахожденияПриИзменении(Элемент)
	
	ПриИзмененииПредставленияАдреса(Элемент);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура КорректировкаСтоимостиАрендованногоИмуществаНУПриИзменении(Элемент)
	
	КорректировкаСтоимостиАрендованногоИмуществаВР = -КорректировкаСтоимостиАрендованногоИмуществаНУ;
	
КонецПроцедуры

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

#Область СтраницаСобытия

&НаКлиенте
Процедура ЕстьИзменениеПараметровАмортизацииБУПриИзменении(Элемент)

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

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

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

&НаКлиенте
Процедура РезервПереоценкиСтоимостиРеглСуммаПриИзменении(Элемент)
	
	Если ТекущаяСтоимостьБУ <> 0 И РезервПереоценкиСтоимостиРеглСумма <> 0 Тогда
		МножительЦФ = ?(ПрименениеЦелевогоФинансирования, 1, 0);
		РезервПереоценкиАмортизацииРеглСумма = 
			(НакопленнаяАмортизацияБУ + МножительЦФ * НакопленнаяАмортизацияБУЦФ)
			* (РезервПереоценкиСтоимостиРеглСумма / (ТекущаяСтоимостьБУ + МножительЦФ * ТекущаяСтоимостьБУ));
	КонецЕсли;

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

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

&НаКлиенте
Процедура РезервПереоценкиСтоимостиСуммаПриИзменении(Элемент)
	
	Если ТекущаяСтоимостьУУ <> 0 И РезервПереоценкиСтоимостиСумма <> 0 Тогда
		РезервПереоценкиАмортизацииСумма = 
			НакопленнаяАмортизацияУУ
			* (РезервПереоценкиСтоимостиСумма / ТекущаяСтоимостьУУ);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура РезервПереоценкиСтоимостиРеглСумма1ПриИзменении(Элемент)
	
	Если ТекущаяСтоимостьБУ <> 0 И РезервПереоценкиСтоимостиРеглСумма <> 0 Тогда
		РезервПереоценкиАмортизацииРеглСумма = 
			НакопленнаяАмортизацияБУ
			* (РезервПереоценкиСтоимостиРеглСумма / ТекущаяСтоимостьБУ);
	КонецЕсли;
	
КонецПроцедуры

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

#Область СтраницаАмортизация

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

&НаКлиенте
Процедура МетодНачисленияАмортизацииБУПриИзменении(Элемент)
	
	МетодНачисленияАмортизацииБУПриИзмененииНаСервере();
	
КонецПроцедуры

&НаКлиенте
Процедура СрокИспользованияБУПриИзменении(Элемент)
	
	ПриИзмененииСрокаИспользования("СрокИспользованияБУ", Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура СрокИспользованияБУОстаточныйПриИзменении(Элемент)
	
	ПриИзмененииСрокаИспользования("СрокИспользованияБУОстаточный", Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура СрокИспользованияНУПриИзменении(Элемент)
	
	ПриИзмененииСрокаИспользования("СрокИспользованияНУ", Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура СрокИспользованияУУПриИзменении(Элемент)
	
	ПриИзмененииСрокаИспользования("СрокИспользованияУУ", Ложь);
	
КонецПроцедуры

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

&НаКлиенте
Процедура МетодНачисленияАмортизацииУУПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы("МетодНачисленияАмортизацииУУ,КоэффициентАмортизацииБУ");
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	НастроитьЗависимыеЭлементыФормы("СпособОтраженияРасходовБУ,НаправлениеДеятельностиБУ");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ВводОстатковВнеоборотныхАктивовКлиентЛокализация.ФормаРедактированияСтрокиОС_ПриИзмененииРеквизита(
		Элемент, ЭтотОбъект);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Перем ПараметрыДействия;
	
	ВводОстатковВнеоборотныхАктивовЛокализация.ФормаРедактированияСтрокиОС_ПриИзмененииРеквизита(
		ИмяЭлемента, ЭтотОбъект, ДополнительныеПараметры);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПриИзмененииСрокаИспользования(ИмяРеквизита, ОбновитьЕслиСовпадают)

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

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

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

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

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

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

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

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

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

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

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

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

	Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПоказательНаработки, "ЕдиницаИзмерения");

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

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

	ВнеоборотныеАктивыКлиент.ПриИзмененииПредставленияАдреса(
		Элемент,
		АдресМестонахождения,
		АдресМестонахожденияЗначение);

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура ПроверитьЗаполнениеАналитик(ПараметрыРеквизитовОбъекта, ПроверяемыеРеквизиты, Отказ)

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

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

	ВспомогательныеРеквизиты = Документы.ВводОстатковВнеоборотныхАктивов2_4.ВспомогательныеРеквизиты(ЭтотОбъект, Истина);

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

&НаСервереБезКонтекста
Функция ПараметрыВыбораСтатейИАналитик()
	
	ПараметрыВыбораСтатейИАналитик = Новый Массив;
	
	// СтатьяРасходовБУ
	ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
	ПараметрыВыбора.ПутьКДанным = "";
	ПараметрыВыбора.Статья = "СтатьяРасходовБУ";
	ПараметрыВыбора.ДоступностьПоОперации = Неопределено;
	
	ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
	ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходовБУ";
	
	ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СтатьяРасходовБУ");
	ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("АналитикаРасходовБУ");
	
	ПараметрыВыбораСтатейИАналитик.Добавить(ПараметрыВыбора);
	
	// СтатьяРасходовУУ
	ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
	ПараметрыВыбора.ПутьКДанным = "";
	ПараметрыВыбора.Статья = "СтатьяРасходовУУ";
	ПараметрыВыбора.ДоступностьПоОперации = Неопределено;
	
	ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
	ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходовУУ";
	
	ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СтатьяРасходовУУ");
	ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("АналитикаРасходовУУ");
	
	ПараметрыВыбораСтатейИАналитик.Добавить(ПараметрыВыбора);
	
	//
	ВводОстатковВнеоборотныхАктивовЛокализация.ФормаОсновныеСредства_ДополнитьПараметрыВыбораСтатейИАналитик(ПараметрыВыбораСтатейИАналитик);
	
	Возврат ПараметрыВыбораСтатейИАналитик;
	
КонецФункции

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

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

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

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