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