Обесценение внеоборотных активов / Форма документа / Модуль формы

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

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

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

	// СтандартныеПодсистемы.ВерсионированиеОбъектов
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтаФорма);
	// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

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

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

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

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

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

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом

	ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);

	СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);

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

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

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

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

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыЕдиницыГенерирующиеДенежныеСредства

&НаКлиенте
Процедура ЕдиницыГенерирующиеДенежныеСредстваОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	ВнеоборотныеАктивыКлиентСервер.ОбработкаВыбораЭлемента(Объект.ЕдиницыГенерирующиеДенежныеСредства, "ЕГДС", ВыбранноеЗначение);
	
КонецПроцедуры

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

	ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма, Истина);

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

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

	ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецПроцедуры
// Конец СтандартныеПодсистемы.Свойства

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

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

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

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

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

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

// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

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

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

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

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

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

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

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

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

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

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

&НаСервере
Функция ЗаполнитьВНА()
	
	Объект.ЕдиницыГенерирующиеДенежныеСредства.Очистить();
	Объект.ОсновныеСредства.Очистить();
	Объект.НематериальныеАктивы.Очистить();

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

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

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

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

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

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

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

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

&НаСервере
Процедура УстановитьУсловноеОформление()

	//ЕдиницыГенерирующиеДенежныеСредства
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

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

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

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<нет признаков обесценения>'"));

	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

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

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

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<нет признаков обесценения>'"));
	
	//ОсновныеСредства
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

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

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

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<нет признаков обесценения>'"));

	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

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

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

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<нет признаков обесценения>'"));
	
	//НематериальныеАктивы
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

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

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

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<нет признаков обесценения>'"));

	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();

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

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

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<нет признаков обесценения>'"));

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

#Область ЗаполнениеТабличнойЧасти

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

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

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

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

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

&НаСервере
Процедура УправлениеЭлементамиФормыСервер()

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

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

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

&НаКлиенте
Процедура ОбновитьСумму(Сумма, СуммаПересчета, Коэффициент)
		
	Если Сумма <> 0 И СуммаПересчета = 0 Тогда
		СуммаПересчета = Сумма * Коэффициент;
	КонецЕсли;
	
КонецПроцедуры

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

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