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