Переоценка НМА / Форма документа / Модуль формы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ДатаПриИзмененииНаСервере();

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ПереоценкаНМАЛокализация.ПриИзмененииРеквизита(ИмяЭлемента, ЭтотОбъект, ДополнительныеПараметры);

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

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
	
	ИнициализацияФормыПриСозданииНаСервере();
	
	ЗаполнитьВариантОтраженияВУчете();

	ЗаполнитьИнформациюОДокументеВДругомУчете();
	
	НастроитьЗависимыеЭлементыФормыНаСервере();
	
КонецПроцедуры

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

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

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

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

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

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

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

	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

	ИзмененныеРеквизиты = "НематериальныйАктив";

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

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

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

	ПолучитьНастройкиУчета();

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

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

&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
	
	ИзмененныеРеквизиты = "Организация";

	ПолучитьНастройкиУчета();
	ПослеИзмененияНастроекУчета(ИзмененныеРеквизиты);
	
	НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныеРеквизиты);

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

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

&НаСервере
Процедура ПолучитьНастройкиУчета()

	ДатаНастроек = КонецМесяца(?(Объект.Дата <> '000101010000', Объект.Дата, ТекущаяДатаСеанса()));

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

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

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

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