#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
Если НЕ ЗначениеЗаполнено(Объект.ВалютаВзаиморасчетов) Тогда
Объект.ВалютаВзаиморасчетов = ДоходыИРасходыСервер.ПолучитьВалютуУправленческогоУчета();
КонецЕсли;
ПриЧтенииСозданииНаСервере();
КонецЕсли;
#Область УниверсальныеМеханизмы
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтаФорма);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
#КонецОбласти
УстановитьВидимостьКомандВводаНаОсновании();
ПараметрыВыбораСтатейИАналитик = Справочники.ДоговорыАренды.ПараметрыВыбораСтатейИАналитик();
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
Элементы.ТребуетсяОформлениеЗаявленийОВвозе.Видимость = (Объект.ТипДоговора = Перечисления.ТипыДоговоровАренды.Лизинг);
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ПараметрыВыбораСтатейИАналитик = Справочники.ДоговорыАренды.ПараметрыВыбораСтатейИАналитик();
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПриЧтенииСозданииНаСервере();
МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Элементы.СтраницаКомментарий.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Объект.Комментарий);
УстановитьЗаголовокФормы();
УстановитьВидимостьКомандВводаНаОсновании();
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтаФорма);
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
СобытияФорм.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "Запись_ЗаключениеДоговораАренды"
ИЛИ ИмяСобытия = "Запись_ИзменениеУсловийДоговораАренды" Тогда
ПриИзмененииУсловийАрендыНаСервере();
КонецЕсли;
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииУсловийАрендыНаСервере()
ЗаполнитьУсловияДоговора();
НастроитьЗависимыеЭлементыФормыНаСервере("УсловияДоговора");
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
#Область СтраницаОсновное
&НаКлиенте
Процедура ТипДоговораПриИзменении(Элемент)
ИзмененныеРеквизиты = Элемент.Имя;
Если Объект.ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоровАренды.Лизинг") Тогда
Объект.УчитыватьПредметыАрендыВРеглУчете = Истина;
Объект.УчитыватьПредметыАрендыВУпрУчете = Истина;
ВариантОтраженияВУчете = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияВУчетеВнеоборотныхАктивов.УправленческомИРегламентированномУчетах");
ИзмененныеРеквизиты = ИзмененныеРеквизиты + ",УчитыватьПредметыАрендыВРеглУчете,УчитыватьПредметыАрендыВУпрУчете";
ИначеЕсли Объект.ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоровАренды.Аренда") Тогда
Объект.Балансодержатель = ПредопределенноеЗначение("Перечисление.БалансодержательПредметовАренды.Арендодатель");
Объект.ТребуетсяОформлениеЗаявленийОВвозе = Ложь;
ИзмененныеРеквизиты = ИзмененныеРеквизиты + ",Балансодержатель,ТребуетсяОформлениеЗаявленийОВвозе";
КонецЕсли;
ИзмененныеРеквизиты = ИзмененныеРеквизиты + ",ТипДоговора";
НастроитьЗависимыеЭлементыФормы(ИзмененныеРеквизиты);
ЗаполнитьНалогообложениеНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ДатаНачалаДействияПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ДатаОкончанияДействияПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ПартнерПриИзменении(Элемент)
ПартнерПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КонтактноеЛицоПриИзменении(Элемент)
Если Объект.КонтактноеЛицо.Пустая() Тогда
Возврат;
КонецЕсли;
КонтактноеЛицоПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура СтатусПриИзменении(Элемент)
Если Объект.Согласован
И Объект.Статус <> ПредопределенноеЗначение("Перечисление.СтатусыДоговоровКонтрагентов.Действует")
И Объект.Статус <> ПредопределенноеЗначение("Перечисление.СтатусыДоговоровКонтрагентов.Закрыт") Тогда
Объект.Согласован = Ложь;
КонецЕсли;
СтатусПриИзмененииНаСервере();
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура УникальныйНомерВалютногоКонтроляПриИзменении(Элемент)
ОчиститьСообщения();
ДенежныеСредстваКлиентСерверЛокализация.ПроверитьУникальныйНомерВалютногоКонтракта(
Объект.Ссылка, Объект.УникальныйНомерВалютногоКонтроля);
КонецПроцедуры
&НаКлиенте
Процедура ВидДоходаИностранногоКонтрагентаПриИзменении(Элемент)
ВидимостьПояснениеКВидуДохода = (Объект.ВидДоходаИностранногоКонтрагента =
ПредопределенноеЗначение("Перечисление.ВидыДоходовИностранныхОрганизаций.ДоходыУслугиВзаимозависимым")
ИЛИ Объект.ВидДоходаИностранногоКонтрагента =
ПредопределенноеЗначение("Перечисление.ВидыДоходовИностранныхОрганизаций.ДоходПриравненныйДивидендам"))
И ОбщегоНазначенияКлиент.ДатаСеанса() < Дата(2025,4,1)
И Элементы.ВидДоходаИностранногоКонтрагента.Видимость;
Элементы.ПояснениеКВидуДохода.Видимость = ВидимостьПояснениеКВидуДохода;
КонецПроцедуры
#КонецОбласти
#Область СтраницаРасчеты
&НаКлиенте
Процедура БалансодержательПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент);
ЗаполнитьНалогообложениеНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ВалютаВзаиморасчетовПриИзменении(Элемент)
ВалютаВзаиморасчетовПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ОплатаВВалютеПриИзменении(Элемент)
ОбработатьБанковскиеСчета();
НастроитьЗависимыеЭлементыФормы(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ЕстьОбеспечительныйПлатежПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ЕстьВыкупПредметовАрендыПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент);
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВариантОтраженияВУчетеПриИзменении(Элемент)
Если НЕ ЗначениеЗаполнено(ВариантОтраженияВУчете) Тогда
ВариантОтраженияВУчете = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияВУчетеВнеоборотныхАктивов.УправленческомИРегламентированномУчетах");
КонецЕсли;
Объект.УчитыватьПредметыАрендыВРеглУчете =
ВариантОтраженияВУчете = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияВУчетеВнеоборотныхАктивов.УправленческомИРегламентированномУчетах")
ИЛИ ВариантОтраженияВУчете = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияВУчетеВнеоборотныхАктивов.РегламентированномУчете");
Объект.УчитыватьПредметыАрендыВУпрУчете =
ВариантОтраженияВУчете = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияВУчетеВнеоборотныхАктивов.УправленческомИРегламентированномУчетах")
ИЛИ ВариантОтраженияВУчете = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияВУчетеВнеоборотныхАктивов.УправленческомУчете");
НастроитьЗависимыеЭлементыФормы("УчитыватьПредметыАрендыВРеглУчете,УчитыватьПредметыАрендыВУпрУчете");
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияУсловияДоговораОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если Объект.Статус <> ПредопределенноеЗначение("Перечисление.СтатусыДоговоровКонтрагентов.Действует") Тогда
ТекстПредупреждения = НСтр("ru = 'Для оформления документа у договора должен быть статус ""Действует""'");
ПоказатьПредупреждение(, ТекстПредупреждения);
Возврат;
КонецЕсли;
Если НавигационнаяСсылкаФорматированнойСтроки = "#Создать" Тогда
СтандартнаяОбработка = Ложь;
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ТекстВопроса = НСтр("ru = 'Оформление документа возможно только после записи договора.
|Записать и продолжить?'");
ОписаниеОповещения = Новый ОписаниеОповещения("ТекстУсловияДоговораНажатиеЗавершение", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да);
Иначе
ТекстУсловияДоговораНажатиеЗавершение(КодВозвратаДиалога.Да, Неопределено);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТребуетсяОформлениеЗаявленийОВвозеПриИзменении(Элемент)
ЗаполнитьНалогообложениеНаСервере();
НастроитьЗависимыеЭлементыФормы(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура НалогообложениеНДСПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент);
КонецПроцедуры
#КонецОбласти
#Область СтраницаУчетнаяИнформация
&НаКлиенте
Процедура СтатьяРасходовУслугиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовУслугиПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовУслугиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовУслугиАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовУслугиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовПроцентыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовПроцентыПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовПроцентыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовПроцентыАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовПроцентыОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ОткрытьГрафикОплат(Команда)
ОткрытьГрафикОплатИНачислений("ГрафикОплатУслуг");
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьГрафикНачислений(Команда)
ОткрытьГрафикОплатИНачислений("ГрафикНачисленияУслуг");
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьГрафикНачисленияПроцентов(Команда)
ОткрытьГрафикОплатИНачислений("ГрафикНачисленияПроцентов");
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьИнтервал(Команда)
ОповещениеПослеВыбора = Новый ОписаниеОповещения("УстановитьИнтервалЗавершение", ЭтотОбъект);
ОбщегоНазначенияУТКлиент.РедактироватьПериод(
Объект,
Новый Структура("ДатаНачала, ДатаОкончания", "ДатаНачалаДействия", "ДатаОкончанияДействия"),
ОповещениеПослеВыбора);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
ПараметрыПроцедуры = ОбщегоНазначенияУТКлиент.ПараметрыРазрешенияРедактированияРеквизитовОбъекта();
ПараметрыПроцедуры.ТолькоВидимые = Ложь;
ОбщегоНазначенияУТКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтотОбъект, ПараметрыПроцедуры);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ПриИзмененииРеквизитов
&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(Знач ИзмененныеРеквизитыИлиЭлемент = "")
Если ТипЗнч(ИзмененныеРеквизитыИлиЭлемент) = Тип("Строка") Тогда
ИзмененныеРеквизиты = ИзмененныеРеквизитыИлиЭлемент;
Иначе
ИзмененныеРеквизиты = ИзмененныеРеквизитыИлиЭлемент.Имя;
КонецЕсли;
СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
Если ТребуетсяВызовСервераДляНастройкиЭлементовФормы(СтруктураИзмененныхРеквизитов) Тогда
НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныеРеквизиты)
Иначе
НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, ИзмененныеРеквизиты);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(Знач Форма, Знач ИзмененныеРеквизиты = "")
СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
ПриИзмененииРеквизитовНаКлиентеНаСервере(Форма, СтруктураИзмененныхРеквизитов);
ОбновитьВсе = СтруктураИзмененныхРеквизитов.Количество() = 0;
Объект = Форма.Объект;
Элементы = Форма.Элементы;
СлужебныеПараметрыФормы = Форма.СлужебныеПараметрыФормы;
ВспомогательныеРеквизиты = Новый Структура;
ВспомогательныеРеквизиты.Вставить("ИспользуетсяУчетАрендыПоФСБУ25_2018", СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018);
ВспомогательныеРеквизиты.Вставить("РеглУчетВНАВедетсяНезависимо", СлужебныеПараметрыФормы.РеглУчетВНАВедетсяНезависимо);
ПараметрыРеквизитовОбъекта = УчетАрендованныхОСКлиентСервер.ЗначенияСвойствЗависимыхРеквизитов_ДоговорыАренды(
Объект, ВспомогательныеРеквизиты, ИзмененныеРеквизиты);
ОбщегоНазначенияУТКлиентСервер.НастроитьЗависимыеЭлементыФормы(Форма, ПараметрыРеквизитовОбъекта);
Если НЕ ОбновитьВсе Тогда
ОбщегоНазначенияУТКлиентСервер.ОчиститьНеиспользуемыеРеквизиты(Объект, ПараметрыРеквизитовОбъекта);
КонецЕсли;
УказаныУсловияДоговора = ЗначениеЗаполнено(Форма.ЗаключениеДоговораАренды);
УчетЗаБалансом =
Объект.Балансодержатель = ПредопределенноеЗначение("Перечисление.БалансодержательПредметовАренды.Арендодатель")
И НЕ СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018;
БезДисконтирования =
Объект.СпособОпределенияСтоимостиАктивов =
ПредопределенноеЗначение("Перечисление.СпособыОпределенияСтоимостиПредметовАренды.ПоСуммеДоговора");
#Область СтраницаОсновное
Если СтруктураИзмененныхРеквизитов.Свойство("Наименование")
ИЛИ ОбновитьВсе Тогда
Элементы.НаименованиеДляПечати.СписокВыбора.Очистить();
Элементы.НаименованиеДляПечати.СписокВыбора.Добавить(Объект.Наименование);
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ТипДоговора")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства =
(Объект.ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоровАренды.Лизинг"));
Элементы.ТребуетсяОформлениеЗаявленийОВвозе.Видимость = ЗначениеСвойства;
СписокВыбораОпределенияСтоимости = Элементы.СпособОпределенияСтоимостиАктивов.СписокВыбора;
СписокВыбораОпределенияСтоимости.Очистить();
Если НЕ ЗначениеСвойства Тогда
СписокВыбораОпределенияСтоимости.Добавить(
ПредопределенноеЗначение("Перечисление.СпособыОпределенияСтоимостиПредметовАренды.Дисконтирование"),
НСтр("ru = 'Рассчитывается по ставке'"));
КонецЕсли;
СписокВыбораОпределенияСтоимости.Добавить(
ПредопределенноеЗначение("Перечисление.СпособыОпределенияСтоимостиПредметовАренды.Вручную"),
НСтр("ru = 'Указывается вручную'"));
СписокВыбораОпределенияСтоимости.Добавить(
ПредопределенноеЗначение("Перечисление.СпособыОпределенияСтоимостиПредметовАренды.ПоСуммеДоговора"),
НСтр("ru = 'Равна сумме договора'"));
КонецЕсли;
#КонецОбласти
#Область ПараметрыДоговора
Если СтруктураИзмененныхРеквизитов.Свойство("ТребуетсяОформлениеЗаявленийОВвозе")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства = Не Объект.ТребуетсяОформлениеЗаявленийОВвозе;
Элементы.НалогообложениеНДС.Видимость = ЗначениеСвойства;
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("НалогообложениеНДС")
ИЛИ ОбновитьВсе Тогда
Элементы.ВидАгентскогоДоговора.Видимость = СлужебныеПараметрыФормы.ЭтоЛокализацияРФ;
ЭтоНалоговыйАгент = (Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.НалоговыйАгентПоНДС"));
Элементы.ВидАгентскогоДоговора.Доступность = ЭтоНалоговыйАгент;
Элементы.ТребуетсяОформлениеЗаявленийОВвозе.Видимость = Не ЭтоНалоговыйАгент;
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ВестиУчетАвансовПоТекущимАренднымПлатежамВРазрезеПлатежныхДокументов")
Или СтруктураИзмененныхРеквизитов.Свойство("ОплатаВВалюте")
Или ОбновитьВсе Тогда
Элементы.ВестиУчетАвансовПоТекущимАренднымПлатежамВРазрезеПлатежныхДокументов.Видимость = СлужебныеПараметрыФормы.ЭтоЛокализацияРФ
И СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018;
ЗначениеСвойства = Не (Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.НалоговыйАгентПоНДС")
Или Объект.ОплатаВВалюте);
Элементы.ВестиУчетАвансовПоТекущимАренднымПлатежамВРазрезеПлатежныхДокументов.Доступность = ЗначениеСвойства;
КонецЕсли;
#КонецОбласти
#Область РасчетыПоДоговору
Если СтруктураИзмененныхРеквизитов.Свойство("ТипДоговора")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("УсловияДоговора")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства =
УказаныУсловияДоговора
И (СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018
ИЛИ НЕ УчетЗаБалансом);
Элементы.УсловияДоговора_Сумма.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СуммаВалюта.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СуммаУслугПоАренде.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СуммаУслугПоАрендеВалюта.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_ДатаПервогоПлатежа.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СуммаНДС.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СуммаНДСВалюта.Видимость = ЗначениеСвойства;
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("УсловияДоговора")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ЕстьОбеспечительныйПлатеж")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства =
УказаныУсловияДоговора
И Объект.ЕстьОбеспечительныйПлатеж
И (СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018
ИЛИ НЕ УчетЗаБалансом);
Элементы.УсловияДоговора_СуммаОбеспечительногоПлатежа.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СуммаОбеспечительногоПлатежаВалюта.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_ДатаПервогоОбеспечительногоПлатежа.Видимость = ЗначениеСвойства;
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("УсловияДоговора")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ЕстьВыкупПредметовАренды")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства =
УказаныУсловияДоговора
И Объект.ЕстьВыкупПредметовАренды
И (СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018
ИЛИ НЕ УчетЗаБалансом);
Элементы.УсловияДоговора_СуммаВыкупаПредметовАренды.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СуммаВыкупаПредметовАрендыВалюта.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_ДатаВыкупа.Видимость = ЗначениеСвойства;
КонецЕсли;
#КонецОбласти
#Область ПериодическиеПлатежи
Если СтруктураИзмененныхРеквизитов.Свойство("УсловияДоговора")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства =
УказаныУсловияДоговора
И (СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018
ИЛИ НЕ УчетЗаБалансом);
Элементы.УсловияДоговора_ПериодичностьОплат.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговораПериодичностьНачислений.Видимость = ЗначениеСвойства;
ЗначениеСвойства =
УказаныУсловияДоговора
И Форма.УсловияДоговора_Проведен;
Элементы.ОткрытьГрафикОплат.Видимость = ЗначениеСвойства;
Элементы.ОткрытьГрафикНачислений.Видимость = ЗначениеСвойства;
ЗначениеСвойства =
УказаныУсловияДоговора
И ЗначениеЗаполнено(Форма.УсловияДоговора_ПериодичностьОплат)
И Форма.УсловияДоговора_ПериодичностьОплат <> ПредопределенноеЗначение("Перечисление.ПериодичностьГрафика.Произвольная");
Элементы.УсловияДоговора_ОплатаУслугиПоАренде.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_ОплатаУслугиПоАрендеВалюта.Видимость = ЗначениеСвойства;
ЗначениеСвойства =
УказаныУсловияДоговора
И ЗначениеЗаполнено(Форма.УсловияДоговора_ПериодичностьНачислений)
И Форма.УсловияДоговора_ПериодичностьНачислений <> ПредопределенноеЗначение("Перечисление.ПериодичностьГрафика.Произвольная");
Элементы.УсловияДоговора_НачислениеУслугиПоАренде.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_НачислениеУслугиПоАрендеВалюта.Видимость = ЗначениеСвойства;
КонецЕсли;
#КонецОбласти
#Область Дисконтирование
Если СтруктураИзмененныхРеквизитов.Свойство("УсловияДоговора")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства = УказаныУсловияДоговора И НЕ БезДисконтирования;
Элементы.УсловияДоговора_СтоимостьПредметовАренды.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СтоимостьПредметовАрендыВалюта.Видимость = ЗначениеСвойства;
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("УсловияДоговора")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ДатаНачалаДействия")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ДатаОкончанияДействия")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства =
УказаныУсловияДоговора
И НЕ БезДисконтирования
И ВспомогательныеРеквизиты.ИспользуетсяУчетАрендыПоФСБУ25_2018;
Элементы.УсловияДоговора_ПроцентнаяСтавка.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_ПроцентнаяСтавкаДекорация.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СуммаПроцентов.Видимость = ЗначениеСвойства;
Элементы.УсловияДоговора_СуммаПроцентовВалюта.Видимость = ЗначениеСвойства;
Элементы.ГруппаДисконтирование.Заголовок =
?(ЗначениеСвойства, НСтр("ru = 'Дисконтирование'"), НСтр("ru = 'Предметы аренды'"));
ЗначениеСвойства =
УказаныУсловияДоговора
И ВспомогательныеРеквизиты.ИспользуетсяУчетАрендыПоФСБУ25_2018
И Форма.УсловияДоговора_Проведен;
Элементы.ОткрытьГрафикНачисленияПроцентов.Видимость = ЗначениеСвойства;
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ТипДоговора")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Балансодержатель")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация")
ИЛИ ОбновитьВсе Тогда
Если СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018 Тогда
Если Объект.ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоровАренды.Лизинг") Тогда
ЗаголовокЭлемента = НСтр("ru = 'Сумма вложений лизингодателя'");
Иначе
ЗаголовокЭлемента = НСтр("ru = 'Стоимость предметов аренды'");
КонецЕсли;
Иначе
Если Объект.Балансодержатель = ПредопределенноеЗначение("Перечисление.БалансодержательПредметовАренды.Арендодатель") Тогда
ЗаголовокЭлемента = НСтр("ru = 'Залоговая стоимость'");
Иначе
ЗаголовокЭлемента = НСтр("ru = 'Сумма вложений лизингодателя'");
КонецЕсли;
КонецЕсли;
Элементы.УсловияДоговора_СтоимостьПредметовАренды.Заголовок = ЗаголовокЭлемента;
КонецЕсли;
#КонецОбласти
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтруктураИзмененныхРеквизитов, "Контрагент")
Или ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтруктураИзмененныхРеквизитов, "Организация")
Или ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтруктураИзмененныхРеквизитов, "ОплатаВВалюте")
Или ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтруктураИзмененныхРеквизитов, "ВалютаВзаиморасчетов")
Или ОбновитьВсе Тогда
Элементы.УникальныйНомерВалютногоКонтроля.Видимость =
ДенежныеСредстваКлиентСерверЛокализация.ПрименяетсяВалютныйКонтроль(Форма.КонтрагентЮрФизЛицо);
Конецесли;
КонецПроцедуры
&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(Знач ИзмененныеРеквизиты = "")
ПриИзмененииРеквизитовНаСервере(ИзмененныеРеквизиты);
СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
ОбновитьВсе = СтруктураИзмененныхРеквизитов.Количество() = 0;
Если СтруктураИзмененныхРеквизитов.Свойство("Организация")
ИЛИ ОбновитьВсе Тогда
УстановитьПараметрыФункциональныхОпцийФормы(Новый Структура("Организация", Объект.Организация));
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("Организация")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ДатаНачалаДействия")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства = НастройкиНалоговУчетныхПолитикПовтИсп.РеглУчетВНАВедетсяНезависимо(
Объект.Организация, КонецМесяца(?(Объект.ДатаНачалаДействия <> '000101010000', Объект.ДатаНачалаДействия, ТекущаяДатаСеанса())));
ВнеоборотныеАктивыСлужебный.УстановитьСвойствоСтруктуры(
"РеглУчетВНАВедетсяНезависимо",
ЗначениеСвойства,
СлужебныеПараметрыФормы);
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ДатаНачалаДействия")
ИЛИ ОбновитьВсе Тогда
ВнеоборотныеАктивыСлужебный.УстановитьСвойствоСтруктуры(
"ИспользуетсяУправлениеВНА_2_4",
ВнеоборотныеАктивы.ИспользуетсяУправлениеВНА_2_4(Объект.ДатаНачалаДействия),
СлужебныеПараметрыФормы);
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ДатаНачалаДействия")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ДатаОкончанияДействия")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация")
ИЛИ ОбновитьВсе Тогда
Если ЗначениеЗаполнено(Объект.ДатаОкончанияДействия) Тогда
ДатаПроверки = Объект.ДатаОкончанияДействия;
Иначе
ДатаПроверки = ?(Объект.ДатаНачалаДействия < ТекущаяДатаСеанса(), '000101010000', Объект.ДатаНачалаДействия);
КонецЕсли;
ВнеоборотныеАктивыСлужебный.УстановитьСвойствоСтруктуры(
"ИспользуетсяУчетАрендыПоФСБУ25_2018",
УчетАрендованныхОС.ИспользуетсяУчетАрендыПоФСБУ25_2018(Объект.Организация, ДатаПроверки, Ложь),
СлужебныеПараметрыФормы);
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ДатаНачалаДействия")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ДатаОкончанияДействия")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация") Тогда
Если НЕ СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018
И Объект.ТипДоговора = Перечисления.ТипыДоговоровАренды.Аренда Тогда
Объект.ТипДоговора = Перечисления.ТипыДоговоровАренды.Лизинг;
ИзмененныеРеквизиты = ИзмененныеРеквизиты + ",ТипДоговора";
КонецЕсли;
КонецЕсли;
ВнеоборотныеАктивыСлужебный.УстановитьСвойствоСтруктуры(
"ЭтоЛокализацияРФ",
ПолучитьФункциональнуюОпцию("ЛокализацияРФ"),
СлужебныеПараметрыФормы);
НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, ИзмененныеРеквизиты);
КонецПроцедуры
&НаКлиенте
Функция ТребуетсяВызовСервераДляНастройкиЭлементовФормы(СтруктураИзмененныхРеквизитов)
Возврат СтруктураИзмененныхРеквизитов.Количество() = 0
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ДатаНачалаДействия")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ДатаОкончанияДействия")
ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация");
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ПриИзмененииРеквизитовНаКлиентеНаСервере(Форма, СтруктураИзмененныхРеквизитов)
Если СтруктураИзмененныхРеквизитов.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Объект = Форма.Объект;
СлужебныеПараметрыФормы = Форма.СлужебныеПараметрыФормы;
Если НЕ СлужебныеПараметрыФормы.РеглУчетВНАВедетсяНезависимо
И (НЕ Объект.УчитыватьПредметыАрендыВРеглУчете
ИЛИ Объект.УчитыватьПредметыАрендыВУпрУчете) Тогда
Объект.УчитыватьПредметыАрендыВРеглУчете = Истина;
Объект.УчитыватьПредметыАрендыВУпрУчете = Истина;
Форма.ВариантОтраженияВУчете = ПредопределенноеЗначение("Перечисление.ВариантыОтраженияВУчетеВнеоборотныхАктивов.УправленческомИРегламентированномУчетах");
СтруктураИзмененныхРеквизитов.Вставить("УчитыватьПредметыАрендыВРеглУчете");
СтруктураИзмененныхРеквизитов.Вставить("УчитыватьПредметыАрендыВУпрУчете");
КонецЕсли;
Если НЕ Объект.ЕстьВыкупПредметовАренды
И Объект.ЕстьАвансированиеВыкупнойСтоимости Тогда
Объект.ЕстьАвансированиеВыкупнойСтоимости = Ложь;
СтруктураИзмененныхРеквизитов.Вставить("ЕстьАвансированиеВыкупнойСтоимости");
КонецЕсли;
Если НЕ СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018
И Объект.ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоровАренды.Аренда") Тогда
Объект.ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоровАренды.Лизинг");
СтруктураИзмененныхРеквизитов.Вставить("ТипДоговора");
КонецЕсли;
Если Объект.ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоровАренды.Лизинг")
И Объект.СпособОпределенияСтоимостиАктивов = ПредопределенноеЗначение("Перечисление.СпособыОпределенияСтоимостиПредметовАренды.Дисконтирование") Тогда
Объект.СпособОпределенияСтоимостиАктивов = ПредопределенноеЗначение("Перечисление.СпособыОпределенияСтоимостиПредметовАренды.Вручную");
СтруктураИзмененныхРеквизитов.Вставить("СпособОпределенияСтоимостиАктивов");
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ТребуетсяОформлениеЗаявленийОВвозе")
И Объект.ТребуетсяОформлениеЗаявленийОВвозе Тогда
Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС");
СтруктураИзмененныхРеквизитов.Вставить("НалогообложениеНДС");
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("НалогообложениеНДС") Тогда
ЭтоНалоговыйАгент = (Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.НалоговыйАгентПоНДС"));
Если ЭтоНалоговыйАгент Тогда
Объект.ВестиУчетАвансовПоТекущимАренднымПлатежамВРазрезеПлатежныхДокументов = Истина;
Иначе
Объект.ВидАгентскогоДоговора = ПредопределенноеЗначение("Перечисление.ВидыАгентскихДоговоров.ПустаяСсылка");
СтруктураИзмененныхРеквизитов.Вставить("ВидАгентскогоДоговора");
КонецЕсли;
СтруктураИзмененныхРеквизитов.Вставить("ВестиУчетАвансовПоТекущимАренднымПлатежамВРазрезеПлатежныхДокументов");
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("ОплатаВВалюте")
И Объект.ОплатаВВалюте Тогда
Объект.ВестиУчетАвансовПоТекущимАренднымПлатежамВРазрезеПлатежныхДокументов = Объект.ОплатаВВалюте;
СтруктураИзмененныхРеквизитов.Вставить("ВестиУчетАвансовПоТекущимАренднымПлатежамВРазрезеПлатежныхДокументов");
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("Балансодержатель")
И Объект.Балансодержатель = ПредопределенноеЗначение("Перечисление.БалансодержательПредметовАренды.Арендатор")
И Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.НалоговыйАгентПоНДС") Тогда
Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС");
СтруктураИзмененныхРеквизитов.Вставить("НалогообложениеНДС");
ЭтоНалоговыйАгент = (Объект.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.НалоговыйАгентПоНДС"));
Если Объект.НалогообложениеНДС <> ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.НалоговыйАгентПоНДС") Тогда
Объект.ВидАгентскогоДоговора = ПредопределенноеЗначение("Перечисление.ВидыАгентскихДоговоров.ПустаяСсылка");
СтруктураИзмененныхРеквизитов.Вставить("ВидАгентскогоДоговора");
СтруктураИзмененныхРеквизитов.Вставить("ВестиУчетАвансовПоТекущимАренднымПлатежамВРазрезеПлатежныхДокументов");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииРеквизитовНаСервере(ИзмененныеРеквизиты)
СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
Если СтруктураИзмененныхРеквизитов.Свойство("Организация") Тогда
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
ЗаполнитьБанковскийСчетОрганизацииПоУмолчанию(Объект.Организация, Объект.ОплатаВВалюте, Объект.БанковскийСчет);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СтатусПриИзмененииНаСервере()
Если Не ЗначениеЗаполнено(Объект.ДатаНачалаДействия)
И Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыДоговоровКонтрагентов.Действует") Тогда
Объект.ДатаНачалаДействия = ТекущаяДатаСеанса();
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.ДатаОкончанияДействия)
И Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыДоговоровКонтрагентов.Закрыт") Тогда
Объект.ДатаОкончанияДействия = ТекущаяДатаСеанса();
КонецЕсли;
УстановитьДоступностьЭлементовПоСтатусуСервер();
НастроитьЗависимыеЭлементыФормыНаСервере("Статус");
КонецПроцедуры
&НаСервере
Процедура ПартнерПриИзмененииСервер()
ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Объект.Партнер, Объект.Контрагент);
ПартнерыИКонтрагенты.ЗаполнитьКонтактноеЛицоПартнераПоУмолчанию(Объект.Партнер, Объект.КонтактноеЛицо);
ЗаполнитьБанковскийСчетКонтрагентаПоУмолчанию(Объект.Организация, Объект.Контрагент, Объект.ОплатаВВалюте, Объект.БанковскийСчетКонтрагента);
КонтрагентЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ЮрФизЛицо");
НастроитьЗависимыеЭлементыФормыНаСервере("Контрагент");
КонецПроцедуры
&НаСервере
Процедура КонтактноеЛицоПриИзмененииСервер()
ВладелецКонтактногоЛица = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.КонтактноеЛицо, "Владелец");
Если ВладелецКонтактногоЛица <> Объект.Партнер Тогда
Объект.Партнер = ВладелецКонтактногоЛица;
ПартнерПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработатьБанковскиеСчета()
УстановитьПараметрыВыбораБанковскихСчетов();
Если НЕ БанковскийСчетСоответствуетПорядкуОплаты(Объект.Организация, Объект.БанковскийСчет, Объект.ОплатаВВалюте) Тогда
Объект.БанковскийСчет = Неопределено;
КонецЕсли;
ЗаполнитьБанковскийСчетОрганизацииПоУмолчанию(Объект.Организация, Объект.ОплатаВВалюте, Объект.БанковскийСчет);
Если НЕ БанковскийСчетСоответствуетПорядкуОплаты(Объект.Организация, Объект.БанковскийСчетКонтрагента, Объект.ОплатаВВалюте) Тогда
Объект.БанковскийСчетКонтрагента = Неопределено;
КонецЕсли;
ЗаполнитьБанковскийСчетКонтрагентаПоУмолчанию(Объект.Организация, Объект.Контрагент, Объект.ОплатаВВалюте, Объект.БанковскийСчетКонтрагента);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьИнтервалЗавершение(Период, ДополнительныеПараметры) Экспорт
НастроитьЗависимыеЭлементыФормы("ДатаНачалаДействия,ДатаОкончанияДействия");
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНаСервере()
ПараметрыЗаполнения = Справочники.ДоговорыАренды.ПараметрыЗаполненияНалогообложенияНДСЗакупки(Объект);
ПараметрыЗаполнения.УслугаПоАрендеНалоговыйАгент = ПараметрыЗаполнения.УслугаПоАрендеНалоговыйАгент
И СлужебныеПараметрыФормы.ИспользуетсяУчетАрендыПоФСБУ25_2018;
УчетНДСУП.ЗаполнитьСписокВыбораНалогообложенияНДСЗакупки(
Элементы.НалогообложениеНДС,
Объект.НалогообложениеНДС,
ПараметрыЗаполнения);
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСервер()
КонтрагентЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ЮрФизЛицо");
ЗаполнитьНалогообложениеНаСервере();
ЗаполнитьБанковскийСчетКонтрагентаПоУмолчанию(Объект.Организация, Объект.Контрагент, Объект.ОплатаВВалюте, Объект.БанковскийСчетКонтрагента);
УстановитьВидимостьВидаДоходаИностранногоКонтрагента();
НастроитьЗависимыеЭлементыФормыНаСервере("Контрагент");
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииСервер()
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
НастроитьЗависимыеЭлементыФормыНаСервере("Организация");
ОбработатьБанковскиеСчета();
КонецПроцедуры
#КонецОбласти
#Область КонтрольНесогласованныхИзменений
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменении(Элемент)
Если Элемент.Имя = "Партнер" Тогда
ПартнерПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "Контрагент" Тогда
КонтрагентПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "Организация" Тогда
ОрганизацияПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ВалютаВзаиморасчетов" Тогда
ВалютаВзаиморасчетовПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "ОплатаВВалюте" Тогда
ОплатаВВалютеПриИзменении(Элемент);
ИначеЕсли Элемент.Имя = "Дата" Тогда
НастроитьЗависимыеЭлементыФормы(Элемент);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеКоманды(Команда)
Если Команда.Имя = "УстановитьИнтервал" Тогда
УстановитьИнтервал(Команда);
Иначе
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Команда);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломИзменения(Элемент, Отказ)
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередУдалением(Элемент, Отказ)
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
ОбщегоНазначенияУТКлиент.КонтрольНеСогласованныхИзмененийВызватьИсключение(ЭтаФорма, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзменении_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПриИзменении.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПриИзменении(Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Команда_УстановитьДоступностьЭлементовПоСтатусуСервер(Команда)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.Команды.Свойство(Команда.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеКоманды(Команда);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередНачаломИзменения_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередНачаломИзменения.Свойство(Элемент.Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломИзменения(Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередУдалением_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Имя = Элемент.Имя;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередУдалением.Свойство(Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередУдалением(Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередНачаломДобавления_УстановитьДоступностьЭлементовПоСтатусуСервер(Элемент, Отказ, Копирование, Родитель, Группа)
Если ОбщегоНазначенияУТКлиент.ПриДействииСЭлементомЗависящимОтСтатуса(ЭтаФорма) Тогда
Возврат;
КонецЕсли;
Имя = Элемент.Имя;
Если СтруктураДействийКонтрольНеСогласованныхИзменений.ПередНачаломДобавления.Свойство(Имя) Тогда
КонтрольНеСогласованныхИзмененийОбработатьСобытиеПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизитаЗависящегоОтСтатуса()
УстановитьДоступностьЭлементовПоСтатусуСервер();
ОбщегоНазначенияУТКлиент.ПослеИзмененияРеквизитаЗависящегоОтСтатуса(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
УстановитьВидимостьКомандВводаНаОсновании();
КонецПроцедуры
#КонецОбласти
#Область СтандартныеПодсистемы
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
Элементы.СтраницаКомментарий.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Объект.Комментарий);
Если Объект.УчитыватьПредметыАрендыВУпрУчете И Объект.УчитыватьПредметыАрендыВРеглУчете Тогда
ВариантОтраженияВУчете = Перечисления.ВариантыОтраженияВУчетеВнеоборотныхАктивов.УправленческомИРегламентированномУчетах;
ИначеЕсли Объект.УчитыватьПредметыАрендыВУпрУчете Тогда
ВариантОтраженияВУчете = Перечисления.ВариантыОтраженияВУчетеВнеоборотныхАктивов.УправленческомУчете;
ИначеЕсли Объект.УчитыватьПредметыАрендыВРеглУчете Тогда
ВариантОтраженияВУчете = Перечисления.ВариантыОтраженияВУчетеВнеоборотныхАктивов.РегламентированномУчете;
КонецЕсли;
ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
УстановитьПараметрыВыбораБанковскихСчетов();
УстановитьЗаголовокФормы();
ЗаполнитьУсловияДоговора();
УстановитьВидимостьВидаДоходаИностранногоКонтрагента();
КонтрагентЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ЮрФизЛицо");
НастроитьЗависимыеЭлементыФормыНаСервере();
ЗаполнитьНалогообложениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ВалютаВзаиморасчетовПриИзмененииСервер()
Объект.ОплатаВВалюте = ВзаиморасчетыСервер.ПолучитьОплатуВВалютеПоУмолчанию();
ОбработатьБанковскиеСчета();
НастроитьЗависимыеЭлементыФормыНаСервере("ВалютаВзаиморасчетов,ОплатаВВалюте");
КонецПроцедуры
&НаСервереБезКонтекста
Функция БанковскийСчетСоответствуетПорядкуОплаты(Организация, БанковскийСчет, ОплатаВВалюте)
Соответствует = Истина;
Если ЗначениеЗаполнено(БанковскийСчет) Тогда
ВалютаСчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(БанковскийСчет, "ВалютаДенежныхСредств");
Если ОплатаВВалюте Тогда
Соответствует = ВалютаСчета <> ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация);
Иначе
Соответствует = ВалютаСчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация);
КонецЕсли;
КонецЕсли;
Возврат Соответствует;
КонецФункции
&НаСервереБезКонтекста
Процедура ЗаполнитьБанковскийСчетОрганизацииПоУмолчанию(Организация, ОплатаВВалюте, БанковскийСчет)
Если ЗначениеЗаполнено(БанковскийСчет)
ИЛИ НЕ ЗначениеЗаполнено(Организация) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 2
| БанковскиеСчетаОрганизаций.Ссылка КАК БанковскийСчет
|ИЗ
| Справочник.БанковскиеСчетаОрганизаций КАК БанковскиеСчетаОрганизаций
|ГДЕ
| БанковскиеСчетаОрганизаций.Владелец = &Организация
| И ((БанковскиеСчетаОрганизаций.ВалютаДенежныхСредств = &ВалютаРегл И НЕ &ОплатаВВалюте)
| ИЛИ (БанковскиеСчетаОрганизаций.ВалютаДенежныхСредств <> &ВалютаРегл И &ОплатаВВалюте))
| И Не БанковскиеСчетаОрганизаций.ПометкаУдаления
|");
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("ОплатаВВалюте", ОплатаВВалюте);
Запрос.УстановитьПараметр("ВалютаРегл", ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация));
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1 И Выборка.Следующий() Тогда
БанковскийСчет = Выборка.БанковскийСчет;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ЗаполнитьБанковскийСчетКонтрагентаПоУмолчанию(Организация, Контрагент, ОплатаВВалюте, БанковскийСчетКонтрагента)
Если (ЗначениеЗаполнено(БанковскийСчетКонтрагента)
И Контрагент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(БанковскийСчетКонтрагента,"Владелец"))
ИЛИ НЕ ЗначениеЗаполнено(Контрагент) Тогда
Возврат;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 2
| БанковскиеСчетаКонтрагентов.Ссылка КАК БанковскийСчетКонтрагента
|ИЗ
| Справочник.БанковскиеСчетаКонтрагентов КАК БанковскиеСчетаКонтрагентов
|ГДЕ
| БанковскиеСчетаКонтрагентов.Владелец = &Контрагент
| И (БанковскиеСчетаКонтрагентов.ВалютаДенежныхСредств = &ВалютаРегл
| И НЕ &ОплатаВВалюте
| ИЛИ БанковскиеСчетаКонтрагентов.ВалютаДенежныхСредств <> &ВалютаРегл
| И &ОплатаВВалюте)
| И НЕ БанковскиеСчетаКонтрагентов.ПометкаУдаления";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("ОплатаВВалюте", ОплатаВВалюте);
Запрос.УстановитьПараметр("ВалютаРегл", ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация));
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1 И Выборка.Следующий() Тогда
БанковскийСчетКонтрагента = Выборка.БанковскийСчетКонтрагента;
Иначе
БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораБанковскихСчетов()
МассивПараметров = Новый Массив;
Если НЕ Объект.ОплатаВВалюте Тогда
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.ВалютаДенежныхСредств", ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация)));
Иначе
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.ВалютаДенежныхСредств", Новый ФиксированныйМассив(ИностранныеВалюты(Объект.Организация))));
КонецЕсли;
МассивПараметров.Добавить(Новый ПараметрВыбора("ВыборСчетовГоловнойОрганизации", Неопределено));
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.Закрыт", Ложь));
ПараметрыВыбораСчета = Новый ФиксированныйМассив(МассивПараметров);
Элементы.БанковскийСчет.ПараметрыВыбора = ПараметрыВыбораСчета;
Элементы.БанковскийСчетКонтрагента.ПараметрыВыбора = ПараметрыВыбораСчета;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ИностранныеВалюты(Организация)
Запрос = Новый Запрос("
|ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| Валюты.Ссылка <> &ВалютаРегламентированногоУчета
|");
Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Организация));
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
&НаСервере
Процедура УстановитьДоступностьЭлементовПоСтатусуСервер()
УстановитьПодписку = Ложь;
Если Объект.Статус = Перечисления.СтатусыДоговоровКонтрагентов.НеСогласован Тогда
УстановитьПодписку = Ложь;
ИначеЕсли Объект.Статус = Перечисления.СтатусыДоговоровКонтрагентов.Закрыт Или
Объект.Статус = Перечисления.СтатусыДоговоровКонтрагентов.Действует Тогда
УстановитьПодписку = Объект.Согласован;
КонецЕсли;
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("Дата");
МассивЭлементов.Добавить("Номер");
МассивЭлементов.Добавить("Партнер");
МассивЭлементов.Добавить("Контрагент");
МассивЭлементов.Добавить("Организация");
МассивЭлементов.Добавить("ВалютаВзаиморасчетов");
МассивЭлементов.Добавить("ОплатаВВалюте");
ОбщегоНазначенияУТ.УстановитьПодпискуНаСобытияИзмененияЭлементовФормы(ЭтаФорма, МассивЭлементов, УстановитьПодписку);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьУсловияДоговора()
ПрочитатьУсловияДоговора();
Если НЕ ЗначениеЗаполнено(ЗаключениеДоговораАренды) Тогда
ТекстСтроки = СтрШаблон(НСтр("ru = 'Заключение договора: <a href = ""%1"">оформить</a>'"), "#Создать");
ЗаголовокНадписи = ВнеоборотныеАктивыКлиентСервер.ФорматированнаяСтрока(ТекстСтроки);
Элементы.ДекорацияУсловияДоговора.Заголовок = ЗаголовокНадписи;
КонецЕсли;
УстановитьВидимостьКомандВводаНаОсновании();
КонецПроцедуры
&НаСервере
Процедура ПрочитатьУсловияДоговора()
ЗаключениеДоговораАренды = Документы.ЗаключениеДоговораАренды.ПустаяСсылка();
УсловияДоговора_ИзменениеУсловий = Документы.ИзменениеУсловийДоговораАренды.ПустаяСсылка();
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
Возврат;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ЗаключениеДоговораАренды.Ссылка,
| ЗаключениеДоговораАренды.СтоимостьПредметовАренды,
| ЗаключениеДоговораАренды.СуммаОбеспечительногоПлатежа,
| ЗаключениеДоговораАренды.СуммаУслугПоАренде,
| ЗаключениеДоговораАренды.СуммаВыкупаПредметовАренды,
| ЗаключениеДоговораАренды.СуммаПроцентов,
| ЗаключениеДоговораАренды.СуммаНДС,
| ЗаключениеДоговораАренды.СтавкаНДС,
| ЗаключениеДоговораАренды.ДатаНачалаАренды,
| ЗаключениеДоговораАренды.ДатаПервогоПлатежа,
| ЗаключениеДоговораАренды.ДатаПервогоОбеспечительногоПлатежа,
| ЗаключениеДоговораАренды.ДатаВыкупа,
| ЗаключениеДоговораАренды.ПроцентнаяСтавка,
| ЗаключениеДоговораАренды.ПериодичностьОплат,
| ЗаключениеДоговораАренды.ПериодичностьНачислений,
| ЗаключениеДоговораАренды.ОплатаУслугиПоАренде,
| ЗаключениеДоговораАренды.НачислениеУслугиПоАренде,
| ЗаключениеДоговораАренды.СрокЛет,
| ЗаключениеДоговораАренды.СрокМес,
| ЗаключениеДоговораАренды.СрокДней
|ПОМЕСТИТЬ втЗаключениеДоговораАренды
|ИЗ
| Документ.ЗаключениеДоговораАренды КАК ЗаключениеДоговораАренды
|ГДЕ
| НЕ ЗаключениеДоговораАренды.Проведен
| И ЗаключениеДоговораАренды.Договор = &Договор
|;
|
|
|ВЫБРАТЬ
| ВЫРАЗИТЬ(УсловияДоговоровАрендыСрезПервых.Регистратор КАК Документ.ИзменениеУсловийДоговораАренды) КАК Ссылка
|ПОМЕСТИТЬ втДокументыПереносаДоговора
|ИЗ
| РегистрСведений.УсловияДоговоровАренды.СрезПервых(, &Договор = Договор) КАК УсловияДоговоровАрендыСрезПервых
|ГДЕ
| УсловияДоговоровАрендыСрезПервых.Регистратор ССЫЛКА Документ.ИзменениеУсловийДоговораАренды
|;
|
|
|ВЫБРАТЬ
| УсловияДоговоровАренды.Период КАК Период,
| УсловияДоговоровАренды.Регистратор КАК Регистратор
|ИЗ
| РегистрСведений.УсловияДоговоровАренды КАК УсловияДоговоровАренды
|ГДЕ
| УсловияДоговоровАренды.Договор = &Договор
| И УсловияДоговоровАренды.Регистратор ССЫЛКА Документ.ИзменениеУсловийДоговораАренды
| И НЕ УсловияДоговоровАренды.Регистратор В
| (ВЫБРАТЬ
| втДокументыПереносаДоговора.Ссылка КАК Ссылка
| ИЗ
| втДокументыПереносаДоговора КАК втДокументыПереносаДоговора)
|
|УПОРЯДОЧИТЬ ПО
| Период
|;
|
|
|ВЫБРАТЬ
| УсловияДоговоровАрендыСрезПоследних.Период КАК Период,
| УсловияДоговоровАрендыСрезПоследних.Регистратор КАК Регистратор
|ИЗ
| РегистрСведений.УсловияДоговоровАренды.СрезПоследних(, Договор = &Договор
| И Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияДоговоровКонтрагентов.Закрыт)) КАК УсловияДоговоровАрендыСрезПоследних
|;
|
|
|ВЫБРАТЬ
| ЕСТЬNULL(УсловияДоговоровАренды.СуммаУслугПоАренде, втЗаключениеДоговораАренды.СуммаУслугПоАренде)
| + ЕСТЬNULL(УсловияДоговоровАренды.СуммаОбеспечительногоПлатежа, втЗаключениеДоговораАренды.СуммаОбеспечительногоПлатежа)
| + ЕСТЬNULL(УсловияДоговоровАренды.СуммаВыкупаПредметовАренды, втЗаключениеДоговораАренды.СуммаВыкупаПредметовАренды) КАК УсловияДоговора_Сумма,
|
| ЕСТЬNULL(УсловияДоговоровАренды.СтоимостьПредметовАренды, втЗаключениеДоговораАренды.СтоимостьПредметовАренды) КАК УсловияДоговора_СтоимостьПредметовАренды,
| ЕСТЬNULL(УсловияДоговоровАренды.СуммаОбеспечительногоПлатежа, втЗаключениеДоговораАренды.СуммаОбеспечительногоПлатежа) КАК УсловияДоговора_СуммаОбеспечительногоПлатежа,
| ЕСТЬNULL(УсловияДоговоровАренды.СуммаУслугПоАренде, втЗаключениеДоговораАренды.СуммаУслугПоАренде) КАК УсловияДоговора_СуммаУслугПоАренде,
| ЕСТЬNULL(УсловияДоговоровАренды.СуммаВыкупаПредметовАренды, втЗаключениеДоговораАренды.СуммаВыкупаПредметовАренды) КАК УсловияДоговора_СуммаВыкупаПредметовАренды,
| ЕСТЬNULL(УсловияДоговоровАренды.СуммаПроцентов, втЗаключениеДоговораАренды.СуммаПроцентов) КАК УсловияДоговора_СуммаПроцентов,
| ЕСТЬNULL(УсловияДоговоровАренды.СуммаНДС, втЗаключениеДоговораАренды.СуммаНДС) КАК УсловияДоговора_СуммаНДС,
| ЕСТЬNULL(УсловияДоговоровАренды.СтавкаНДС, втЗаключениеДоговораАренды.СтавкаНДС) КАК УсловияДоговора_СтавкаНДС,
| ЕСТЬNULL(УсловияДоговоровАренды.ДатаНачалаАренды, втЗаключениеДоговораАренды.ДатаНачалаАренды) КАК УсловияДоговора_ДатаНачалаАренды,
| ЕСТЬNULL(УсловияДоговоровАренды.ДатаПервогоПлатежа, втЗаключениеДоговораАренды.ДатаПервогоПлатежа) КАК УсловияДоговора_ДатаПервогоПлатежа,
| ЕСТЬNULL(УсловияДоговоровАренды.ДатаПервогоОбеспечительногоПлатежа, втЗаключениеДоговораАренды.ДатаПервогоОбеспечительногоПлатежа) КАК УсловияДоговора_ДатаПервогоОбеспечительногоПлатежа,
| ЕСТЬNULL(УсловияДоговоровАренды.ДатаВыкупа, втЗаключениеДоговораАренды.ДатаВыкупа) КАК УсловияДоговора_ДатаВыкупа,
| ЕСТЬNULL(УсловияДоговоровАренды.ПроцентнаяСтавка, втЗаключениеДоговораАренды.ПроцентнаяСтавка) КАК УсловияДоговора_ПроцентнаяСтавка,
| ЕСТЬNULL(УсловияДоговоровАренды.ПериодичностьОплат, втЗаключениеДоговораАренды.ПериодичностьОплат) КАК УсловияДоговора_ПериодичностьОплат,
| ЕСТЬNULL(УсловияДоговоровАренды.ПериодичностьНачислений, втЗаключениеДоговораАренды.ПериодичностьНачислений) КАК УсловияДоговора_ПериодичностьНачислений,
| ЕСТЬNULL(УсловияДоговоровАренды.ОплатаУслугиПоАренде, втЗаключениеДоговораАренды.ОплатаУслугиПоАренде) КАК УсловияДоговора_ОплатаУслугиПоАренде,
| ЕСТЬNULL(УсловияДоговоровАренды.НачислениеУслугиПоАренде, втЗаключениеДоговораАренды.НачислениеУслугиПоАренде) КАК УсловияДоговора_НачислениеУслугиПоАренде,
| ЕСТЬNULL(УсловияДоговоровАренды.СрокЛет, втЗаключениеДоговораАренды.СрокЛет) КАК УсловияДоговора_СрокЛет,
| ЕСТЬNULL(УсловияДоговоровАренды.СрокМес, втЗаключениеДоговораАренды.СрокМес) КАК УсловияДоговора_СрокМес,
| ЕСТЬNULL(УсловияДоговоровАренды.СрокДней, втЗаключениеДоговораАренды.СрокДней) КАК УсловияДоговора_СрокДней,
| ЕСТЬNULL(УсловияДоговораПервый.Регистратор, втЗаключениеДоговораАренды.Ссылка) КАК ДокументЗаключениеДоговораАренды,
| УсловияДоговоровАренды.Регистратор КАК УсловияДоговора_ИзменениеУсловий,
| ЕСТЬNULL(УсловияДоговораПервый.Период, ДАТАВРЕМЯ(1, 1, 1)) КАК УсловияДоговораПервый_Период,
| НЕ УсловияДоговораПервый.Регистратор ЕСТЬ NULL КАК УсловияДоговора_Проведен
|ИЗ
| Справочник.ДоговорыАренды КАК ДоговорыАренды
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УсловияДоговоровАренды.СрезПоследних(, Договор = &Договор) КАК УсловияДоговоровАренды
| ПО УсловияДоговоровАренды.Договор = ДоговорыАренды.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УсловияДоговоровАренды.СрезПервых(, Договор = &Договор) КАК УсловияДоговораПервый
| ПО УсловияДоговораПервый.Договор = ДоговорыАренды.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ втЗаключениеДоговораАренды КАК втЗаключениеДоговораАренды
| ПО ИСТИНА
|ГДЕ
| ДоговорыАренды.Ссылка = &Договор";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Договор", Объект.Ссылка);
УстановитьПривилегированныйРежим(Истина);
Результаты = Запрос.ВыполнитьПакет();
УстановитьПривилегированныйРежим(Ложь);
Результат = Результаты[Результаты.ВГраница()];
Если Результат.Пустой() Тогда
Возврат;
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Выборка);
ЗаключениеДоговораАренды = Выборка.ДокументЗаключениеДоговораАренды;
Если ЗначениеЗаполнено(ЗаключениеДоговораАренды) Тогда
ЗаголовокНадписи = Новый Массив;
Если НЕ Выборка.УсловияДоговора_Проведен Тогда
ТекстНадписи = СтрШаблон(
НСтр("ru = 'Заключение договора: <a href = ""%1"">оформлено, но не проведено</a>'"),
ПолучитьНавигационнуюСсылку(ЗаключениеДоговораАренды));
ТекстНадписи = ВнеоборотныеАктивыКлиентСервер.ФорматированнаяСтрока(ТекстНадписи);
Иначе
ТекстНадписи = СтрШаблон(
НСтр("ru = 'Заключение договора: <a href = ""%1"">оформлено %2</a>'"),
ПолучитьНавигационнуюСсылку(ЗаключениеДоговораАренды),
Формат(Выборка.УсловияДоговораПервый_Период, "ДЛФ=D"));
ТекстНадписи = ВнеоборотныеАктивыКлиентСервер.ФорматированнаяСтрока(ТекстНадписи);
КонецЕсли;
ЗаголовокНадписи.Добавить(ТекстНадписи);
ЗаголовокНадписи.Добавить(" (");
Если Выборка.УсловияДоговора_СрокЛет + Выборка.УсловияДоговора_СрокМес + Выборка.УсловияДоговора_СрокДней > 0 Тогда
ДатаОкончания = ВнеоборотныеАктивыКлиентСервер.ДатаОкончанияПоСроку(
Выборка.УсловияДоговора_ДатаНачалаАренды,
Выборка.УсловияДоговора_СрокЛет,
Выборка.УсловияДоговора_СрокМес,
Выборка.УсловияДоговора_СрокДней);
ПредставлениеСрокаСтрокой = ВнеоборотныеАктивыКлиентСервер.ПредставлениеСрокаСтрокой(
Выборка.УсловияДоговора_СрокЛет,
Выборка.УсловияДоговора_СрокМес,
Выборка.УсловияДоговора_СрокДней);
ТекстЗаголовка = СтрШаблон(
НСтр("ru = 'срок аренды: с %1 по %2, %3'"),
Формат(Выборка.УсловияДоговора_ДатаНачалаАренды, "ДЛФ=D;"),
Формат(ДатаОкончания, "ДЛФ=D;"),
ПредставлениеСрокаСтрокой);
ЗаголовокНадписи.Добавить(ТекстЗаголовка);
Иначе
ЗаголовокНадписи.Добавить(НСтр("ru = 'срок аренды не указан'"));
КонецЕсли;
ЗаголовокНадписи.Добавить(")");
РезультатИзменениеДоговора = Результаты[Результаты.ВГраница()-2];
Если НЕ РезультатИзменениеДоговора.Пустой() Тогда
ЗаголовокНадписи.Добавить(Символы.ПС);
ЗаголовокНадписи.Добавить(НСтр("ru = 'Условия договора изменены:'"));
ЗаголовокНадписи.Добавить(" ");
ЭтоПервыйДокумент = Истина;
ВыборкаИзменения = РезультатИзменениеДоговора.Выбрать();
Пока ВыборкаИзменения.Следующий() Цикл
Если ЭтоПервыйДокумент Тогда
ЭтоПервыйДокумент = Ложь;
Иначе
ЗаголовокНадписи.Добавить(", ");
КонецЕсли;
ЗаголовокНадписи.Добавить(Новый ФорматированнаяСтрока
(Формат(ВыборкаИзменения.Период, "ДЛФ=D;"),,,, ПолучитьНавигационнуюСсылку(ВыборкаИзменения.Регистратор)));
КонецЦикла;
КонецЕсли;
РезультатПрекращениеДоговора = Результаты[Результаты.ВГраница()-1];
Если НЕ РезультатПрекращениеДоговора.Пустой() Тогда
ЗаголовокНадписи.Добавить(Символы.ПС);
ЗаголовокНадписи.Добавить(НСтр("ru = 'Договор прекращен:'"));
ЗаголовокНадписи.Добавить(" ");
ВыборкаПрекращение = РезультатПрекращениеДоговора.Выбрать();
ВыборкаПрекращение.Следующий();
ЗаголовокНадписи.Добавить(Новый ФорматированнаяСтрока
(Формат(ВыборкаПрекращение.Период, "ДЛФ=D;"),,,, ПолучитьНавигационнуюСсылку(ВыборкаПрекращение.Регистратор)));
КонецЕсли;
Иначе
ТекстСтроки = СтрШаблон(НСтр("ru = 'Заключение договора: <a href = ""%1"">оформить</a>'"), "#Создать");
ЗаголовокНадписи = ВнеоборотныеАктивыКлиентСервер.ФорматированнаяСтрока(ТекстСтроки);
КонецЕсли;
Элементы.ДекорацияУсловияДоговора.Заголовок = Новый ФорматированнаяСтрока(ЗаголовокНадписи);
КонецПроцедуры
&НаКлиенте
Процедура ТекстУсловияДоговораНажатиеЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Если НЕ Записать() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ЗаключениеДоговораАренды) Тогда
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Ключ", ЗаключениеДоговораАренды);
Иначе
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Основание", Объект.Ссылка);
КонецЕсли;
ОткрытьФорму("Документ.ЗаключениеДоговораАренды.ФормаОбъекта", ПараметрыФормы);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьГрафикОплатИНачислений(ИмяГрафика)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ИмяГрафика", ИмяГрафика);
ПараметрыФормы.Вставить("Договор", Объект.Ссылка);
ПараметрыФормы.Вставить("ПолучитьДанные", Истина);
ОткрытьФорму("Справочник.ДоговорыАренды.Форма.ГрафикОплатИНачислений", ПараметрыФормы);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКомандВводаНаОсновании()
Если ПараметрыПодключаемыхКоманд = Неопределено Тогда
Возврат;
КонецЕсли;
АдресНастроек = ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд;
ТаблицаКоманд = ПолучитьИзВременногоХранилища(АдресНастроек);
ТекстЗапроса =
"ВЫБРАТЬ
| УсловияДоговоровАренды.Состояние
|ИЗ
| РегистрСведений.УсловияДоговоровАренды.СрезПоследних(, Договор = &Ссылка) КАК УсловияДоговоровАренды";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
СостояниеДоговора = Перечисления.СостоянияДоговоровКонтрагентов.ПустаяСсылка();
Если Выборка.Следующий() Тогда
СостояниеДоговора = Выборка.Состояние;
КонецЕсли;
ДоговорДействует =
СостояниеДоговора = Перечисления.СостоянияДоговоровКонтрагентов.Действует
И Объект.Статус =Перечисления.СтатусыДоговоровКонтрагентов.Действует;
ДоговорЗакрыт =
(СостояниеДоговора = Перечисления.СостоянияДоговоровКонтрагентов.Закрыт);
Если ПравоДоступа("Добавление", Метаданные.Документы.ЗаключениеДоговораАренды) Тогда
ВнеоборотныеАктивыСлужебный.УстановитьВидимостьКомандыВводаНаОсновании(
Элементы, "ЗаключениеДоговораАренды", ТаблицаКоманд, НЕ ДоговорДействует И НЕ ДоговорЗакрыт);
КонецЕсли;
Если ПравоДоступа("Добавление", Метаданные.Документы.ПринятиеКУчетуОС2_4) Тогда
ВнеоборотныеАктивыСлужебный.УстановитьВидимостьКомандыВводаНаОсновании(
Элементы, "ПринятиеКУчетуОС2_4", ТаблицаКоманд, ДоговорДействует);
КонецЕсли;
Если ПравоДоступа("Добавление", Метаданные.Документы.ИзменениеУсловийДоговораАренды) Тогда
ВнеоборотныеАктивыСлужебный.УстановитьВидимостьКомандыВводаНаОсновании(
Элементы, "ИзменениеУсловийДоговораАренды", ТаблицаКоманд, ДоговорДействует);
КонецЕсли;
Если ПравоДоступа("Добавление", Метаданные.Документы.ВыкупАрендованныхОС) Тогда
ВнеоборотныеАктивыСлужебный.УстановитьВидимостьКомандыВводаНаОсновании(
Элементы, "ВыкупАрендованныхОС", ТаблицаКоманд, ДоговорДействует);
КонецЕсли;
Если ПравоДоступа("Добавление", Метаданные.Документы.ПрекращениеДоговораАренды) Тогда
ВнеоборотныеАктивыСлужебный.УстановитьВидимостьКомандыВводаНаОсновании(
Элементы, "ПрекращениеДоговораАренды", ТаблицаКоманд, ДоговорДействует);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокФормы()
Если Объект.ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоровАренды.Аренда") Тогда
НовыйЗаголовок = НСтр("ru = 'Договор аренды'");
ИначеЕсли Объект.ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоровАренды.Лизинг") Тогда
НовыйЗаголовок = НСтр("ru = 'Договор лизинга'");
Иначе
НовыйЗаголовок = НСтр("ru = 'Договор аренды (лизинга)'");
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
НовыйЗаголовок = СокрЛП(Объект.Наименование) + " (" + НовыйЗаголовок + ")";
Иначе
НовыйЗаголовок = НовыйЗаголовок + " " + НСтр("ru = '(создание)'");
КонецЕсли;
Заголовок = НовыйЗаголовок;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьВидаДоходаИностранногоКонтрагента()
СтранаРегистрацииКонтрагента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "СтранаРегистрации");
Элементы.ВидДоходаИностранногоКонтрагента.Видимость = ЗначениеЗаполнено(СтранаРегистрацииКонтрагента)
И СтранаРегистрацииКонтрагента <> ПредопределенноеЗначение("Справочник.СтраныМира.Россия");
УстановитьВидимостьПояснениеКВидуДохода();
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьПояснениеКВидуДохода()
ВидимостьПояснениеКВидуДохода = (Объект.ВидДоходаИностранногоКонтрагента =
ПредопределенноеЗначение("Перечисление.ВидыДоходовИностранныхОрганизаций.ДоходыУслугиВзаимозависимым")
ИЛИ Объект.ВидДоходаИностранногоКонтрагента =
ПредопределенноеЗначение("Перечисление.ВидыДоходовИностранныхОрганизаций.ДоходПриравненныйДивидендам"))
И ТекущаяДатаСеанса() < Дата(2025,4,1)
И Элементы.ВидДоходаИностранногоКонтрагента.Видимость;
Элементы.ПояснениеКВидуДохода.Видимость = ВидимостьПояснениеКВидуДохода;
КонецПроцедуры
#КонецОбласти
#КонецОбласти