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