Перерасчет имущественных налогов / Модуль объекта

файл

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область Заполнение

Процедура ИнициализироватьДокументПередЗаполнением()
	
	Ответственный = Пользователи.ТекущийПользователь();
	Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация);
	
КонецПроцедуры

Процедура ЗаполнитьДокументПоОтбору(Основание)

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

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

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

#Область Прочее

Процедура ЗаполнитьРеквизитыПередЗаписью(ВспомогательныеРеквизиты)
	
	Если ВидНалога = Перечисления.ВидыИмущественныхНалогов.НалогНаИмущество Тогда
		РасчетТранспортногоНалога.Очистить();
		РасчетЗемельногоНалога.Очистить();
	ИначеЕсли ВидНалога = Перечисления.ВидыИмущественныхНалогов.ТранспортныйНалог Тогда
		РасчетНалогаНаИмущество.Очистить();
		РасчетЗемельногоНалога.Очистить();
	ИначеЕсли ВидНалога = Перечисления.ВидыИмущественныхНалогов.ЗемельныйНалог Тогда
		РасчетНалогаНаИмущество.Очистить();
		РасчетТранспортногоНалога.Очистить();
	КонецЕсли;
	
	СуммаКоэффициентов = ОтражениеДоходовРасходов.Итог("Коэффициент");
	
	СуммаКоэффициентовПредыдущихСтрок = 0;
	Для каждого ДанныеСтроки Из ОтражениеДоходовРасходов Цикл
		ДанныеСтроки.СуммаКоэффициентовПредыдущихСтрок = СуммаКоэффициентовПредыдущихСтрок;
		СуммаКоэффициентовПредыдущихСтрок = СуммаКоэффициентовПредыдущихСтрок + ДанныеСтроки.Коэффициент;
	КонецЦикла; 
	
	Если ВспомогательныеРеквизиты.ВалютыСовпадают Тогда
		СуммаКорректировкиУпр = СуммаКорректировки;
	КонецЕсли;
	
КонецПроцедуры

Функция ВспомогательныеРеквизиты()
	
	ВспомогательныеРеквизиты = Новый Структура;

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

КонецФункции

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

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

#КонецЕсли

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