Изменение параметров НМА (2.2) / Модуль объекта

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

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

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

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

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

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

Процедура ПриЗаписи(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	ПроведениеДокументов.ПриЗаписиДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	Документы.ИзменениеПараметровНМА.ПроверитьБлокировкуВходящихДанныхПриОбновленииИБ(
		НСтр("ru = 'Изменение параметров НМА'"));
	
	ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

Процедура ОбработкаУдаленияПроведения(Отказ)
	
	ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

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

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

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

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

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

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

#КонецЕсли

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