Договоры аренды (лизинга) / Форма элемента / Модуль формы

файл

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

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

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

	УстановитьВидимостьКомандВводаНаОсновании();

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

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

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

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

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

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	// Обработчик подсистемы "Свойства"
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);

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

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

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

	Элементы.СтраницаКомментарий.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Объект.Комментарий);

	УстановитьЗаголовокФормы();
	УстановитьВидимостьКомандВводаНаОсновании();

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

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

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

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

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)

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

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

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

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

#Область СтраницаОсновное

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура УникальныйНомерВалютногоКонтроляПриИзменении(Элемент)

	//++ Локализация
	
	ОчиститьСообщения();
	ДенежныеСредстваКлиентСерверЛокализация.ПроверитьУникальныйНомерВалютногоКонтракта(
		Объект.Ссылка, Объект.УникальныйНомерВалютногоКонтроля);
	
	//-- Локализация 
	
КонецПроцедуры 

&НаКлиенте
Процедура ВидДоходаИностранногоКонтрагентаПриИзменении(Элемент)
	
	//++ Локализация 
	
	ВидимостьПояснениеКВидуДохода = (Объект.ВидДоходаИностранногоКонтрагента = 
		ПредопределенноеЗначение("Перечисление.ВидыДоходовИностранныхОрганизаций.ДоходыУслугиВзаимозависимым")
		ИЛИ Объект.ВидДоходаИностранногоКонтрагента = 
		ПредопределенноеЗначение("Перечисление.ВидыДоходовИностранныхОрганизаций.ДоходПриравненныйДивидендам"))
		И ОбщегоНазначенияКлиент.ДатаСеанса() < Дата(2025,4,1)
		И Элементы.ВидДоходаИностранногоКонтрагента.Видимость;
	
	Элементы.ПояснениеКВидуДохода.Видимость = ВидимостьПояснениеКВидуДохода;
	
	//-- Локализация


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

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

#Область СтраницаРасчеты

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ТребуетсяОформлениеЗаявленийОВвозеПриИзменении(Элемент)

	ЗаполнитьНалогообложениеНаСервере();
	НастроитьЗависимыеЭлементыФормы(Элемент);

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

&НаКлиенте
Процедура НалогообложениеНДСПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы(Элемент);
	
КонецПроцедуры

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

#Область СтраницаУчетнаяИнформация

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ОткрытьГрафикОплат(Команда)
	ОткрытьГрафикОплатИНачислений("ГрафикОплатУслуг");
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьГрафикНачислений(Команда)
	ОткрытьГрафикОплатИНачислений("ГрафикНачисленияУслуг");
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьГрафикНачисленияПроцентов(Команда)
	ОткрытьГрафикОплатИНачислений("ГрафикНачисленияПроцентов");
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
	
	ПараметрыПроцедуры = ОбщегоНазначенияУТКлиент.ПараметрыРазрешенияРедактированияРеквизитовОбъекта();
	ПараметрыПроцедуры.ТолькоВидимые = Ложь;
	
	ОбщегоНазначенияУТКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтотОбъект, ПараметрыПроцедуры);
	
КонецПроцедуры

// ИнтеграцияС1СДокументооборотом
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
	
	ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
	
КонецПроцедуры
// Конец ИнтеграцияС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)
		И Элементы.ВидДоходаИностранногоКонтрагента.Видимость; 
		
	Элементы.ПояснениеКВидуДохода.Видимость = ВидимостьПояснениеКВидуДохода;
	
КонецПроцедуры
//-- Локализация

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

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

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