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