Поступление услуг по аренде / Форма документа / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем КэшированныеЗначения; //используется механизмом обработки изменения реквизитов ТЧ

&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;

&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;

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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	УстановитьУсловноеОформление();
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

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

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

	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

	#КонецОбласти
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура НадписьВалютыНажатиеЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
	
	Если РезультатЗакрытия = Неопределено Тогда 
		Возврат;
	КонецЕсли;
	
	Если ТипЗнч(РезультатЗакрытия) = Тип("Структура") Тогда
		
		ИзмененныеРеквизиты = РезультатЗакрытия.СтарыеЗначенияИзмененныхРеквизитов;
		Если ИзмененныеРеквизиты.Количество() > 0 Тогда
			НадписьВалютыНажатиеЗавершениеСервер(РезультатЗакрытия);
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

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

&НаКлиенте
Процедура ЗакупкаПодДеятельностьОчистка(Элемент, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
КонецПроцедуры

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

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

	РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

	РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

	РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами


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

#Область ОбработчикиСобытийЭлементовТаблицыФормыНачисления

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ПровестиДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма);
	
КонецПроцедуры

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

#Область ПодключаемыеКоманды

&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
	ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры

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

	РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

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

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

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

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

#Область СлужебныеПроцедурыИФункции

#Область ПриИзмененииРеквизитов

// Параметры:
// 	ИзмененныеРеквизитыИлиЭлемент - ПолеФормы, Строка - 
&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(Знач ИзмененныеРеквизитыИлиЭлемент = "")

	Если ТипЗнч(ИзмененныеРеквизитыИлиЭлемент) = Тип("Строка") Тогда
		ИзмененныеРеквизиты = ИзмененныеРеквизитыИлиЭлемент;
	Иначе
		ИзмененныеРеквизиты = ИзмененныеРеквизитыИлиЭлемент.Имя;
	КонецЕсли;

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

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(Форма, ИзмененныеРеквизиты)
	
	СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
	ОбновитьВсе = СтруктураИзмененныхРеквизитов.Количество() = 0;

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

&НаКлиенте
Функция ТребуетсяВызовСервераДляНастройкиЭлементовФормы(СтруктураИзмененныхРеквизитов)

	Возврат СтруктураИзмененныхРеквизитов.Количество() = 0
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Дата")
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Организация")
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("Договор");

КонецФункции

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

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

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

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

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

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

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

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

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

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

#Область РаботаСКонтрагентами

// ИнтернетПоддержкаПользователей.РаботаСКонтрагентами

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

&НаКлиенте
Процедура Подключаемый_ОбработатьРезультатПроверкиКонтрагентов()
	ПроверкаКонтрагентовКлиент.ОбработатьРезультатПроверкиКонтрагентовВДокументе(ЭтотОбъект);
КонецПроцедуры

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

&НаСервере
Процедура ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания) Экспорт	
	ПроверкаКонтрагентов.ПроверитьКонтрагентовВДокументеФоновоеЗадание(ЭтотОбъект, ПараметрыФоновогоЗадания);
КонецПроцедуры

// Конец ИнтернетПоддержкаПользователей.РаботаСКонтрагентами

&НаКлиенте
Процедура ПроверитьКонтрагентов(Команда)
	
	// ИнтернетПоддержкаПользователей.РаботаСКонтрагентами
	ПроверкаКонтрагентовКлиент.ПроверитьКонтрагентовВДокументеПоКнопке(ЭтотОбъект);
	// Конец ИнтернетПоддержкаПользователей.РаботаСКонтрагентами
	
	Возврат; // в WE пустой обработчик

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

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

#Область Заполнение

&НаКлиенте
Процедура ЗаполнитьНачисленияЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	Если НЕ ПроверитьЗаполнениеПолейОтбора() Тогда
		Возврат;
	КонецЕсли;
			
	ЗаполнитьНачисленияНаСервере();
	
	Если Не Объект.Начисления.Количество() Тогда
		Текст = СтрШаблон(НСтр("ru = 'По договору ""%1"" отсутствует график начислений на %2'"),
			Объект.Договор,
			Формат(Объект.Дата, "ДЛФ=D;"));
		ОбщегоНазначенияКлиент.СообщитьПользователю(Текст);
	КонецЕсли;
	
КонецПроцедуры

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

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

			НоваяСтрока.СуммаСНДС = Выборка.УслугаПоАренде;
			НоваяСтрока.СуммаНДС = Выборка.УслугаПоАрендеНДС;
			
			Если Объект.ЦенаВключаетНДС Тогда
				НоваяСтрока.Сумма = Выборка.УслугаПоАренде;
			Иначе
				НоваяСтрока.Сумма = Выборка.УслугаПоАренде - Выборка.УслугаПоАрендеНДС;
			КонецЕсли;
			
		КонецЕсли;
		
		Если Выборка.ЗачетОбеспечительногоПлатежа <> 0 Тогда
			
			СуммаОбеспечительногоПлатежаКЗакрытию = Выборка.ЗачетОбеспечительногоПлатежа;
			
			НДСПоВсемПлатежам = 0;
			
			
			Для Каждого ОбеспечительныйПлатеж Из ТаблицаОбеспечительныхПлатежей Цикл
				
				Если СуммаОбеспечительногоПлатежаКЗакрытию = 0 Тогда
					Прервать;
				КонецЕсли;
				
				Если ОбеспечительныйПлатеж.СуммаВалютеДоговора = 0 Тогда
					Продолжить;
				КонецЕсли;
				
				Если ОбеспечительныйПлатеж.СуммаВалютеДоговора >= СуммаОбеспечительногоПлатежаКЗакрытию Тогда
					ОбеспечительныйПлатеж.СуммаВалютеДоговора = ОбеспечительныйПлатеж.СуммаВалютеДоговора
																- СуммаОбеспечительногоПлатежаКЗакрытию;
					СуммаВДокумент = СуммаОбеспечительногоПлатежаКЗакрытию;
					СуммаОбеспечительногоПлатежаКЗакрытию = 0;
				Иначе
					СуммаВДокумент = ОбеспечительныйПлатеж.СуммаВалютеДоговора;
					СуммаОбеспечительногоПлатежаКЗакрытию = СуммаОбеспечительногоПлатежаКЗакрытию - СуммаВДокумент;
					ОбеспечительныйПлатеж.СуммаВалютеДоговора = 0;
				КонецЕсли;

				НоваяСтрока = Объект.Начисления.Добавить();
				НоваяСтрока.ТипНачисления = Перечисления.ТипыПлатежейПоАренде.ОбеспечительныйПлатеж;
				НоваяСтрока.СтавкаНДС = Выборка.СтавкаНДС;
				НоваяСтрока.НаправлениеДеятельности = НаправлениеДеятельности;

				Если Элементы.НачисленияСтатьяРасходов.Видимость Тогда
					НоваяСтрока.СтатьяРасходов = Выборка.СтатьяРасходов;
					НоваяСтрока.АналитикаРасходов = Выборка.АналитикаРасходов;
					НоваяСтрока.Подразделение = Выборка.Подразделение;
				КонецЕсли;
				
				// НДС по сумме в документ считаем как долю.
				НДСВДокумент = Окр(Выборка.ЗачетОбеспечительногоПлатежаНДС * СуммаВДокумент/Выборка.ЗачетОбеспечительногоПлатежа,2);
				НДСПоВсемПлатежам = НДСПоВсемПлатежам + НДСВДокумент;

				НоваяСтрока.СуммаСНДС = СуммаВДокумент;
				НоваяСтрока.СуммаНДС =  НДСВДокумент;

				Если Объект.ЦенаВключаетНДС Тогда
					НоваяСтрока.Сумма = СуммаВДокумент;
				Иначе
					НоваяСтрока.Сумма = СуммаВДокумент - НДСВДокумент;
				КонецЕсли;
				
				НоваяСтрока.РасчетныйДокумент = ОбеспечительныйПлатеж.РасчетныйДокумент;
	
			КонецЦикла;
			
			// При полном закрытии, погрешность НДС отнесем на последнюю строку обеспечительных платежей.
			Если СуммаОбеспечительногоПлатежаКЗакрытию = 0 Тогда
				
				ПогрешностьНДС = Выборка.ЗачетОбеспечительногоПлатежаНДС - НДСПоВсемПлатежам;
				НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаНДС + ПогрешностьНДС;
				
				Если Не Объект.ЦенаВключаетНДС Тогда
					НоваяСтрока.Сумма = НоваяСтрока.Сумма - ПогрешностьНДС;
				КонецЕсли;
				
			КонецЕсли;
			
			
		КонецЕсли;
		
	КонецЦикла;
	
	ДоходыИРасходыСервер.ОбновитьСлужебныеРеквизиты(ЭтотОбъект);
	
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");

	Если Объект.НалогообложениеНДС <> Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС Тогда
		СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект));
	КонецЕсли;
	
	КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
	ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.Начисления, СтруктураДействий, КэшированныеЗначения);
	
КонецПроцедуры

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

#Область Прочее

&НаСервере
Процедура УстановитьУсловноеОформление()

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

&НаКлиентеНаСервереБезКонтекста
Функция ПоляПересчетаСуммыНДСВСтрокеТЧ(Форма)
	
	СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Форма.Объект);
	
	Возврат СтруктураПересчетаСуммы;
	
КонецФункции

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
	
	ИнициализироватьСлужебныеПараметрыФормы();

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

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

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

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

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

&НаСервере
Процедура ПриИзмененииВалютыСервер(СтараяВалюта, НоваяВалюта)
	
	ДатаДокумента               = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
	БазоваяВалюта = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
	СтруктураКурсовСтаройВалюты = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(СтараяВалюта, ДатаДокумента, БазоваяВалюта);
	СтруктураКурсовНовойВалюты  = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(НоваяВалюта,  ДатаДокумента, БазоваяВалюта);
	
	СуммаКРаспределению = РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
		Объект.Начисления.Итог("СуммаСНДС"),
		СтруктураКурсовСтаройВалюты,
		СтруктураКурсовНовойВалюты);
	
	МассивСумм = Новый Массив;
	Для Каждого ТекСтрока Из Объект.Начисления Цикл
		
		МассивСумм.Добавить(
			РаботаСКурсамиВалютУТ.ПересчитатьПоКурсу(
				ТекСтрока.СуммаСНДС,
				СтруктураКурсовСтаройВалюты,
				СтруктураКурсовНовойВалюты));
	КонецЦикла;
	
	МассивСумм = ОбщегоНазначения.РаспределитьСуммуПропорциональноКоэффициентам(СуммаКРаспределению, МассивСумм);
	
	Если МассивСумм <> Неопределено Тогда
		
		Для н = 0 По Объект.Начисления.Количество()-1 Цикл
			
			ТекСтрока = Объект.Начисления[н];
			ТекСтрока.СуммаСНДС = МассивСумм[н];
			
			СтавкаНДСЧислом = УчетНДСУПКлиентСервер.ЗначениеСтавкиНДС(ТекСтрока.СтавкаНДС);
			
			Если ЗначениеЗаполнено(ТекСтрока.СуммаСНДС) Тогда
				ТекСтрока.СуммаНДС = Окр(ТекСтрока.СуммаСНДС * (СтавкаНДСЧислом/(100+СтавкаНДСЧислом)), 2);
				ТекСтрока.Сумма = ТекСтрока.СуммаСНДС - ?(Объект.ЦенаВключаетНДС, 0, ТекСтрока.СуммаНДС);
			КонецЕсли;
			
			ТекСтрока.СуммаВзаиморасчетов = 0;
			
		КонецЦикла;
		
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаСервере
Процедура ИнициализироватьСлужебныеПараметрыФормы()

	НовыеСлужебныеПараметрыФормы = Новый Структура;
	НовыеСлужебныеПараметрыФормы.Вставить("РеквизитыДоговора");

	ЗначениеПараметра = ВнеоборотныеАктивы.ИспользуетсяУправлениеВНА_2_4(Объект.Дата);
	НовыеСлужебныеПараметрыФормы.Вставить("ИспользуетсяУправлениеВНА_2_4", ЗначениеПараметра);

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

	СлужебныеПараметрыФормы = Новый ФиксированнаяСтруктура(НовыеСлужебныеПараметрыФормы);

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

&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьЗаголовкиКолонокСумм(Элементы, Валюта, ВалютаВзаиморасчетов)
	
	Если ЗначениеЗаполнено(Валюта) Тогда
		Элементы.НачисленияСумма.Заголовок = СтрШаблон(НСтр("ru='Сумма (%1)'"), Валюта);
	Иначе
		Элементы.НачисленияСумма.Заголовок = НСтр("ru='Сумма'");
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ВалютаВзаиморасчетов) Тогда
		Элементы.НачисленияСуммаВзаиморасчетов.Заголовок = СтрШаблон(НСтр("ru='Сумма взаиморасчетов (%1)'"), ВалютаВзаиморасчетов);
	Иначе
		Элементы.НачисленияСуммаВзаиморасчетов.Заголовок = НСтр("ru='Сумма взаиморасчетов'");
	КонецЕсли;
КонецПроцедуры

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

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

// СтандартныеПодсистемы.Свойства

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

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

// Конец СтандартныеПодсистемы.Свойства

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

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

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