#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриСозданииЧтенииНаСервере();
КонецЕсли;
ПараметрыВыбораСтатейИАналитик = Документы.ИзменениеПараметровНМА.ПараметрыВыбораСтатейИАналитик(Объект);
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПриСозданииЧтенииНаСервере();
ПараметрыВыбораСтатейИАналитик = Документы.ИзменениеПараметровНМА.ПараметрыВыбораСтатейИАналитик(Объект);
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ЗаполнитьТекущиеЗначенияРеквизитов();
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Оповестить("Запись_ИзменениеПараметровНМА", ПараметрыЗаписи, Объект.Ссылка);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "Справочник.НематериальныеАктивы.Форма.ФормаВыбора" Тогда
Для Каждого ЭлементМассива Из ВыбранноеЗначение Цикл
Объект.НМА.Добавить().НематериальныйАктив = ЭлементМассива;
КонецЦикла;
ЗаполнитьТекущиеЗначенияРеквизитов();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовФормы
&НаКлиенте
Процедура СпециальныйКоэффициентНУФлагПриИзменении(Элемент)
ФлагПриИзменении(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеАмортизационныхРасходовФлагПриИзменении(Элемент)
Элементы.ОтражениеАмортизационныхРасходов.ТолькоПросмотр = Не Объект.ОтражениеАмортизационныхРасходовФлаг;
Элементы.НМАОтражениеАмортизационныхРасходов.Видимость = Объект.ОтражениеАмортизационныхРасходовФлаг;
Элементы.ОтражениеАмортизационныхРасходов.ЦветФона = ?(Объект.ОтражениеАмортизационныхРасходовФлаг, ЦветФонаПоля, ЦветФонаФормы);
КоличествоИзмененныхСвойств = КоличествоИзмененныхСвойств + ?(Объект.ОтражениеАмортизационныхРасходовФлаг, 1, -1);
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
УстановитьДоступностьПередачиАмортизационныхРасходов();
ВнеоборотныеАктивы.УстановитьПараметрыФункциональныхОпцийФормыОбъекта(ЭтаФорма, Объект.Организация, Объект.Дата);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ДатаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииНаСервере()
ВнеоборотныеАктивы.УстановитьПараметрыФункциональныхОпцийФормыОбъекта(ЭтаФорма, Объект.Организация, Объект.Дата);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийТаблицыОтражениеРасходов
&НаКлиенте
Процедура ОтражениеАмортизационныхРасходовСтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеАмортизационныхРасходовСтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеАмортизационныхРасходовАналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеАмортизационныхРасходовАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеАмортизационныхРасходовАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеАмортизационныхРасходовПередаватьРасходыВДругуюОрганизациюПриИзменении(Элемент)
СтрокаТаблицы = Элементы.ОтражениеАмортизационныхРасходов.ТекущиеДанные;
Если Не СтрокаТаблицы.ПередаватьРасходыВДругуюОрганизацию Тогда
СтрокаТаблицы.ОрганизацияПолучательРасходов = Неопределено;
СтрокаТаблицы.СчетПередачиРасходов = Неопределено;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ПодборНМА(Команда)
ПараметрыОтбор = Новый Структура;
ПараметрыОтбор.Вставить("БУСостояние", ПредопределенноеЗначение("Перечисление.СостоянияНМА.ПринятКУчету"));
ПараметрыОтбор.Вставить("БУОрганизация", Объект.Организация);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Контекст", "БУ, МФУ");
ПараметрыФормы.Вставить("ДатаСведений", Объект.Дата);
ПараметрыФормы.Вставить("ТекущийРегистратор", Объект.Ссылка);
ПараметрыФормы.Вставить("Отбор", ПараметрыОтбор);
ПараметрыФормы.Вставить("ЗакрыватьПриВыборе", Ложь);
ОткрытьФорму("Справочник.НематериальныеАктивы.ФормаВыбора", ПараметрыФормы, ЭтаФорма);
КонецПроцедуры
#Область ИнтеграцияС1СДокументооборотом
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтражениеАмортизационныхРасходовСчетПередачиРасходов.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтражениеАмортизационныхРасходовОрганизацияПолучательРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ОтражениеАмортизационныхРасходов.ПередаватьРасходыВДругуюОрганизацию");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
КонецПроцедуры
&НаСервере
Процедура ПриСозданииЧтенииНаСервере()
ЦветФонаФормы = ЦветаСтиля.ЦветФонаФормы;
ЦветФонаПоля = ЦветаСтиля.ЦветФонаПоля;
Элементы.СпециальныйКоэффициентНУ.Доступность = Объект.СпециальныйКоэффициентНУФлаг;
Элементы.НМАСпециальныйКоэффициентНУ.Видимость = Объект.СпециальныйКоэффициентНУФлаг;
Элементы.ОтражениеАмортизационныхРасходов.ТолькоПросмотр = Не Объект.ОтражениеАмортизационныхРасходовФлаг;
Элементы.НМАОтражениеАмортизационныхРасходов.Видимость = Объект.ОтражениеАмортизационныхРасходовФлаг;
Элементы.ОтражениеАмортизационныхРасходов.ЦветФона = ?(Объект.ОтражениеАмортизационныхРасходовФлаг, ЦветФонаПоля, ЦветФонаФормы);
УстановитьДоступностьПередачиАмортизационныхРасходов();
ВнеоборотныеАктивы.УстановитьПараметрыФункциональныхОпцийФормыОбъекта(ЭтаФорма, Объект.Организация, Объект.Дата);
ЗаполнитьТекущиеЗначенияРеквизитов();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьТекущиеЗначенияРеквизитов()
УстановитьПривилегированныйРежим(Истина);
КоличествоИзмененныхСвойств = ?(Объект.СпециальныйКоэффициентНУФлаг, 1, 0) + ?(Объект.ОтражениеАмортизационныхРасходовФлаг, 1, 0);
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ДанныеДокумента.НомерСтроки КАК ЧИСЛО) КАК НомерСтроки,
| ВЫРАЗИТЬ(ДанныеДокумента.НематериальныйАктив КАК Справочник.НематериальныеАктивы) КАК НематериальныйАктив
|ПОМЕСТИТЬ ДанныеДокумента
|ИЗ
| &ДанныеДокумента КАК ДанныеДокумента
|;
|
|
|ВЫБРАТЬ
| ДанныеДокумента.НомерСтроки КАК НомерСтроки,
| ПараметрыАмортизацииНМАБУ.СпециальныйКоэффициент КАК СпециальныйКоэффициентНУ,
| ПорядокУчетаНМАБУ.СтатьяРасходовБУ КАК СтатьяРасходов,
| ПорядокУчетаНМАБУ.АналитикаРасходовБУ КАК АналитикаРасходов
|ИЗ
| ДанныеДокумента КАК ДанныеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыАмортизацииНМАБУ.СрезПоследних(
| &Дата,
| НематериальныйАктив В
| (ВЫБРАТЬ
| ДанныеДокумента.НематериальныйАктив
| ИЗ
| ДанныеДокумента КАК ДанныеДокумента)
| И Регистратор <> &ТекущийРегистратор) КАК ПараметрыАмортизацииНМАБУ
| ПО ДанныеДокумента.НематериальныйАктив = ПараметрыАмортизацииНМАБУ.НематериальныйАктив
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПорядокУчетаНМАБУ.СрезПоследних(
| &Дата,
| НематериальныйАктив В
| (ВЫБРАТЬ
| ДанныеДокумента.НематериальныйАктив
| ИЗ
| ДанныеДокумента КАК ДанныеДокумента)
| И Регистратор <> &ТекущийРегистратор) КАК ПорядокУчетаНМАБУ
| ПО ДанныеДокумента.НематериальныйАктив = ПорядокУчетаНМАБУ.НематериальныйАктив");
Запрос.УстановитьПараметр("Дата", Новый Граница(?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса()), ВидГраницы.Исключая));
Запрос.УстановитьПараметр("ДанныеДокумента", Объект.НМА.Выгрузить(, "НомерСтроки, НематериальныйАктив"));
Запрос.УстановитьПараметр("ТекущийРегистратор", Объект.Ссылка);
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(Объект.НМА[Выборка.НомерСтроки-1], Выборка,, "НомерСтроки");
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ФлагПриИзменении(ИмяФлага)
ФлагУстановлен = Объект[ИмяФлага];
Имя = СтрЗаменить(ИмяФлага, "Флаг", "");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, Имя, "Доступность", ФлагУстановлен);
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "НМА"+Имя, "Видимость", ФлагУстановлен);
КоличествоИзмененныхСвойств = КоличествоИзмененныхСвойств + ?(ФлагУстановлен, 1, -1);
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьПередачиАмортизационныхРасходов()
ЕстьСвязанныеОрганизации = Справочники.Организации.ОрганизацияВзаимосвязанаСДругимиОрганизациями(Объект.Организация);
Элементы.ОтражениеАмортизационныхРасходовГруппаПередаватьРасходы.Видимость = ЕстьСвязанныеОрганизации;
КонецПроцедуры
#Область СтандартныеПодсистемыДополнительныеОтчетыИОбработки
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
#КонецОбласти
#КонецОбласти