#Область ОписаниеПеременных
&НаКлиенте
Перем СтруктураСохраняемыхРеквизитов;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
КонецЕсли;
ПараметрыВыбораСтатейИАналитик = Документы.ПараметрыНачисленияНалогаНаИмущество.ПараметрыВыбораСтатейИАналитик();
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
#Область СтандартныеПодсистемы
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ГиперссылкаФайлов = РаботаСФайлами.ГиперссылкаФайлов();
ГиперссылкаФайлов.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ГиперссылкаФайлов);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
#КонецОбласти
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПриЧтенииСозданииНаСервере();
ПараметрыВыбораСтатейИАналитик = Документы.ПараметрыНачисленияНалогаНаИмущество.ПараметрыВыбораСтатейИАналитик();
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СтруктураСохраняемыхРеквизитов = Новый Структура;
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ЗаполнитьЗначенияРеквизитовФормы();
ЗаполнитьКонецДействияПараметров();
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Оповестить("Запись_ПараметрыНачисленияНалогаНаИмущество", ПараметрыЗаписи, Объект.Ссылка);
ОбщегоНазначенияУТКлиент.ОповеститьОЗаписиДокументаВЖурнал();
ВнеоборотныеАктивыКлиент.ОповеститьОЗаписиДокументаВЖурналОС();
ОбщегоНазначенияУТКлиент.ВыполнитьДействияПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ВнеоборотныеАктивыКлиент.УстановитьТекущееВремяДляПрошлойДаты(Объект.Дата);
ДатаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РежимИсправленияСПрошлойДатыПриИзменении(Элемент)
Если НЕ Объект.РежимИсправленияСПрошлойДаты Тогда
Объект.НачалоДействия = '000101010000';
КонецЕсли;
НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура НачалоДействияПриИзменении(Элемент)
РассчитатьСниженнуюСтавку();
ЗаполнитьКонецДействияПараметров();
КонецПроцедуры
&НаКлиенте
Процедура ПорядокНалогообложенияПриИзменении(Элемент)
СписокРеквизитов = "ПорядокНалогообложения";
Объект.НеПодлежитНалогообложению = ?(ПорядокНалогообложения = 0, Истина, Ложь);
Если Объект.НеПодлежитНалогообложению Тогда
Объект.ОтражениеРасходов.Очистить();
КонецЕсли;
НастроитьЗависимыеЭлементыФормы(СписокРеквизитов);
КонецПроцедуры
&НаКлиенте
Процедура НалоговаяБазаПриИзменении(Элемент)
Если Объект.НалоговаяБаза = ПредопределенноеЗначение("Перечисление.НалоговаяБазаПоНалогуНаИмущество.КадастроваяСтоимость") Тогда
Объект.КодВидаИмущества = "11";
Иначе
Объект.КодВидаИмущества = "03";
КонецЕсли;
НастроитьЗависимыеЭлементыФормы("НалоговаяБаза,КодВидаИмущества");
КонецПроцедуры
&НаКлиенте
Процедура КодВидаИмуществаПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура ПостановкаНаУчетВНалоговомОрганеПриИзменении(Элемент)
Если Объект.ПостановкаНаУчетВНалоговомОргане = ПредопределенноеЗначение("Перечисление.ПостановкаНаУчетВНалоговомОргане.ВДругомНалоговомОргане") Тогда
СохранитьЗначениеРеквизитаФормы("КодПоОКАТО_ДругойКод", ЭтаФорма, ЭтаФорма, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("КодПоОКТМО_ДругойКод", ЭтаФорма, ЭтаФорма, СтруктураСохраняемыхРеквизитов);
ВосстановитьЗначениеРеквизитаФормы("НалоговыйОрган", Объект, СтруктураСохраняемыхРеквизитов);
ВосстановитьЗначениеРеквизитаФормы("КодПоОКАТО_ДругойНалоговыйОрган", ЭтаФорма, СтруктураСохраняемыхРеквизитов);
ВосстановитьЗначениеРеквизитаФормы("КодПоОКТМО_ДругойНалоговыйОрган", ЭтаФорма, СтруктураСохраняемыхРеквизитов);
ВосстановитьЗначениеРеквизитаФормы("НалоговаяСтавка", Объект, СтруктураСохраняемыхРеквизитов);
ИначеЕсли Объект.ПостановкаНаУчетВНалоговомОргане = ПредопределенноеЗначение("Перечисление.ПостановкаНаУчетВНалоговомОргане.СДругимКодомПоОКАТО") Тогда
ВосстановитьЗначениеРеквизитаФормы("КодПоОКАТО_ДругойКод", ЭтаФорма, СтруктураСохраняемыхРеквизитов);
ВосстановитьЗначениеРеквизитаФормы("КодПоОКТМО_ДругойКод", ЭтаФорма, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("НалоговыйОрган", ЭтаФорма, Объект, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("КодПоОКАТО_ДругойНалоговыйОрган", ЭтаФорма, ЭтаФорма, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("КодПоОКТМО_ДругойНалоговыйОрган", ЭтаФорма, ЭтаФорма, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("НалоговаяСтавка", ЭтаФорма, Объект, СтруктураСохраняемыхРеквизитов);
Иначе
СохранитьЗначениеРеквизитаФормы("КодПоОКАТО_ДругойКод", ЭтаФорма, ЭтаФорма, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("КодПоОКТМО_ДругойКод", ЭтаФорма, ЭтаФорма, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("НалоговыйОрган", ЭтаФорма, Объект, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("КодПоОКАТО_ДругойНалоговыйОрган", ЭтаФорма, ЭтаФорма, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("КодПоОКТМО_ДругойНалоговыйОрган", ЭтаФорма, ЭтаФорма, СтруктураСохраняемыхРеквизитов);
СохранитьЗначениеРеквизитаФормы("НалоговаяСтавка", ЭтаФорма, Объект, СтруктураСохраняемыхРеквизитов);
КонецЕсли;
НастроитьЗависимыеЭлементыФормы("ПостановкаНаУчетВНалоговомОргане");
КонецПроцедуры
&НаКлиенте
Процедура НалоговыйОрганПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.НалоговыйОрган) Тогда
НалоговыйОрганПриИзмененииНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НалоговыйОрганПриИзмененииНаСервере()
Если ЗначениеЗаполнено(Объект.НалоговыйОрган) Тогда
РеквизитыНалоговогоОргана = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.НалоговыйОрган, "КодПоОКТМО, КодПоОКАТО");
КодПоОКТМО_ДругойНалоговыйОрган = РеквизитыНалоговогоОргана.КодПоОКТМО;
КодПоОКАТО_ДругойНалоговыйОрган = РеквизитыНалоговогоОргана.КодПоОКАТО;
Объект.КодПоОКТМО = КодПоОКТМО_ДругойНалоговыйОрган;
Объект.КодПоОКАТО = КодПоОКАТО_ДругойНалоговыйОрган;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КодПоОКТМО_ДругойКодПриИзменении(Элемент)
Объект.КодПоОКТМО = КодПоОКТМО_ДругойКод;
КонецПроцедуры
&НаКлиенте
Процедура КодПоОКАТО_ДругойКодПриИзменении(Элемент)
Объект.КодПоОКАТО = КодПоОКАТО_ДругойКод;
КонецПроцедуры
&НаКлиенте
Процедура КодПоОКТМО_ДругойНалоговыйОрганПриИзменении(Элемент)
Объект.КодПоОКТМО = КодПоОКТМО_ДругойНалоговыйОрган;
КонецПроцедуры
&НаКлиенте
Процедура КодПоОКАТО_ДругойНалоговыйОрганПриИзменении(Элемент)
Объект.КодПоОКАТО = КодПоОКАТО_ДругойНалоговыйОрган;
КонецПроцедуры
&НаКлиенте
Процедура КодВидаИмуществаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Объект.НалоговаяБаза = ПредопределенноеЗначение("Перечисление.НалоговаяБазаПоНалогуНаИмущество.КадастроваяСтоимость") Тогда
НазваниеМакета = "КодыВидаИмуществаРаздел3";
Иначе
НазваниеМакета = "КодыВидаИмуществаРаздел2";
КонецЕсли;
ВыборКода("КодВидаИмущества", НазваниеМакета);
КонецПроцедуры
&НаКлиенте
Процедура КБКНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ВыборКода("КБК", "КБК");
КонецПроцедуры
&НаКлиенте
Процедура ОснованиеЛьготыПриИзменении(Элемент)
РассчитатьСниженнуюСтавку();
НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыОтражениеРасходов
&НаКлиенте
Процедура ОтражениеРасходовСтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеРасходовСтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеРасходовАналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеРасходовАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтражениеРасходовАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыОС
&НаКлиенте
Процедура ОСОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ВнеоборотныеАктивыКлиентСервер.ОбработкаВыбораЭлемента(Объект.ОС, "ОсновноеСредство", ВыбранноеЗначение);
ЗаполнитьКонецДействияПараметров();
КонецПроцедуры
&НаКлиенте
Процедура ОСВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ТекущиеДанные = Элементы.ОС.ТекущиеДанные;
Если Поле = Элементы.ОСКонецДействия
И ТекущиеДанные <> Неопределено
И ЗначениеЗаполнено(ТекущиеДанные.ДокументИзмененияПараметров) Тогда
ПоказатьЗначение(, ТекущиеДанные.ДокументИзмененияПараметров);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОСОсновноеСредствоПриИзменении(Элемент)
ЗаполнитьКонецДействияПараметров();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подобрать(Команда)
ОценкаПроизводительностиКлиент.ЗамерВремени("Справочник.ОбъектыЭксплуатации.ФормаВыбора");
ПараметрыПодбора = ОбщегоНазначенияУТКлиентСервер.ПараметрыПодбора(Элементы.ОСОсновноеСредство, ЭтаФорма);
ОткрытьФорму("Справочник.ОбъектыЭксплуатации.ФормаВыбора",
ПараметрыПодбора, Элементы.ОС,,,,,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца)
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьИсправления(Команда)
СписокОС = Новый Массив;
Для Каждого ДанныеСтроки Из Объект.ОС Цикл
СписокОС.Добавить(ДанныеСтроки.ОсновноеСредство);
КонецЦикла;
ВнеоборотныеАктивыКлиентЛокализация.ОткрытьВзаимозависимыеИсправленияИмущественныхНалогов(
Объект.Организация,
Объект.НачалоДействия,
Объект.Дата,
СписокОС);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма);
КонецПроцедуры
#Область СтандартныеПодсистемы
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура РассчитатьСниженнуюСтавку()
РеквизитыЛьготы = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.ОснованиеЛьготы,"ВидЛьготы, ПроцентУменьшения");
ВидЛьготыНалогНаИмущество = РеквизитыЛьготы.ВидЛьготы;
ПроцентУменьшения = РеквизитыЛьготы.ПроцентУменьшения;
Если Не ВидЛьготыНалогНаИмущество = ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСтавкиДоУказанной")
И Не ВидЛьготыНалогНаИмущество = ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСтавкиНаПроцент") Тогда
Объект.СниженнаяНалоговаяСтавка = 0;
Возврат;
КонецЕсли;
Если ВидЛьготыНалогНаИмущество = ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСтавкиНаПроцент") Тогда
Объект.СниженнаяНалоговаяСтавка = ОбщаяНалоговаяСтавка - ПроцентУменьшения;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыборКода(ИмяКода, НазваниеМакета)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТипОбъекта", "РегистрСведений");
ПараметрыФормы.Вставить("НазваниеОбъекта", "ПараметрыНачисленияНалогаНаИмущество");
ПараметрыФормы.Вставить("НазваниеМакета", НазваниеМакета);
ПараметрыФормы.Вставить("ТекущийПериод", Объект.Дата);
ПараметрыФормы.Вставить("ТекущийКод", Объект[ИмяКода]);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИмяКода", ИмяКода);
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ВыборКодаЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОткрытьФорму("ОбщаяФорма.ФормаВыбораКода", ПараметрыФормы,,,,,ОповещениеОЗакрытии);
КонецПроцедуры
&НаКлиенте
Процедура ВыборКодаЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
ИмяКода = ДополнительныеПараметры.ИмяКода;
ВыбранныйКод = РезультатЗакрытия;
Если ВыбранныйКод <> Неопределено Тогда
Модифицированность = Истина;
Объект[ИмяКода] = ВыбранныйКод;
КонецЕсли;
НастроитьЗависимыеЭлементыФормы(ИмяКода);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
#Область ОтноситсяКТерриторииСубъектаРФВДоле
Элемент = УсловноеОформление.Элементы.Добавить();
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСДоляСтоимостиЧислитель.Имя);
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСДоляСтоимостиЗнаменатель.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ОС.ОтноситсяКТерриторииСубъектаРФВДоле");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не требуется>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
#КонецОбласти
#Область ОтноситсяКТерриторииСубъектаРФВДоле
Элемент = УсловноеОформление.Элементы.Добавить();
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСДоляВПравеОбщейСобственностиЧислитель.Имя);
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСДоляВПравеОбщейСобственностиЗнаменатель.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ОС.ОбщаяСобственность");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не требуется>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
#КонецОбласти
#Область ОтноситсяКТерриторииСубъектаРФВДоле
Элемент = УсловноеОформление.Элементы.Добавить();
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСДоляПлощадиЧислитель.Имя);
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСДоляПлощадиЗнаменатель.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ОС.КадастроваяСтоимостьОпределенаПоДолеПлощади");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не требуется>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
#КонецОбласти
#Область НалогообложениеПоКадастровойСтоимости
Элемент = УсловноеОформление.Элементы.Добавить();
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСКадастровыйНомер.Имя);
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСКадастроваяСтоимость.Имя);
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСДатаРегистрацииПраваСобственности.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.НалоговаяБаза");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.НалоговаяБазаПоНалогуНаИмущество.КадастроваяСтоимость;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
#КонецОбласти
#Область ОтражениеРасходовПодразделение
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтражениеРасходовПодразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ОтражениеРасходов.Подразделение");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<Местонахождение ОС>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
#КонецОбласти
#Область ОСКонецДействия_Заполнено
Элемент = УсловноеОформление.Элементы.Добавить();
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСКонецДействия.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ОС.ДокументИзмененияПараметров");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет);
#КонецОбласти
#Область ОСКонецДействия_НеЗаполнено
Элемент = УсловноеОформление.Элементы.Добавить();
Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных(Элементы.ОСКонецДействия.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ОС.ДокументИзмененияПараметров");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не указано>'"));
#КонецОбласти
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
КодыВидовИмущества = ПолучитьКодыВидовИмущества();
КБК = ПолучитьКБК();
ПорядокНалогообложения = ?(Объект.НеПодлежитНалогообложению, 0, 1);
ПолучитьСтавкуНалогаНаИмущество();
ЗаполнитьЗначенияРеквизитовФормы();
НастроитьЗависимыеЭлементыФормыНаСервере();
УстановитьГоловнуюОрганизацию(ЭтаФорма);
ЗаполнитьКонецДействияПараметров();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьЗначенияРеквизитовФормы()
СохранитьЗначенияРеквизитов(ЭтаФорма);
СовмещениеОСНОиЕНВД = ЕстьСовмещениеОСНОиЕНВД(Объект.Организация, ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса()));
Если Объект.ПостановкаНаУчетВНалоговомОргане = Перечисления.ПостановкаНаУчетВНалоговомОргане.СДругимКодомПоОКАТО Тогда
КодПоОКТМО_ДругойКод = Объект.КодПоОКТМО;
КодПоОКАТО_ДругойКод = Объект.КодПоОКАТО;
ИначеЕсли Объект.ПостановкаНаУчетВНалоговомОргане = Перечисления.ПостановкаНаУчетВНалоговомОргане.ВДругомНалоговомОргане Тогда
КодПоОКТМО_ДругойНалоговыйОрган = Объект.КодПоОКТМО;
КодПоОКАТО_ДругойНалоговыйОрган = Объект.КодПоОКАТО;
КонецЕсли;
КодПоОКТМО_Исходный = Объект.КодПоОКТМО;
КодПоОКАТО_Исходный = Объект.КодПоОКАТО;
ПараметрыДокумента = Документы.ПараметрыНачисленияНалогаНаИмущество.ПараметрыДокумента();
ДоступныеАмортизационныеГруппы = Новый ФиксированныйМассив(ПараметрыДокумента.ДоступныеАмортизационныеГруппы);
КонецПроцедуры
&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(ИзмененныеРеквизиты = Неопределено)
Если ТребуетсяВызовСервераДляНастройкиЭлементовФормы(ИзмененныеРеквизиты) Тогда
НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныеРеквизиты)
Иначе
НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтаФорма, ИзмененныеРеквизиты);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ТребуетсяВызовСервераДляНастройкиЭлементовФормы(ИзмененныеРеквизиты)
СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
Если СтруктураИзмененныхРеквизитов.Количество() = 0
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("КодВидаИмущества")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Дата")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ОснованиеЛьготы")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ПостановкаНаУчетВНалоговомОргане") Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(Форма, ИзмененныеРеквизиты = Неопределено)
Объект = Форма.Объект;
Элементы = Форма.Элементы;
ОбновитьВсе = (ИзмененныеРеквизиты = Неопределено);
СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
Если СтруктураИзмененныхРеквизитов.Свойство("ПорядокНалогообложения")
Или ОбновитьВсе Тогда
Элементы.СтраницаНалоговыйОрган.Доступность = НЕ Объект.НеПодлежитНалогообложению;
Элементы.СтраницаОтражениеРасходов.Доступность = НЕ Объект.НеПодлежитНалогообложению;
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ПостановкаНаУчетВНалоговомОргане")
Или ОбновитьВсе Тогда
ПостановкаНаУчетСДругимКодомПоОКАТО = (Объект.ПостановкаНаУчетВНалоговомОргане = ПредопределенноеЗначение("Перечисление.ПостановкаНаУчетВНалоговомОргане.СДругимКодомПоОКАТО"));
Элементы.КодПоОКТМО_ДругойКод.Доступность = ПостановкаНаУчетСДругимКодомПоОКАТО;
Элементы.КодПоОКТМО_ДругойКод.АвтоОтметкаНезаполненного = ПостановкаНаУчетСДругимКодомПоОКАТО;
Элементы.КодПоОКТМО_ДругойКод.ОтметкаНезаполненного = ПостановкаНаУчетСДругимКодомПоОКАТО И ПустаяСтрока(Форма.КодПоОКТМО_ДругойКод);
Элементы.КодПоОКАТО_ДругойКод.Доступность = ПостановкаНаУчетСДругимКодомПоОКАТО;
Элементы.КодПоОКАТО_ДругойКод.АвтоОтметкаНезаполненного = ПостановкаНаУчетСДругимКодомПоОКАТО;
Элементы.КодПоОКАТО_ДругойКод.ОтметкаНезаполненного = ПостановкаНаУчетСДругимКодомПоОКАТО И ПустаяСтрока(Форма.КодПоОКАТО_ДругойКод);
ПостановкаНаУчетВДругомНалоговомОргане =
(Объект.ПостановкаНаУчетВНалоговомОргане = ПредопределенноеЗначение("Перечисление.ПостановкаНаУчетВНалоговомОргане.ВДругомНалоговомОргане"));
Элементы.НалоговыйОрган.Доступность = ПостановкаНаУчетВДругомНалоговомОргане;
Элементы.НалоговыйОрган.АвтоОтметкаНезаполненного = ПостановкаНаУчетВДругомНалоговомОргане;
Элементы.НалоговыйОрган.ОтметкаНезаполненного = ПостановкаНаУчетВДругомНалоговомОргане И Объект.НалоговыйОрган.Пустая();
Элементы.КодПоОКТМО_ДругойНалоговыйОрган.Доступность = ПостановкаНаУчетВДругомНалоговомОргане;
Элементы.КодПоОКТМО_ДругойНалоговыйОрган.АвтоОтметкаНезаполненного = ПостановкаНаУчетВДругомНалоговомОргане;
Элементы.КодПоОКТМО_ДругойНалоговыйОрган.ОтметкаНезаполненного =
ПостановкаНаУчетВДругомНалоговомОргане И ПустаяСтрока(Форма.КодПоОКТМО_ДругойНалоговыйОрган);
Элементы.КодПоОКАТО_ДругойНалоговыйОрган.Доступность = ПостановкаНаУчетВДругомНалоговомОргане;
Элементы.КодПоОКАТО_ДругойНалоговыйОрган.АвтоОтметкаНезаполненного = ПостановкаНаУчетВДругомНалоговомОргане;
Элементы.КодПоОКАТО_ДругойНалоговыйОрган.ОтметкаНезаполненного =
ПостановкаНаУчетВДругомНалоговомОргане И ПустаяСтрока(Форма.КодПоОКАТО_ДругойНалоговыйОрган);
КонецЕсли;
Если ОбновитьВсе
Или СтруктураИзмененныхРеквизитов.Свойство("НалоговаяБаза") Тогда
ОпределениеНалоговойБазыПоКадастровойСтоимости =
(Объект.НалоговаяБаза = ПредопределенноеЗначение("Перечисление.НалоговаяБазаПоНалогуНаИмущество.КадастроваяСтоимость"));
Элементы.НалоговаяСтавкаКадастроваяСтоимость.Доступность = ОпределениеНалоговойБазыПоКадастровойСтоимости;
Элементы.НалоговаяСтавкаКадастроваяСтоимость.АвтоОтметкаНезаполненного = Элементы.НалоговаяСтавкаКадастроваяСтоимость.Доступность;
КонецЕсли;
Если ОбновитьВсе
Или СтруктураИзмененныхРеквизитов.Свойство("НалоговаяБаза")
Или СтруктураИзмененныхРеквизитов.Свойство("ПостановкаНаУчетВНалоговомОргане") Тогда
ПостановкаНаУчетВДругомНалоговомОргане =
(Объект.ПостановкаНаУчетВНалоговомОргане = ПредопределенноеЗначение("Перечисление.ПостановкаНаУчетВНалоговомОргане.ВДругомНалоговомОргане"));
ОпределениеНалоговойБазыПоКадастровойСтоимости =
(Объект.НалоговаяБаза = ПредопределенноеЗначение("Перечисление.НалоговаяБазаПоНалогуНаИмущество.КадастроваяСтоимость"));
Элементы.НалоговаяСтавкаДругойНалоговыйОрган.Видимость =
Не ОпределениеНалоговойБазыПоКадастровойСтоимости;
Элементы.НалоговаяСтавкаДругойНалоговыйОрганДекорацияЕдиницаИзмерения.Видимость =
Не ОпределениеНалоговойБазыПоКадастровойСтоимости;
Элементы.НалоговаяСтавкаДругойНалоговыйОрган.Доступность =
Не ОпределениеНалоговойБазыПоКадастровойСтоимости
И ПостановкаНаУчетВДругомНалоговомОргане;
Элементы.НалоговаяСтавкаДругойНалоговыйОрган.АвтоОтметкаНезаполненного =
Не ОпределениеНалоговойБазыПоКадастровойСтоимости
И ПостановкаНаУчетВДругомНалоговомОргане;
Элементы.НалоговаяСтавкаДругойНалоговыйОрган.ОтметкаНезаполненного =
Не ОпределениеНалоговойБазыПоКадастровойСтоимости
И ПостановкаНаУчетВДругомНалоговомОргане
И Не ЗначениеЗаполнено(Объект.НалоговаяСтавка);
КонецЕсли;
Если ОбновитьВсе
Или СтруктураИзмененныхРеквизитов.Свойство("Дата")
Или СтруктураИзмененныхРеквизитов.Свойство("НалоговаяБаза") Тогда
ОпределениеНалоговойБазыПоКадастровойСтоимости =
(Объект.НалоговаяБаза = ПредопределенноеЗначение("Перечисление.НалоговаяБазаПоНалогуНаИмущество.КадастроваяСтоимость"));
Элементы.ГруппаИспользуетсяТолькоВДеятельностиОблагаемойЕНВД.Видимость =
(Форма.СовмещениеОСНОиЕНВД И ОпределениеНалоговойБазыПоКадастровойСтоимости);
КонецЕсли;
Если ОбновитьВсе
Или СтруктураИзмененныхРеквизитов.Свойство("НеПодлежитНалогообложению") Тогда
Элементы.ГруппаКолонокОС.Видимость = НЕ Объект.НеПодлежитНалогообложению;
КонецЕсли;
Если ОбновитьВсе
Или СтруктураИзмененныхРеквизитов.Свойство("КБК") Тогда
Элементы.КБК.Подсказка = Форма.КБК.Получить(Объект.КБК);
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("РежимИсправленияСПрошлойДаты")
ИЛИ ОбновитьВсе Тогда
Элементы.НачалоДействия.ТолькоПросмотр = НЕ Объект.РежимИсправленияСПрошлойДаты;
Элементы.НачалоДействия.АвтоОтметкаНезаполненного = Объект.РежимИсправленияСПрошлойДаты;
Элементы.НачалоДействия.ОтметкаНезаполненного = Объект.РежимИсправленияСПрошлойДаты И НЕ ЗначениеЗаполнено(Объект.НачалоДействия);
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ОснованиеЛьготы")
Или ОбновитьВсе Тогда
ЗначениеСвойства = ЗначениеЗаполнено(Объект.ОснованиеЛьготы);
Элементы.НачалоДействияЛьготы.Видимость = ЗначениеСвойства;
Элементы.ОкончаниеДействияЛьготы.Видимость = ЗначениеСвойства;
Если Форма.ВидЛьготыНалогНаИмущество = ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСтавкиДоУказанной")
Или Форма.ВидЛьготыНалогНаИмущество = ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСтавкиНаПроцент") Тогда
ЗначениеСвойства = Истина;
Иначе
ЗначениеСвойства = Ложь;
КонецЕсли;
Элементы.СниженнаяНалоговаяСтавка.Видимость = ЗначениеСвойства;
ЗначениеСвойства =
Форма.ВидЛьготыНалогНаИмущество = ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСуммыНаСумму");
Элементы.СуммаУменьшения.Видимость = ЗначениеСвойства;
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("НалоговаяБаза")
Или ОбновитьВсе Тогда
МассивВидовЛьготы = Новый Массив;
МассивВидовЛьготы.Добавить(ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.Освобождение"));
МассивВидовЛьготы.Добавить(ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСтавкиДоУказанной"));
МассивВидовЛьготы.Добавить(ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСтавкиНаПроцент"));
МассивВидовЛьготы.Добавить(ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСуммыНаПроцент"));
МассивВидовЛьготы.Добавить(ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеСуммыНаСумму"));
Если Объект.НалоговаяБаза = ПредопределенноеЗначение("Перечисление.НалоговаяБазаПоНалогуНаИмущество.КадастроваяСтоимость") Тогда
МассивВидовЛьготы.Добавить(ПредопределенноеЗначение("Перечисление.ВидыЛьготПоИмущественнымНалогам.СнижениеНалоговойБазыНаСумму"));
КонецЕсли;
ПараметрыВыбора = Новый Массив;
ПараметрыВыбора.Добавить(Новый ПараметрВыбора("Отбор.ВидЛьготы", МассивВидовЛьготы));
ПараметрыВыбора.Добавить(Новый ПараметрВыбора("Отбор.Налог", ПредопределенноеЗначение("Перечисление.ВидыИмущественныхНалогов.НалогНаИмущество")));
Элементы.ОснованиеЛьготы.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбора);
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("НалоговаяБаза")
Или СтруктураИзмененныхРеквизитов.Свойство("КодВидаИмущества")
Или ОбновитьВсе Тогда
ЗначениеСвойства =
Объект.НалоговаяБаза = ПредопределенноеЗначение("Перечисление.НалоговаяБазаПоНалогуНаИмущество.КадастроваяСтоимость")
ИЛИ Объект.КодВидаИмущества = "02";
Элементы.ОСГруппаОбъектНаТерриторииНесколькихСубъектов.Видимость = ЗначениеСвойства;
Элементы.ОбъектНаТерриторииНесколькихСубъектов.Видимость = ЗначениеСвойства;
Элементы.ОСДоляСтоимостиЧислитель.Видимость = ЗначениеСвойства;
Элементы.ОСДоляСтоимостиЗнаменатель.Видимость = ЗначениеСвойства;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(Знач ИзмененныеРеквизиты = Неопределено)
СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
ОбновитьВсе = СтруктураИзмененныхРеквизитов.Количество() = 0;
ДоступноДвижимоеИмущество = (Объект.Дата < '201901010000' И Объект.Дата <> '000101010000');
Если ОбновитьВсе Или СтруктураИзмененныхРеквизитов.Свойство("Дата") Тогда
До2014 = (Объект.Дата <> Дата(1, 1, 1, 0, 0, 0) И Год(Объект.Дата) < 2014);
Элементы.КодПоОКАТО_ДругойКод.Видимость = До2014;
Элементы.КодПоОКАТО_ДругойНалоговыйОрган.Видимость = До2014;
Элементы.НалоговаяБаза_СреднегодоваяСтоимость.ТолькоПросмотр = До2014;
Элементы.НалоговаяБаза_КадастроваяСтоимость.ТолькоПросмотр = До2014;
СовмещениеОСНОиЕНВД = ЕстьСовмещениеОСНОиЕНВД(Объект.Организация, Объект.Дата);
Элементы.ДвижимоеИмуществоПодлежащееНалогообложению.Видимость = ДоступноДвижимоеИмущество;
КонецЕсли;
Если ОбновитьВсе
Или СтруктураИзмененныхРеквизитов.Свойство("Дата")
Или СтруктураИзмененныхРеквизитов.Свойство("Организация")
Или СтруктураИзмененныхРеквизитов.Свойство("ПостановкаНаУчетВНалоговомОргане") Тогда
СвязиПараметровВыбораОС = Новый Массив;
СвязиПараметровВыбораОС.Добавить(Новый СвязьПараметраВыбора("ДатаСведений", "Объект.Дата", РежимИзмененияСвязанногоЗначения.НеИзменять));
СвязиПараметровВыбораОС.Добавить(Новый СвязьПараметраВыбора("ТекущийРегистратор", "Объект.Ссылка"));
ПараметрыВыбораОС = Новый Массив;
ПараметрыВыбораОС.Добавить(Новый ПараметрВыбора("Отбор.ВидНалога", Перечисления.ВидыИмущественныхНалогов.НалогНаИмущество));
ПараметрыВыбораОС.Добавить(Новый ПараметрВыбора("Контекст", "БУ, МФУ, УУ"));
Если Объект.Дата < '201901010000' И Объект.Дата <> '000101010000' Тогда
ПараметрыВыбораОС.Добавить(Новый ПараметрВыбора("Отбор.АмортизационнаяГруппа", ДоступныеАмортизационныеГруппы));
КонецЕсли;
Если НЕ ДоступноДвижимоеИмущество Тогда
ПараметрыВыбораОС.Добавить(Новый ПараметрВыбора("Отбор.НедвижимоеИмущество", Истина));
ПараметрыВыбораОС.Добавить(Новый ПараметрВыбора("ЗаголовокФормы", НСтр("ru = 'Недвижимое имущество'")));
Иначе
СвязиПараметровВыбораОС.Добавить(Новый СвязьПараметраВыбора("Отбор.БУОрганизация", "Объект.Организация", РежимИзмененияСвязанногоЗначения.Очищать));
ПараметрыВыбораОС.Добавить(Новый ПараметрВыбора("Отбор.БУСостояние", ПредопределенноеЗначение("Перечисление.СостоянияОС.ПринятоКУчету")));
ПараметрыВыбораОС.Добавить(Новый ПараметрВыбора("ДвижимоеИмуществоПринятоеДо2013", Истина));
КонецЕсли;
Элементы.ОСОсновноеСредство.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбораОС);
Элементы.ОСОсновноеСредство.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбораОС);
КонецЕсли;
Если ОбновитьВсе
Или СтруктураИзмененныхРеквизитов.Свойство("КодВидаИмущества") Тогда
Элементы.КодВидаИмущества.Подсказка = КодыВидовИмущества.Получить(Объект.КодВидаИмущества);
Элементы.КБК.Видимость = Документы.ПараметрыНачисленияНалогаНаИмущество.ТребуетсяУказаниеКБК(Объект.КодВидаИмущества);
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ОснованиеЛьготы")
Или ОбновитьВсе Тогда
ЗаполнитьПараметрыЛьготы();
КонецЕсли;
Если НЕ ПравоДоступа("Редактирование",Метаданные.Документы.ПараметрыНачисленияНалогаНаИмущество) Тогда
Элементы.ГруппаПорядокНалогообложения.ТолькоПросмотр = Истина;
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтаФорма, ИзмененныеРеквизиты);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПараметрыЛьготы()
Если ЗначениеЗаполнено(Объект.ОснованиеЛьготы) Тогда
РеквизитыЛьготы = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.ОснованиеЛьготы, "ВидЛьготы, ПроцентУменьшения");
ВидЛьготыНалогНаИмущество = РеквизитыЛьготы.ВидЛьготы;
Иначе
ВидЛьготыНалогНаИмущество = Перечисления.ВидыЛьготПоИмущественнымНалогам.ПустаяСсылка();
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ЕстьСовмещениеОСНОиЕНВД(Организация, Период)
Если Дата('20140701') <= Период И Период < Дата('20150101') Тогда
Возврат УчетнаяПолитика.СистемаНалогообложения(Организация, Период) = Перечисления.СистемыНалогообложения.Общая
И УчетнаяПолитика.ПлательщикЕНВД(Организация, Период);
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура СохранитьЗначениеРеквизитаФормы(ИмяРеквизита, Форма, Данные, СтруктураРеквизитов)
СтруктураРеквизитов.Вставить(ИмяРеквизита, Данные[ИмяРеквизита]);
Данные[ИмяРеквизита] = ОбщегоНазначенияБПКлиентСервер.ПустоеЗначениеТипа(ТипЗнч(Данные[ИмяРеквизита]));
КонецПроцедуры
&НаКлиенте
Процедура ВосстановитьЗначениеРеквизитаФормы(ИмяРеквизита, Данные, СтруктураРеквизитов)
Если СтруктураРеквизитов.Свойство(ИмяРеквизита) Тогда
Данные[ИмяРеквизита] = СтруктураРеквизитов[ИмяРеквизита];
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
УстановитьГоловнуюОрганизацию(ЭтаФорма);
ПолучитьСтавкуНалогаНаИмущество();
НастроитьЗависимыеЭлементыФормыНаСервере("Организация");
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииНаСервере()
Если Объект.Дата <> Дата(1, 1, 1, 0, 0, 0) И Объект.Дата < '20140101' Тогда
Объект.НалоговаяБаза = ПредопределенноеЗначение("Перечисление.НалоговаяБазаПоНалогуНаИмущество.СреднегодоваяСтоимость");
КонецЕсли;
ПолучитьСтавкуНалогаНаИмущество();
СписокРеквизитов = "Дата";
ЗаполнитьКонецДействияПараметров();
НастроитьЗависимыеЭлементыФормыНаСервере(СписокРеквизитов);
СохранитьЗначенияРеквизитов(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьГоловнуюОрганизацию(Форма)
Форма.ГоловнаяОрганизация = ОбщегоНазначенияБПВызовСервераПовтИсп.ГоловнаяОрганизация(Форма.Объект.Организация);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьКодыВидовИмущества()
КодыВидовИмущества = Новый Соответствие;
Для Сч = 2 По 3 Цикл
ИмяМакета = "КодыВидаИмуществаРаздел" + Строка(Сч);
Макет = РегистрыСведений.ПараметрыНачисленияНалогаНаИмущество.ПолучитьМакет(ИмяМакета);
ТекущаяОбласть = Макет.Области.Найти("Область2022");
Если ТекущаяОбласть = Неопределено Тогда
Продолжить;
КонецЕсли;
Для НомерСтр = ТекущаяОбласть.Верх По ТекущаяОбласть.Низ Цикл
КодПоказателя = СокрП(Макет.Область(НомерСтр, 1).Текст);
Название = СокрП(Макет.Область(НомерСтр, 2).Текст);
Если КодПоказателя = "###" Тогда
Прервать;
ИначеЕсли ПустаяСтрока(КодПоказателя) Тогда
Продолжить;
Иначе
КодыВидовИмущества.Вставить(КодПоказателя, Название);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(КодыВидовИмущества);
КонецФункции
&НаСервереБезКонтекста
Функция ПолучитьКБК()
КБК = Новый Соответствие;
Макет = РегистрыСведений.ПараметрыНачисленияНалогаНаИмущество.ПолучитьМакет("КБК");
ТекущаяОбласть = Макет.Области.Найти("Область2008");
Если ТекущаяОбласть <> Неопределено Тогда
Для НомерСтр = ТекущаяОбласть.Верх По ТекущаяОбласть.Низ Цикл
КодПоказателя = СокрП(Макет.Область(НомерСтр, 1).Текст);
Название = СокрП(Макет.Область(НомерСтр, 2).Текст);
КБК.Вставить(КодПоказателя, Название);
КонецЦикла;
КонецЕсли;
Возврат Новый ФиксированноеСоответствие(КБК);
КонецФункции
&НаСервере
Процедура ПолучитьСтавкуНалогаНаИмущество()
ДатаДок = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
Если ДатаДок < '201801010000' Тогда
ОсвобождениеОтНалогообложенияДвижимогоИмущества = Истина;
Возврат;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| СтавкиНалога.ОсвобождениеОтНалогообложенияДвижимогоИмущества КАК ОсвобождениеОтНалогообложенияДвижимогоИмущества,
| СтавкиНалога.НалоговаяСтавка КАК НалоговаяСтавка,
| СтавкиНалога.НалоговаяСтавкаДвижимоеИмущество КАК НалоговаяСтавкаДвижимоеИмущество
|ИЗ
| РегистрСведений.СтавкиНалогаНаИмущество.СрезПоследних(&Дата, Организация = &Организация) КАК СтавкиНалога";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Дата", ДатаДок);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
УстановитьПривилегированныйРежим(Истина);
Результат = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
ОсвобождениеОтНалогообложенияДвижимогоИмущества = Выборка.ОсвобождениеОтНалогообложенияДвижимогоИмущества;
НалоговаяСтавкаДляДвижимогоИмущества = Выборка.НалоговаяСтавкаДвижимоеИмущество;
ОбщаяНалоговаяСтавка = Выборка.НалоговаяСтавка;
Иначе
ОсвобождениеОтНалогообложенияДвижимогоИмущества = Ложь;
НалоговаяСтавкаДляДвижимогоИмущества = 0;
ОбщаяНалоговаяСтавка = 0;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура СохранитьЗначенияРеквизитов(Форма)
СохраненныеЗначенияРеквизитов = Новый Структура("Дата");
ЗаполнитьЗначенияСвойств(СохраненныеЗначенияРеквизитов, Форма.Объект);
Форма.СохраненныеЗначенияРеквизитов = Новый ФиксированнаяСтруктура(СохраненныеЗначенияРеквизитов);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКонецДействияПараметров()
Если Объект.ОС.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если Объект.РежимИсправленияСПрошлойДаты Тогда
СписокЗапросов = Новый Массив;
СписокЗапросов.Добавить(РасчетИмущественныхналоговУП.ТекстЗапросаЗаписиРегистраСУчетомИсправлений("ПараметрыНачисленияНалогаНаИмущество"));
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеРегистра.ОсновноеСредство КАК ОсновноеСредство,
| ДанныеРегистра.Период КАК КонецДействия,
| ДанныеРегистра.Регистратор КАК ДокументИзмененияПараметров
|ИЗ
| (ВЫБРАТЬ
| ДанныеРегистра.ОсновноеСредство КАК ОсновноеСредство,
| ДанныеРегистра.Период КАК Период,
| МАКСИМУМ(ДанныеРегистра.Регистратор) КАК Регистратор
| ИЗ
| (ВЫБРАТЬ
| ДанныеРегистра.ОсновноеСредство КАК ОсновноеСредство,
| МИНИМУМ(ДанныеРегистра.Период) КАК Период
| ИЗ
| ПараметрыНачисленияНалогаНаИмущество_ЗаписиСУчетомИсправлений КАК ДанныеРегистра
| ГДЕ
| ДанныеРегистра.Период > &НачалоДействия
| И ДанныеРегистра.ОсновноеСредство В (&СписокОС)
| И ДанныеРегистра.Регистратор <> &Ссылка
| И ТИПЗНАЧЕНИЯ(ДанныеРегистра.Регистратор) = ТИП(Документ.ПараметрыНачисленияНалогаНаИмущество)
|
| СГРУППИРОВАТЬ ПО
| ДанныеРегистра.ОсновноеСредство
|
| ) КАК ДанныеРегистра_Период
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПараметрыНачисленияНалогаНаИмущество_ЗаписиСУчетомИсправлений КАК ДанныеРегистра
| ПО ДанныеРегистра.ОсновноеСредство = ДанныеРегистра_Период.ОсновноеСредство
| И ДанныеРегистра.Период = ДанныеРегистра_Период.Период
| И ТИПЗНАЧЕНИЯ(ДанныеРегистра.Регистратор) = ТИП(Документ.ПараметрыНачисленияНалогаНаИмущество)
|
| СГРУППИРОВАТЬ ПО
| ДанныеРегистра.ОсновноеСредство,
| ДанныеРегистра.Период
|
| ) КАК ДанныеРегистра_Регистратор
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПараметрыНачисленияНалогаНаИмущество_ЗаписиСУчетомИсправлений КАК ДанныеРегистра
| ПО ДанныеРегистра.ОсновноеСредство = ДанныеРегистра_Регистратор.ОсновноеСредство
| И ДанныеРегистра.Период = ДанныеРегистра_Регистратор.Период
| И ДанныеРегистра.Регистратор = ДанныеРегистра_Регистратор.Регистратор";
СписокЗапросов.Добавить(ТекстЗапроса);
ТекстЗапроса = СтрСоединить(СписокЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());
Иначе
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеРегистра.ОсновноеСредство КАК ОсновноеСредство,
| ДанныеРегистра.Период КАК КонецДействия,
| ДанныеРегистра.Регистратор КАК ДокументИзмененияПараметров
|ИЗ
| (ВЫБРАТЬ
| ДанныеРегистра.ОсновноеСредство КАК ОсновноеСредство,
| ДанныеРегистра.Период КАК Период,
| МАКСИМУМ(ДанныеРегистра.Регистратор) КАК Регистратор
| ИЗ
| (ВЫБРАТЬ
| ДанныеРегистра.ОсновноеСредство КАК ОсновноеСредство,
| МИНИМУМ(ДанныеРегистра.Период) КАК Период
| ИЗ
| РегистрСведений.ПараметрыНачисленияНалогаНаИмущество КАК ДанныеРегистра
| ГДЕ
| ДанныеРегистра.Период > &Период
| И ДанныеРегистра.ДатаИсправления = ДАТАВРЕМЯ(1,1,1)
| И ДанныеРегистра.ОсновноеСредство В (&СписокОС)
| И ДанныеРегистра.Регистратор <> &Ссылка
| И ТИПЗНАЧЕНИЯ(ДанныеРегистра.Регистратор) = ТИП(Документ.ПараметрыНачисленияНалогаНаИмущество)
| И ДанныеРегистра.Активность
|
| СГРУППИРОВАТЬ ПО
| ДанныеРегистра.ОсновноеСредство
|
| ) КАК ДанныеРегистра_Период
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыНачисленияНалогаНаИмущество КАК ДанныеРегистра
| ПО ДанныеРегистра.ОсновноеСредство = ДанныеРегистра_Период.ОсновноеСредство
| И ДанныеРегистра.Период = ДанныеРегистра_Период.Период
| И ТИПЗНАЧЕНИЯ(ДанныеРегистра.Регистратор) = ТИП(Документ.ПараметрыНачисленияНалогаНаИмущество)
| И ДанныеРегистра.Активность
|
| СГРУППИРОВАТЬ ПО
| ДанныеРегистра.ОсновноеСредство,
| ДанныеРегистра.Период
|
| ) КАК ДанныеРегистра_Регистратор
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыНачисленияНалогаНаИмущество КАК ДанныеРегистра
| ПО ДанныеРегистра.ОсновноеСредство = ДанныеРегистра_Регистратор.ОсновноеСредство
| И ДанныеРегистра.Период = ДанныеРегистра_Регистратор.Период
| И ДанныеРегистра.Регистратор = ДанныеРегистра_Регистратор.Регистратор
| И ДанныеРегистра.Активность";
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Запрос.УстановитьПараметр("Период", КонецДня(?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса())));
Запрос.УстановитьПараметр("СписокОС", Объект.ОС.Выгрузить().ВыгрузитьКолонку("ОсновноеСредство"));
Запрос.УстановитьПараметр("НачалоДействия", Объект.НачалоДействия);
Запрос.УстановитьПараметр("НачалоПериода", Объект.НачалоДействия);
Запрос.УстановитьПараметр("КонецПериода", '000101010000');
Запрос.УстановитьПараметр("ДатаДокумента", '000101010000');
Запрос.УстановитьПараметр("БезОтбораОС", Ложь);
УстановитьПривилегированныйРежим(Истина);
Результат = Запрос.Выполнить().Выгрузить();
УстановитьПривилегированныйРежим(Ложь);
Для каждого ДанныеСтроки Из Объект.ОС Цикл
ТекущиеЗначения = Результат.Найти(ДанныеСтроки.ОсновноеСредство, "ОсновноеСредство");
Если ТекущиеЗначения <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(ДанныеСтроки, ТекущиеЗначения);
Иначе
ДанныеСтроки.КонецДействия = '000101010000';
ДанныеСтроки.ДокументИзмененияПараметров = Неопределено;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
Закрыть();
КонецПроцедуры
#КонецОбласти