Параметры начисления транспортного налога / Форма документа / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем СтруктураСохраняемыхРеквизитов;

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

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

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

	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
	
	СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
	
	#КонецОбласти
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	СтруктураСохраняемыхРеквизитов = Новый Структура;
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
	// Конец СтандартныеПодсистемы.РаботаСФайлами

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

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
	
	Объект.СтавкаОпределяетсяАвтоматически = Булево(СтавкаОпределяетсяАвтоматически);
	
	СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
	
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

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

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

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия = "Запись_ОбъектыЭксплуатации"
		ИЛИ ИмяСобытия = "ЗагруженыСтавкиТранспортногоНалога"
		ИЛИ ИмяСобытия = "Запись_СтавкиТранспортногоНалога" Тогда
		ЗаполнитьПредставлениеНалоговойСтавки(ЭтотОбъект);
	КонецЕсли;
	
	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
	// Конец СтандартныеПодсистемы.РаботаСФайлами

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

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

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
	
	ВнеоборотныеАктивыКлиент.УстановитьТекущееВремяДляПрошлойДаты(Объект.Дата);

	ДатаПриИзмененииНаСервере();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура НачалоДействияПриИзменении(Элемент)
	ЗаполнитьКонецДействияПараметров();
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	
	ОрганизацияПриИзмененииНаСервере();
	
КонецПроцедуры

&НаКлиенте
Процедура КодВидаТранспортногоСредстваПриИзменении(Элемент)
	
	ПриИзмененииКодаВидаТранспортногоСредства();
	
КонецПроцедуры

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

&НаКлиенте
Процедура ЕдиницаИзмеренияНалоговойБазыПриИзменении(Элемент)
	
	УстановитьЗаголовокНалоговойБазы(ЭтотОбъект);
	ЗаполнитьПредставлениеНалоговойСтавки(ЭтотОбъект);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура НалоговыйОрганПриИзменении(Элемент)
	
	НалоговыйОрганПриИзмененииНаСервере();
	
КонецПроцедуры

&НаКлиенте
Процедура НалоговаяЛьготаПриИзменении(Элемент)
	
	ПриИзмененииНалоговойЛьготы(ЭтотОбъект, СтруктураСохраняемыхРеквизитов);
	
КонецПроцедуры

&НаКлиенте
Процедура КодПоОКТМОПриИзменении(Элемент)
	
	УстановитьЗаголовокСвернутогоОтображенияПостановкаНаУчетВНО();
	ЗаполнитьПредставлениеНалоговойСтавки(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ЛьготнаяСтавкаПриИзменении(Элемент)
	
	УстановитьЗаголовокСвернутогоОтображенияНалоговойЛьготы(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ПроцентУменьшенияПриИзменении(Элемент)
	
	УстановитьЗаголовокСвернутогоОтображенияНалоговойЛьготы(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура СуммаУменьшенияПриИзменении(Элемент)
	
	УстановитьЗаголовокСвернутогоОтображенияНалоговойЛьготы(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура КодЛьготыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;

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

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

&НаКлиенте
Процедура КодЛьготыОчистка(Элемент, СтандартнаяОбработка)
	
	Объект.КодНалоговойЛьготы = "";
	УстановитьЗаголовокСвернутогоОтображенияНалоговойЛьготы(ЭтотОбъект);
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура НалоговаяБазаПриИзменении(Элемент)
	
	ЗаполнитьПредставлениеНалоговойСтавки(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура СтавкаОпределяетсяАвтоматическиПриИзменении(Элемент)
	
	Объект.НалоговаяСтавка = 0;
	Объект.НалоговаяСтавкаЗависитОтГодаВыпускаТС = Ложь;
	ЗаполнитьПредставлениеНалоговойСтавки(ЭтотОбъект);
	
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, "СтавкаОпределяетсяАвтоматически");
	
КонецПроцедуры

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

&НаКлиенте
Процедура НалоговаяСтавкаПредставлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ПараметрыФормы = Новый Структура;
	
	Если ПараметрыСтавки <> Неопределено Тогда
	
		ОтборНабораЗаписей = Новый Структура("Период,ОКТМО");
		ЗаполнитьЗначенияСвойств(ОтборНабораЗаписей, ПараметрыСтавки);
		
		ПараметрыФормы.Вставить("Отбор", ОтборНабораЗаписей);
		
		ПараметрыСтавкиФормыСписка = Новый Структура(
			"Период,
			|ОКТМО,
			|НаименованиеОбъектаНалогообложения,
			|МинимальноеЗначениеМощности,
			|МаксимальноеЗначениеМощности,
			|МинимальноеКоличествоЛетСГодаВыпускаТС,
			|МаксимальноеКоличествоЛетСГодаВыпускаТС");
		
		ЗаполнитьЗначенияСвойств(ПараметрыСтавкиФормыСписка, ПараметрыСтавки);
		ПараметрыФормы.Вставить("ПараметрыСтавки", ПараметрыСтавкиФормыСписка);
		
	КонецЕсли;	
			
	ОткрытьФорму("РегистрСведений.СтавкиТранспортногоНалога.ФормаСписка", ПараметрыФормы);
	Оповестить("ПоказатьПараметрыСтавки", ПараметрыФормы);
	
КонецПроцедуры

&НаКлиенте
Процедура ТекстНалоговойЛьготыНажатие(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	ОповещениеОЗакрытии = Новый ОписаниеОповещения("НастройкаЛьготыПоТранспортномуНалогуЗавершение", ЭтотОбъект);
	
	ИмущественныеНалогиКлиент.НастройкаЛьготыПоТранспортномуНалогу(
		ЭтотОбъект, Объект, ОповещениеОЗакрытии);
	
КонецПроцедуры

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)

	РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)

	РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

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

&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)

	РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыОС

&НаКлиенте
Процедура ОСПриИзменении(Элемент)
	
	ЗаполнитьПредставлениеНалоговойСтавки(ЭтотОбъект);
	ЗаполнитьКодыВидовТС();
	
КонецПроцедуры

&НаКлиенте
Процедура ОСПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	
	УстановитьВидимость(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ОСОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	ОСОбработкаВыбораНаСервере(ВыбранноеЗначение);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ОСОсновноеСредствоПриИзменении(Элемент)
	ОСОсновноеСредствоПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ОСДатаРегистрацииПриИзменении(Элемент)
	
	ТекущаяСтрока = Элементы.ОС.ТекущаяСтрока;
	ДатаРегистрации = Элементы.ОС.ДанныеСтроки(ТекущаяСтрока).ДатаРегистрации;
	ОчиститьСообщения();
	
	Если ДатаРегистрации <> Дата(1, 1, 1) Тогда
		// Указана дата регистрации.
		// Проверим, нет ли расчетов налога после этой даты.
		Если Объект.РежимИсправленияСПрошлойДаты И ДатаРегистрации < Объект.НачалоДействия 
			Или НЕ Объект.РежимИсправленияСПрошлойДаты И НачалоДня(ДатаРегистрации) < НачалоДня(Объект.Дата) Тогда
			ПроверкаНеобходимостиПерерасчета = ПроверитьНеобходимостьПерерасчетаНалога(ДатаРегистрации, ГоловнаяОрганизация);
			
			// При изменении параметров начисления налога задним числом, потребуется перерасчет.
			Если ПроверкаНеобходимостиПерерасчета.ТребуетсяПерерасчет Тогда
				ОбщегоНазначенияКлиент.СообщитьПользователю(ПроверкаНеобходимостиПерерасчета.Комментарий);
			КонецЕсли;
			
		КонецЕсли;
	КонецЕсли;

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыОтражениеРасходов

&НаКлиенте
Процедура ОтражениеРасходовСтатьяРасходовПриИзменении(Элемент)
	
	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтражениеРасходовСтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

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

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

#Область ОбработчикиКомандФормы

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

&НаКлиенте
Процедура ЗаполнитьСтавку(Команда)

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

&НаКлиенте
Процедура Подобрать(Команда)
	
	ОценкаПроизводительностиКлиент.ЗамерВремени("Справочник.ОбъектыЭксплуатации.ФормаВыбора");

	ПараметрыПодбора = ОбщегоНазначенияУТКлиентСервер.ПараметрыПодбора(Элементы.ОСОсновноеСредство, ЭтотОбъект);

	ОткрытьФорму("Справочник.ОбъектыЭксплуатации.ФормаВыбора", 
					ПараметрыПодбора, Элементы.ОС,,,,, 
					РежимОткрытияОкнаФормы.БлокироватьОкноВладельца)
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
	
	ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Записать(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ПровестиДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Провести(ЭтотОбъект);
	
КонецПроцедуры

#Область ПодключаемыеКоманды

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)

	РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
	ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
	
	ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
	
КонецПроцедуры

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(Знач Форма, Знач ИзмененныеРеквизиты = "")

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимость(Форма)
	
	Объект = Форма.Объект;
	Элементы = Форма.Элементы;
	
	ДатаРегистрации = ВнеоборотныеАктивыКлиентСервер.МинимальнаяДатаРегистрации(Объект);
	
	Элементы.КодПоОКАТО.Видимость = (ДатаРегистрации <> '000101010000' И Год(ДатаРегистрации) < 2014);
	
	ВидимостьЛьготы = 
		(ДатаРегистрации <> '000101010000' И Год(ДатаРегистрации) < 2012) 
		ИЛИ Объект.НалоговаяЛьгота = ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.УменьшениеСуммыНалогаНаСумму");
	Элементы.НалоговаяЛьготаУменьшениеСуммыНалогаНаСумму.Видимость = ВидимостьЛьготы;
	Элементы.СуммаУменьшения.Видимость = ВидимостьЛьготы;
	Элементы.КодНалоговойЛьготыУменьшениеСуммыНалогаНаСумму.Видимость = ВидимостьЛьготы;
	
КонецПроцедуры
 
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьНалоговогоОргана(Форма)
	
	Форма.Элементы.ГруппаНалоговыйОрган.Доступность = 
		Форма.Объект.ПостановкаНаУчетВНалоговомОргане = ПредопределенноеЗначение("Перечисление.ПостановкаНаУчетВНалоговомОргане.ВДругомНалоговомОргане");
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьНалоговыхЛьгот(Форма)
	
	НалоговаяЛьгота = Форма.Объект.НалоговаяЛьгота;
	Элементы = Форма.Элементы;
	
	Элементы.ГруппаКодЛьготыОсвобождениеОтНалогообложения.Доступность = 
		НалоговаяЛьгота = ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.ОсвобождениеОтНалогообложения");
		
	СнижениеНалоговойСтавки = 
		НалоговаяЛьгота = ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.СнижениеНалоговойСтавки");
	Элементы.ЛьготнаяСтавка.Доступность = СнижениеНалоговойСтавки;
	Элементы.ГруппаКодЛьготыСнижениеНалоговойСтавки.Доступность = СнижениеНалоговойСтавки;
	
	УменьшениеСуммыНалогаВПроцентах = 
		НалоговаяЛьгота = ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.УменьшениеСуммыНалогаВПроцентах");
	Элементы.ПроцентУменьшения.Доступность = УменьшениеСуммыНалогаВПроцентах;
	Элементы.ГруппаКодЛьготыУменьшениеСуммыНалогаВПроцентах.Доступность = УменьшениеСуммыНалогаВПроцентах;
		
	УменьшениеСуммыНалогаНаСумму = 
		НалоговаяЛьгота = ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.УменьшениеСуммыНалогаНаСумму");
	Элементы.СуммаУменьшения.Доступность = УменьшениеСуммыНалогаНаСумму;
	Элементы.КодНалоговойЛьготыУменьшениеСуммыНалогаНаСумму.Доступность = УменьшениеСуммыНалогаНаСумму;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьЗаголовокНалоговойБазы(Форма)
	
	Форма.Элементы.НалоговаяБаза.Заголовок = ИмущественныеНалогиКлиентСервер.ПредставлениеБазыТранспортногоНалога(
		Форма.Объект.ЕдиницаИзмеренияНалоговойБазы);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьЗаголовокСвернутогоОтображенияПостановкаНаУчетВНО()
	
	ТекстПостановкаНаУчетВНалоговомОргане = НСтр("ru = 'Постановка на учет в налоговом органе'");
	
	Если Объект.ПостановкаНаУчетВНалоговомОргане = ПредопределенноеЗначение("Перечисление.ПостановкаНаУчетВНалоговомОргане.ПоМестуНахожденияОрганизации") Тогда
		
		ТекстПостановкаНаУчетВНалоговомОргане = НСтр("ru = 'Постановка на учет в налоговом органе: по месту нахождения организации'");
		
	ИначеЕсли Объект.ПостановкаНаУчетВНалоговомОргане = ПредопределенноеЗначение("Перечисление.ПостановкаНаУчетВНалоговомОргане.ВДругомНалоговомОргане") Тогда
		
		Если ЗначениеЗаполнено(Объект.НалоговыйОрган) Тогда
			КодНО = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.НалоговыйОрган, "Код");
		Иначе
			КодНО = "<...>";
		КонецЕсли;
		
		ШаблонТекста = НСтр("ru = 'Постановка на учет в налоговом органе: ИФНС %1, код по ОКТМО %2'");
		ТекстПостановкаНаУчетВНалоговомОргане = 
			СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				ШаблонТекста,
				КодНО,
				?(ЗначениеЗаполнено(Объект.КодПоОКТМО), Объект.КодПоОКТМО, "<...>"));
		
	КонецЕсли;
	
	УстановитьЗаголовокГруппы(ЭтотОбъект, "ГруппаПостановкаНаУчетВНалоговомОргане", ТекстПостановкаНаУчетВНалоговомОргане);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьЗаголовокСвернутогоОтображенияНалоговойЛьготы(Форма)
	
	Объект = Форма.Объект;
	
	Если Объект.НалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.НеПрименяется") Тогда
		
		ТекстНалоговойЛьготы = НСтр("ru = 'Налоговая льгота: Не применяется'");
		
	ИначеЕсли Объект.НалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.ОсвобождениеОтНалогообложения") Тогда
		
		ТекстНалоговойЛьготы = НСтр("ru = 'Освобождение от налогообложения'");
		
	ИначеЕсли Объект.НалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.СнижениеНалоговойСтавки") Тогда
		
		ШаблонТекста = НСтр("ru = 'Пониженная налоговая ставка: %1'");
		ТекстНалоговойЛьготы = 
			СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, Объект.ЛьготнаяСтавка);
		
	ИначеЕсли Объект.НалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.УменьшениеСуммыНалогаВПроцентах") Тогда
		
		ШаблонТекста = НСтр("ru = 'Уменьшение суммы налога на: %1 %2'");
		ТекстНалоговойЛьготы = 
			СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, Объект.ПроцентУменьшения, "%");
		
	ИначеЕсли Объект.НалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.УменьшениеСуммыНалогаНаСумму") Тогда
		
		ШаблонТекста = НСтр("ru = 'Уменьшение суммы налога на %1'");
		ТекстНалоговойЛьготы = 
			СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, Объект.СуммаУменьшения);
		
	КонецЕсли;
	
	Если Объект.НалоговаяЛьгота <> ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.НеПрименяется") Тогда
		
		Если Объект.КодНалоговойЛьготы = "30200" Тогда
			
			ШаблонТекста = НСтр("ru = '%1, код льготы %2'");
				ТекстНалоговойЛьготы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста,
				ТекстНалоговойЛьготы,
				Объект.КодНалоговойЛьготы);
			
		Иначе
			
			ШаблонТекста = НСтр("ru = '%1, код льготы %2/%3'");
			ТекстНалоговойЛьготы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста,
				ТекстНалоговойЛьготы,
				?(ЗначениеЗаполнено(Объект.КодНалоговойЛьготы), Объект.КодНалоговойЛьготы, "<...>"),
				?(ЗначениеЗаполнено(Объект.РегиональныйКодЛьготы), Объект.РегиональныйКодЛьготы, "<...>"));
			
		КонецЕсли;
		
	КонецЕсли;
	
	УстановитьЗаголовокГруппы(Форма, "ГруппаНалоговаяЛьгота", ТекстНалоговойЛьготы);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьЗаголовокГруппы(Форма, НазваниеГруппы, ЗаголовокТекст)
	
	Форма.Элементы[НазваниеГруппы].ЗаголовокСвернутогоОтображения = ЗаголовокТекст;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьГоловнуюОрганизацию(Форма)
	
	Форма.ГоловнаяОрганизация = ОбщегоНазначенияБПВызовСервераПовтИсп.ГоловнаяОрганизация(Форма.Объект.Организация);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПриИзмененииКодаВидаТранспортногоСредства()

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

&НаКлиенте
Процедура ЭкологическийКлассНачалоВыбораЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
	
	КодЭкологическогоКласса = РезультатЗакрытия;
	
	Если КодЭкологическогоКласса <> Неопределено Тогда
		Объект.ЭкологическийКласс = КодЭкологическогоКласса;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура КодНалоговойЛьготыНачалоВыбораЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
	
	Если РезультатЗакрытия <> Неопределено Тогда
		ЭтотОбъект[ДополнительныеПараметры.ИмяЭлемента] = РезультатЗакрытия;
		Объект.КодНалоговойЛьготы = РезультатЗакрытия;
	КонецЕсли;
	
	УстановитьЗаголовокСвернутогоОтображенияНалоговойЛьготы(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФормуРегиональныйКодЛьготыЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	Если Результат <> Неопределено Тогда
		ЭтотОбъект[ДополнительныеПараметры.Льгота] = Результат;
		Объект.РегиональныйКодЛьготы = Результат;
		Модифицированность = Истина;
	КонецЕсли;
	
	УстановитьЗаголовокСвернутогоОтображенияНалоговойЛьготы(ЭтотОбъект);
	
КонецПроцедуры

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

&НаСервере
Процедура НастроитьПовышающийКоэффициент()
	
	ПолужирныйШрифт = Новый Шрифт(,, Истина);

	СписокВыбора = Элементы.ПовышающийКоэффициент.СписокВыбора;
	СписокВыбора.Очистить();
	СписокВыбора.Добавить(0, "-");
	
	Если Год(Объект.Дата) >= 2022 ИЛИ Объект.Дата = '000101010000' Тогда
		
		СписокВыбора.Добавить(3, "3");
		
		ШаблонСтроки = НСтр("ru = 'Исчисление суммы налога производится с учетом повышающего коэффициента:
		|<b>3</b> - в отношении легковых автомобилей средней стоимостью от 10 миллионов до 15 миллионов рублей включительно, с года выпуска которых прошло не более 10 лет;
		|<b>3</b> - в отношении легковых автомобилей средней стоимостью от 15 миллионов рублей, с года выпуска которых прошло не более 20 лет.
		|При этом исчисление сроков начинается с года выпуска соответствующего легкового автомобиля.
		|Порядок расчета средней стоимости легковых автомобилей определяется Минпромторгом РФ.
		|Перечень легковых автомобилей средней стоимостью от 3 миллионов рублей (с 2022 года - от 10 миллионов рублей)
		|размещается ежегодно не позднее 31 марта на <a href = ""https://minpromtorg.gov.ru/docs/list/"">официальном сайте Минпромторга РФ</a>'");
		
	ИначеЕсли Год(Объект.Дата) >= 2018 Тогда
		
		СписокВыбора.Добавить(1.1, "1,1");
		СписокВыбора.Добавить(2, "2");
		СписокВыбора.Добавить(3, "3");
		
		ШаблонСтроки = НСтр("ru = 'Исчисление суммы налога производится с учетом повышающего коэффициента:
		|<b>1,1</b> - в отношении легковых автомобилей средней стоимостью от 3 миллионов до 5 миллионов рублей включительно, с года выпуска которых прошло не более 3 лет;
		|<b>2</b> - в отношении легковых автомобилей средней стоимостью от 5 миллионов до 10 миллионов рублей включительно, с года выпуска которых прошло не более 5 лет;
		|<b>3</b> - в отношении легковых автомобилей средней стоимостью от 10 миллионов до 15 миллионов рублей включительно, с года выпуска которых прошло не более 10 лет;
		|<b>3</b> - в отношении легковых автомобилей средней стоимостью от 15 миллионов рублей, с года выпуска которых прошло не более 20 лет.
		|При этом исчисление сроков начинается с года выпуска соответствующего легкового автомобиля.
		|Порядок расчета средней стоимости легковых автомобилей определяется Минпромторгом РФ.
		|Перечень легковых автомобилей средней стоимостью от 3 миллионов рублей (с 2022 года - от 10 миллионов рублей)
		|размещается ежегодно не позднее 31 марта на <a href = ""https://minpromtorg.gov.ru/docs/list/"">официальном сайте Минпромторга РФ</a>'");
		
	Иначе
				
		СписокВыбора.Добавить(1.1, "1,1");
		СписокВыбора.Добавить(1.3, "1,3");
		СписокВыбора.Добавить(1.5, "1,5");
		СписокВыбора.Добавить(2, "2");
		СписокВыбора.Добавить(3, "3");
		
		ШаблонСтроки = НСтр("ru = 'Исчисление суммы налога производится с учетом повышающего коэффициента:
		|<b>1,5</b> - в отношении легковых автомобилей средней стоимостью от 3 миллионов до 5 миллионов рублей включительно, с года выпуска которых прошло не более 1 года;
		|<b>1,3</b> - в отношении легковых автомобилей средней стоимостью от 3 миллионов до 5 миллионов рублей включительно, с года выпуска которых прошло от 1 года до 2 лет;
		|<b>1,1</b> - в отношении легковых автомобилей средней стоимостью от 3 миллионов до 5 миллионов рублей включительно, с года выпуска которых прошло от 2 до 3 лет; 
		|<b>2</b> - в отношении легковых автомобилей средней стоимостью от 5 миллионов до 10 миллионов рублей включительно, с года выпуска которых прошло не более 5 лет;
		|<b>3</b> - в отношении легковых автомобилей средней стоимостью от 10 миллионов до 15 миллионов рублей включительно, с года выпуска которых прошло не более 10 лет;
		|<b>3</b> - в отношении легковых автомобилей средней стоимостью от 15 миллионов рублей, с года выпуска которых прошло не более 20 лет.
		|При этом исчисление сроков начинается с года выпуска соответствующего легкового автомобиля.
		|Порядок расчета средней стоимости легковых автомобилей определяется Минпромторгом РФ.
		|Перечень легковых автомобилей средней стоимостью от 3 миллионов рублей (с 2022 года - от 10 миллионов рублей)
		|размещается ежегодно не позднее 31 марта на <a href = ""https://minpromtorg.gov.ru/docs/list/"">официальном сайте Минпромторга РФ</a>'");
		
	КонецЕсли;	
	
	Элементы.ПовышающийКоэффициент.РасширеннаяПодсказка.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(ШаблонСтроки);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьПредставлениеНалоговойСтавки(Форма)

	Если НЕ Форма.СтавкаОпределяетсяАвтоматически Тогда
		Возврат;
	КонецЕсли;
	
	Форма.НалоговаяСтавкаПредставление = Новый ФорматированнаяСтрока(НСтр("ru = '<не определена>'"));
	Форма.ПараметрыСтавки = Неопределено;
	
	ЗаполнитьНалоговуюСтавку(Форма);

	Если Форма.ПараметрыСтавки <> Неопределено Тогда

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

&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьНалоговуюСтавку(Форма, Ошибки = Неопределено)
	
	Объект = Форма.Объект;
	
	Если Ошибки = Неопределено Тогда
		Ошибки = Новый Массив;
	КонецЕсли;
	
	Отказ = Ложь;

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

	Если Объект.ПостановкаНаУчетВНалоговомОргане = ПредопределенноеЗначение("Перечисление.ПостановкаНаУчетВНалоговомОргане.ВДругомНалоговомОргане") Тогда

		ОКТМОДляЗаполнения = Объект.КодПоОКТМО;

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

	Иначе

		ОКТМОДляЗаполнения = Форма.ОКТМО;

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

	КонецЕсли;

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

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

	Если Отказ Тогда
		Возврат;
	КонецЕсли;
		
	ДанныеДляЗаполнения = Новый Структура("
		|Период,
		|ОсновноеСредство,
		|Организация,
		|ОКТМО,
		|КодВидаТранспортногоСредства,
		|НалоговаяБаза");
		
	ЗаполнитьЗначенияСвойств(ДанныеДляЗаполнения, Объект);
	ДанныеДляЗаполнения.Период = Объект.Дата;
	ДанныеДляЗаполнения.ОКТМО = ОКТМОДляЗаполнения;
	
	Если Объект.ОС.Количество() <> 0 Тогда
		ДанныеДляЗаполнения.ОсновноеСредство = Объект.ОС[0].ОсновноеСредство;
	КонецЕсли; 
	
	ЗаполнитьСтавкуНаСервере(
		ДанныеДляЗаполнения,
		Форма.НалоговаяСтавка,
		Форма.ПараметрыСтавки,
		Ошибки);
		
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ЗаполнитьСтавкуНаСервере(ДанныеДляЗаполнения, НалоговаяСтавка, ПараметрыСтавки, Ошибки)
	
	// Для кодов автономных округов в составе края (области), являющихся субъектами РФ,
	// значимыми для идентификации субъекта являются 1-й, 2-й и 3-й знаки.
	КодПоОКТМО = Лев(ДанныеДляЗаполнения.ОКТМО, 3);

	// Для остальных субъектов РФ значимые для идентификации знаки 1-й и 2-й.
	Если НЕ (КодПоОКТМО = "118" ИЛИ КодПоОКТМО = "718" ИЛИ КодПоОКТМО = "719") Тогда
		КодПоОКТМО = Лев(КодПоОКТМО, 2);
	КонецЕсли;

	Макет = Документы.ПараметрыНачисленияТранспортногоНалога.ПолучитьМакет("КодыВидовИКатегорииТС");
	КодыВидовИКатегорииТС = ОбщегоНазначения.ПрочитатьXMLВТаблицу(Макет.ПолучитьТекст()).Данные;
	
	НайденнаяСтрока = КодыВидовИКатегорииТС.Найти(ДанныеДляЗаполнения.КодВидаТранспортногоСредства, "КодВида");
	Если НайденнаяСтрока = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	КатегорияТС = НайденнаяСтрока.Категория;
	Год = Год(ДанныеДляЗаполнения.Период);
	
	ТекстЗапроса =
	"ВЫБРАТЬ
	|	СтавкиТранспортногоНалогаСрезПоследних.Период КАК Период,
	|	СтавкиТранспортногоНалогаСрезПоследних.ОКТМО КАК ОКТМО,
	|	СтавкиТранспортногоНалогаСрезПоследних.НаименованиеОбъектаНалогообложения КАК НаименованиеОбъектаНалогообложения,
	|	СтавкиТранспортногоНалогаСрезПоследних.МинимальноеЗначениеМощности КАК МинимальноеЗначениеМощности,
	|	СтавкиТранспортногоНалогаСрезПоследних.МаксимальноеЗначениеМощности КАК МаксимальноеЗначениеМощности,
	|	СтавкиТранспортногоНалогаСрезПоследних.МинимальноеКоличествоЛетСГодаВыпускаТС КАК МинимальноеКоличествоЛетСГодаВыпускаТС,
	|	СтавкиТранспортногоНалогаСрезПоследних.МаксимальноеКоличествоЛетСГодаВыпускаТС КАК МаксимальноеКоличествоЛетСГодаВыпускаТС,
	|	СтавкиТранспортногоНалогаСрезПоследних.НалоговаяСтавка КАК НалоговаяСтавка
	|ПОМЕСТИТЬ ВТВсеПодходящиеЗаписи
	|ИЗ
	|	РегистрСведений.СтавкиТранспортногоНалога.СрезПоследних(
	|			&Период,
	|			ОКТМО = &ОКТМО
	|				И НаименованиеОбъектаНалогообложения = &НаименованиеОбъектаНалогообложения
	|				И МинимальноеЗначениеМощности <= &НалоговаяБаза
	|				И (МаксимальноеЗначениеМощности = 0
	|					ИЛИ &НалоговаяБаза <= МаксимальноеЗначениеМощности)) КАК СтавкиТранспортногоНалогаСрезПоследних
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	МАКСИМУМ(ВТВсеПодходящиеЗаписи.Период) КАК Период
	|ПОМЕСТИТЬ ВТПериодПоследнейЗаписи
	|ИЗ
	|	ВТВсеПодходящиеЗаписи КАК ВТВсеПодходящиеЗаписи
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ВТВсеПодходящиеЗаписи.Период КАК Период,
	|	ВТВсеПодходящиеЗаписи.ОКТМО КАК ОКТМО,
	|	ВТВсеПодходящиеЗаписи.НаименованиеОбъектаНалогообложения КАК НаименованиеОбъектаНалогообложения,
	|	ВТВсеПодходящиеЗаписи.МинимальноеЗначениеМощности КАК МинимальноеЗначениеМощности,
	|	ВТВсеПодходящиеЗаписи.МаксимальноеЗначениеМощности КАК МаксимальноеЗначениеМощности,
	|	ВТВсеПодходящиеЗаписи.МинимальноеКоличествоЛетСГодаВыпускаТС КАК МинимальноеКоличествоЛетСГодаВыпускаТС,
	|	ВТВсеПодходящиеЗаписи.МаксимальноеКоличествоЛетСГодаВыпускаТС КАК МаксимальноеКоличествоЛетСГодаВыпускаТС,
	|	ВЫБОР
	|		КОГДА ВТВсеПодходящиеЗаписи.МинимальноеКоличествоЛетСГодаВыпускаТС > 0
	|				ИЛИ ВТВсеПодходящиеЗаписи.МаксимальноеКоличествоЛетСГодаВыпускаТС > 0
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК НалоговаяСтавкаЗависитОтГодаВыпускаТС,
	|	ВТВсеПодходящиеЗаписи.НалоговаяСтавка КАК НалоговаяСтавка
	|ИЗ
	|	ВТВсеПодходящиеЗаписи КАК ВТВсеПодходящиеЗаписи
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПериодПоследнейЗаписи КАК ВТПериодПоследнейЗаписи
	|		ПО ВТВсеПодходящиеЗаписи.Период = ВТПериодПоследнейЗаписи.Период";
	
	Запрос = Новый Запрос(ТекстЗапроса);
	Запрос.УстановитьПараметр("Период", ?(Год > 2014, ДанныеДляЗаполнения.Период, Дата('20150101')));
	Запрос.УстановитьПараметр("ОКТМО", ?(СтрДлина(КодПоОКТМО) = 3, КодПоОКТМО + "00000", КодПоОКТМО + "000000"));
	Запрос.УстановитьПараметр("НаименованиеОбъектаНалогообложения", Перечисления.КатегорииТранспортныхСредств[КатегорияТС]);
	Запрос.УстановитьПараметр("НалоговаяБаза", ДанныеДляЗаполнения.НалоговаяБаза);
	
	Результат = Запрос.Выполнить();
	
	Если Результат.Пустой() Тогда
		
		Ошибка = Новый Структура("ТекстСообщения, Поле",
			НСтр("ru = 'Не найдена подходящая ставка. Проверьте ставки транспортного налога'"),
			"НалоговаяСтавкаСсылка");
		
		Ошибки.Добавить(Ошибка);
		
		НалоговаяСтавка = 0;
		
	Иначе	
		
		Выборка = Результат.Выбрать();
		Пока Выборка.Следующий() Цикл
			
			НалоговаяСтавкаЗависитОтГодаВыпускаТС = Выборка.НалоговаяСтавкаЗависитОтГодаВыпускаТС;
			
			Если НалоговаяСтавкаЗависитОтГодаВыпускаТС
				И ЗначениеЗаполнено(ДанныеДляЗаполнения.ОсновноеСредство) Тогда
				
				ДатаВыпуска = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеДляЗаполнения.ОсновноеСредство, "ДатаВыпуска");
					
				Если ЗначениеЗаполнено(ДатаВыпуска) Тогда
						
					КоличествоЛетСГодаВыпускаТС = Год - Год(ДатаВыпуска);
					Если Выборка.МинимальноеКоличествоЛетСГодаВыпускаТС <= КоличествоЛетСГодаВыпускаТС
						И (НЕ ЗначениеЗаполнено(Выборка.МаксимальноеКоличествоЛетСГодаВыпускаТС)
						   ИЛИ КоличествоЛетСГодаВыпускаТС <= Выборка.МаксимальноеКоличествоЛетСГодаВыпускаТС) Тогда
						   
						ПараметрыСтавки = Новый Структура(
							"Период,
							|ОКТМО,
							|НаименованиеОбъектаНалогообложения,
							|МинимальноеЗначениеМощности,
							|МаксимальноеЗначениеМощности,
							|МинимальноеКоличествоЛетСГодаВыпускаТС,
							|МаксимальноеКоличествоЛетСГодаВыпускаТС,
							|НалоговаяСтавкаЗависитОтГодаВыпускаТС,
							|КоличествоЛетСГодаВыпускаТС");
						   
						ЗаполнитьЗначенияСвойств(ПараметрыСтавки, Выборка);
						ПараметрыСтавки.КоличествоЛетСГодаВыпускаТС = КоличествоЛетСГодаВыпускаТС;
						НалоговаяСтавка = Выборка.НалоговаяСтавка;
						Возврат;
						
					КонецЕсли;
						
				Иначе
					
					Ошибка = Новый Структура("ТекстСообщения, Поле",
						НСтр("ru = 'Ставка налога установлена с учетом количества лет, прошедших с года выпуска транспортного средства.
						|Укажите дату выпуска основного средства.'"),
						"Запись.ОсновноеСредство");
					
					Ошибки.Добавить(Ошибка);
					
					НалоговаяСтавка = 0;
					Возврат;
					
				КонецЕсли;
			Иначе
				
				ПараметрыСтавки = Новый Структура(
					"Период,
					|ОКТМО,
					|НаименованиеОбъектаНалогообложения,
					|МинимальноеЗначениеМощности,
					|МаксимальноеЗначениеМощности,
					|МинимальноеКоличествоЛетСГодаВыпускаТС,
					|МаксимальноеКоличествоЛетСГодаВыпускаТС,
					|НалоговаяСтавкаЗависитОтГодаВыпускаТС,
					|КоличествоЛетСГодаВыпускаТС");
				
				ЗаполнитьЗначенияСвойств(ПараметрыСтавки, Выборка);
				НалоговаяСтавка = Выборка.НалоговаяСтавка;
				Возврат;
				
			КонецЕсли;
			
		КонецЦикла;
		
	КонецЕсли;
		
КонецПроцедуры

&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()

	НастроитьЗависимыеЭлементыФормыНаСервере("Организация");
	
КонецПроцедуры

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

&НаСервере
Процедура ДатаПриИзмененииНаСервере()

	НастроитьЗависимыеЭлементыФормыНаСервере("Дата");
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Функция ДатаРегистрации(Объект)
	
	ДатаРегистрации = Объект.Дата;
	
	Для каждого ДанныеСтроки Из Объект.ОС Цикл
		Если ЗначениеЗаполнено(ДанныеСтроки.ДатаРегистрации) Тогда
			ДатаРегистрации = ДанныеСтроки.ДатаРегистрации;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Возврат ДатаРегистрации;
	
КонецФункции

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

	ЗаполнитьПараметрыВСтрокеОС(СписокОС);
	
	УстановитьВидимость(ЭтотОбъект);
	
	ЗаполнитьПредставлениеНалоговойСтавки(ЭтотОбъект);
	ЗаполнитьКонецДействияПараметров();
	
КонецПроцедуры

&НаСервере
Процедура ОСОсновноеСредствоПриИзмененииНаСервере()

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

	ЗаполнитьКонецДействияПараметров();

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

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

&НаСервере
Процедура ЗаполнитьКонецДействияПараметров()
	
	Если Объект.ОС.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;
	
	Если Объект.РежимИсправленияСПрошлойДаты Тогда
		
		СписокЗапросов = Новый Массив;
		СписокЗапросов.Добавить(ВнеоборотныеАктивы.ТекстЗапросаЗаписиРегистраСУчетомИсправлений("ПараметрыНачисленияТранспортногоНалога"));
		
		ТекстЗапроса = 
		"ВЫБРАТЬ
		|	ДанныеРегистра.ОсновноеСредство КАК ОсновноеСредство,
		|	ДанныеРегистра.Период КАК КонецДействия,
		|	ДанныеРегистра.Регистратор КАК ДокументИзмененияПараметров
		|ИЗ
		|	(ВЫБРАТЬ
		|		ДанныеРегистра.ОсновноеСредство КАК ОсновноеСредство,
		|		ДанныеРегистра.Период КАК Период,
		|		МАКСИМУМ(ДанныеРегистра.Регистратор) КАК Регистратор
		|	ИЗ
		|		(ВЫБРАТЬ
		|			ДанныеРегистра.ОсновноеСредство КАК ОсновноеСредство,
		|			МИНИМУМ(ДанныеРегистра.Период) КАК Период
		|		ИЗ
		|			ПараметрыНачисленияТранспортногоНалога_ЗаписиСУчетомИсправлений КАК ДанныеРегистра
		|		ГДЕ
		|			ДанныеРегистра.Период > &НачалоДействия
		|			И ДанныеРегистра.ОсновноеСредство В (&СписокОС)
		|			И ДанныеРегистра.Регистратор <> &Ссылка
		|			И ТИПЗНАЧЕНИЯ(ДанныеРегистра.Регистратор) = ТИП(Документ.ПараметрыНачисленияТранспортногоНалога)
		|
		|		СГРУППИРОВАТЬ ПО
		|			ДанныеРегистра.ОсновноеСредство
		|
		|		) КАК ДанныеРегистра_Период
		|
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПараметрыНачисленияТранспортногоНалога_ЗаписиСУчетомИсправлений КАК ДанныеРегистра
		|		ПО ДанныеРегистра.ОсновноеСредство = ДанныеРегистра_Период.ОсновноеСредство
		|			И ДанныеРегистра.Период = ДанныеРегистра_Период.Период
		|			И ТИПЗНАЧЕНИЯ(ДанныеРегистра.Регистратор) = ТИП(Документ.ПараметрыНачисленияТранспортногоНалога)
		|
		|	СГРУППИРОВАТЬ ПО
		|		ДанныеРегистра.ОсновноеСредство,
		|		ДанныеРегистра.Период
		|
		|	) КАК ДанныеРегистра_Регистратор
		|
		|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПараметрыНачисленияТранспортногоНалога_ЗаписиСУчетомИсправлений КАК ДанныеРегистра
		|	ПО ДанныеРегистра.ОсновноеСредство = ДанныеРегистра_Регистратор.ОсновноеСредство
		|		И ДанныеРегистра.Период = ДанныеРегистра_Регистратор.Период
		|		И ДанныеРегистра.Регистратор = ДанныеРегистра_Регистратор.Регистратор";
		СписокЗапросов.Добавить(ТекстЗапроса);
		
		ТекстЗапроса = СтрСоединить(СписокЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());

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

&НаКлиентеНаСервереБезКонтекста
Процедура ПриИзмененииНалоговойЛьготы(Знач Форма, СтруктураСохраняемыхРеквизитов)
	
	Объект = Форма.Объект;
	
	// Сохраним значения
	Если Форма.ТекущаяНалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.ОсвобождениеОтНалогообложения") Тогда
		
		СохранитьРеквизиты(Форма,
			"КодНалоговойЛьготыОсвобождениеОтНалогообложения, РегиональныйКодЛьготыОсвобождениеОтНалогообложения",
			СтруктураСохраняемыхРеквизитов);
			
		КодНалоговойЛьготыОсвобождениеОтНалогообложения = "";
		РегиональныйКодЛьготыОсвобождениеОтНалогообложения = "";
			
	ИначеЕсли Форма.ТекущаяНалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.СнижениеНалоговойСтавки") Тогда
		
		СохранитьРеквизиты(Форма, "РегиональныйКодЛьготыСнижениеНалоговойСтавки", СтруктураСохраняемыхРеквизитов);
		СохранитьРеквизиты(Объект, "ЛьготнаяСтавка", СтруктураСохраняемыхРеквизитов);
		
		КодНалоговойЛьготыСнижениеНалоговойСтавки = "";
		РегиональныйКодЛьготыСнижениеНалоговойСтавки = "";
		Объект.ЛьготнаяСтавка = 0;
		
	ИначеЕсли Форма.ТекущаяНалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.УменьшениеСуммыНалогаВПроцентах") Тогда
		
		СохранитьРеквизиты(Форма, "РегиональныйКодЛьготыУменьшениеСуммыНалогаВПроцентах", СтруктураСохраняемыхРеквизитов);
		СохранитьРеквизиты(Объект, "ПроцентУменьшения", СтруктураСохраняемыхРеквизитов);
		
		КодНалоговойЛьготыУменьшениеСуммыНалогаВПроцентах = "";
		РегиональныйКодЛьготыУменьшениеСуммыНалогаВПроцентах = "";
		Объект.ПроцентУменьшения = 0;
		
	ИначеЕсли Форма.ТекущаяНалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.УменьшениеСуммыНалогаНаСумму") Тогда
		
		СохранитьРеквизиты(Форма, "КодНалоговойЛьготыУменьшениеСуммыНалогаНаСумму", СтруктураСохраняемыхРеквизитов);
		СохранитьРеквизиты(Объект, "СуммаУменьшения", СтруктураСохраняемыхРеквизитов);
		
		КодНалоговойЛьготыУменьшениеСуммыНалогаНаСумму = "";
		Объект.СуммаУменьшения = 0;
		
	КонецЕсли;
	
	Объект.КодНалоговойЛьготы = "";
	Объект.РегиональныйКодЛьготы = "";
	
	// Восстановим значения
	Если Объект.НалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.ОсвобождениеОтНалогообложения") Тогда
		
		ВосстановитьРеквизиты(Форма,
			"КодНалоговойЛьготыОсвобождениеОтНалогообложения, РегиональныйКодЛьготыОсвобождениеОтНалогообложения",
			СтруктураСохраняемыхРеквизитов);
			
		Объект.КодНалоговойЛьготы = КодНалоговойЛьготыОсвобождениеОтНалогообложения;
		Объект.РегиональныйКодЛьготы = РегиональныйКодЛьготыОсвобождениеОтНалогообложения;
			
	ИначеЕсли Объект.НалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.СнижениеНалоговойСтавки") Тогда
		
		КодНалоговойЛьготыСнижениеНалоговойСтавки = "20230";
		ВосстановитьРеквизиты(Форма, "РегиональныйКодЛьготыСнижениеНалоговойСтавки", СтруктураСохраняемыхРеквизитов);
		ВосстановитьРеквизиты(Объект, "ЛьготнаяСтавка", СтруктураСохраняемыхРеквизитов);
		
		Объект.КодНалоговойЛьготы = КодНалоговойЛьготыСнижениеНалоговойСтавки;
		Объект.РегиональныйКодЛьготы = РегиональныйКодЛьготыСнижениеНалоговойСтавки;
		
	ИначеЕсли Объект.НалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.УменьшениеСуммыНалогаВПроцентах") Тогда
		
		КодНалоговойЛьготыУменьшениеСуммыНалогаВПроцентах = "20220";
		ВосстановитьРеквизиты(Форма, "РегиональныйКодЛьготыУменьшениеСуммыНалогаВПроцентах", СтруктураСохраняемыхРеквизитов);
		ВосстановитьРеквизиты(Объект, "ПроцентУменьшения", СтруктураСохраняемыхРеквизитов);
		
		Объект.КодНалоговойЛьготы = КодНалоговойЛьготыУменьшениеСуммыНалогаВПроцентах;
		Объект.РегиональныйКодЛьготы = РегиональныйКодЛьготыУменьшениеСуммыНалогаВПроцентах;
		
	ИначеЕсли Объект.НалоговаяЛьгота = 
		ПредопределенноеЗначение("Перечисление.ВидыНалоговыхЛьготПоТранспортномуНалогу.УменьшениеСуммыНалогаНаСумму") Тогда
		
		ВосстановитьРеквизиты(Форма, "КодНалоговойЛьготыУменьшениеСуммыНалогаНаСумму", СтруктураСохраняемыхРеквизитов);
		ВосстановитьРеквизиты(Объект, "СуммаУменьшения", СтруктураСохраняемыхРеквизитов);
		
		Объект.КодНалоговойЛьготы = КодНалоговойЛьготыУменьшениеСуммыНалогаНаСумму;
		Объект.РегиональныйКодЛьготы = "";
		
	КонецЕсли;
	
	ТекущаяНалоговаяЛьгота = Объект.НалоговаяЛьгота;
	УстановитьДоступностьНалоговыхЛьгот(Форма);
	УстановитьЗаголовокСвернутогоОтображенияНалоговойЛьготы(Форма);
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкаЛьготыПоТранспортномуНалогуЗавершение(Результат, ДопПараметры) Экспорт
		
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, "Льгота");
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
	
	Закрыть();
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПроверитьНеобходимостьПерерасчетаНалога(ДатаРегистрации, Организация)

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

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

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