Заключение договора аренды / Модуль объекта

файл

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);

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

Процедура ПриКопировании(ОбъектКопирования)
	
	ДатаВходящегоДокумента = '000101010000';
	НомерВходящегоДокумента	= "";
	Комментарий = "";
	ВерсияДокумента24 = Ложь;
	
	ОбщегоНазначенияУТ.ОчиститьИдентификаторыДокумента(ЭтотОбъект, "ОС");

	ИнициализироватьДокумент();
	
КонецПроцедуры

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

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

Процедура ПриЗаписи(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	ПроведениеДокументов.ПриЗаписиДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

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

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

Процедура ОбработкаУдаленияПроведения(Отказ)
	
	ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

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

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

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

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

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

	Организация = РеквизитыДоговора.Организация;
	Партнер = РеквизитыДоговора.Партнер;
	Контрагент = РеквизитыДоговора.Контрагент;
	Договор = ДанныеЗаполнения;
	ВалютаВзаиморасчетов = РеквизитыДоговора.ВалютаВзаиморасчетов;
	Валюта = РеквизитыДоговора.ВалютаВзаиморасчетов;
	
	ПериодичностьОплат = Перечисления.ПериодичностьГрафика.Месяц;
	ПериодичностьНачислений = Перечисления.ПериодичностьГрафика.Месяц;
	НалогообложениеНДС = РеквизитыДоговора.НалогообложениеНДС;
	
КонецПроцедуры

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

#Область ПроверкаЗаполнения

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

//++ Локализация
Процедура ПроверитьОстаточнуюСтоимость(Отказ, ПроверяемыеРеквизиты)
	
	СозданДляПерехода = УчетАрендованныхОС.СозданДляПереходаНаФСБУ25_2018(Дата, Организация);
	
	Если СозданДляПерехода Тогда
		
		Для Каждого СтрокаОС из ОС Цикл
			Если НЕ ЗначениеЗаполнено(СтрокаОС.ОстаточнаяСтоимость) Тогда
		
			ТекстОшибки =  НСтр("ru ='Для перехода на ФСБУ 25/2018 необходимо указать остаточную стоимость предметов аренды в строке %1.'");
			
			ОбщегоНазначения.СообщитьПользователю(СтрШаблон(ТекстОшибки,СтрокаОС.НомерСтроки),
												   ЭтотОбъект,
												   ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("ОС", 
																									  СтрокаОС.НомерСтроки, 
																									  "ОстаточнаяСтоимость"), , 
												   Отказ);
			Возврат;

			КонецЕсли;
		КонецЦикла;
		
	КонецЕсли;
	
КонецПроцедуры
//-- Локализация

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

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

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

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

Процедура ПроверитьДатуЗаключенияДоговора(Отказ)
	
	// Документы, созданные концом года, используются для перехода на ФСБУ 25 и должны попасть в межотчетный период.
	Если Не НастройкиНалоговУчетныхПолитикЛокализация.ПрименяетсяФСБУ25(Организация, Дата) 
		 И НастройкиНалоговУчетныхПолитикЛокализация.ПрименяетсяФСБУ25(Организация, Дата + 1) Тогда
		Возврат;
	КонецЕсли;
	
	// В остальных случаях дата заключения договора должна быть раньше даты принятия к учету.
	
	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	МАКСИМУМ(ВЫРАЗИТЬ(ПервоначальныеСведенияОС.Регистратор КАК Документ.ПринятиеКУчетуОС2_4).Дата) КАК Дата
	|ИЗ
	|	РегистрСведений.ПервоначальныеСведенияОС КАК ПервоначальныеСведенияОС
	|ГДЕ
	|	ПервоначальныеСведенияОС.ОсновноеСредство В(&СписокОС)
	|	И ПервоначальныеСведенияОС.Организация = &Организация
	|	И ПервоначальныеСведенияОС.Регистратор ССЫЛКА Документ.ПринятиеКУчетуОС2_4
	|	И ПервоначальныеСведенияОС.ДатаИсправления = ДАТАВРЕМЯ(1,1,1)
	|	И ПервоначальныеСведенияОС.Активность
	|
	|ИМЕЮЩИЕ
	|	МАКСИМУМ(ВЫРАЗИТЬ(ПервоначальныеСведенияОС.Регистратор КАК Документ.ПринятиеКУчетуОС2_4).Дата) < &Дата";
	
	Запрос = Новый Запрос(ТекстЗапроса);
	Запрос.УстановитьПараметр("Организация", Организация);
	Запрос.УстановитьПараметр("Дата", Дата);
	Запрос.УстановитьПараметр("СписокОС", ОС.ВыгрузитьКолонку("ОсновноеСредство"));
	
	Результат = Запрос.Выполнить();
	
	Если НЕ Результат.Пустой() Тогда
		Выборка = Результат.Выбрать();
		Выборка.Следующий();
		ТекстСообщения = НСтр("ru = 'Дата заключения договора (%1) должна быть раньше даты принятия к учету (%2)'");
		ТекстСообщения = СтрШаблон(ТекстСообщения, Дата, Выборка.Дата);
		ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "Дата",, Отказ);
	КонецЕсли;
	
КонецПроцедуры

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

Процедура ЗаполнитьРеквизитыПередЗаписью(РежимЗаписи)

	ВспомогательныеРеквизиты = ВспомогательныеРеквизиты();

	ОчиститьНеиспользуемыеРеквизиты(ВспомогательныеРеквизиты);

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

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

	ИспользоватьУчетНДС = ПолучитьФункциональнуюОпцию("ИспользоватьУчетНДС");

	Если Не УчетЗаБалансом Тогда
		
		Если РеквизитыДоговора.НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПустаяСсылка") Тогда

			Если Не ИспользоватьУчетНДС Тогда
				НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС");
			Иначе
				
				Если СтавкаНДС <> ПредопределенноеЗначение("Справочник.СтавкиНДС.БезНДС") Тогда
					НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС");
				Иначе
					НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС");
				КонецЕсли;
				
			КонецЕсли;

		Иначе

			НалогообложениеНДС = РеквизитыДоговора.НалогообложениеНДС;

		КонецЕсли;

	КонецЕсли;

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

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

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

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

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

Функция ВспомогательныеРеквизиты()

	ВспомогательныеРеквизиты = Новый Структура;
	ВспомогательныеРеквизиты.Вставить("ИспользуетсяУправлениеВНА_2_4", ВнеоборотныеАктивы.ИспользуетсяУправлениеВНА_2_4(Дата));
	ВспомогательныеРеквизиты.Вставить("ИспользуетсяУчетАрендыПоФСБУ25_2018", УчетАрендованныхОС.ИспользуетсяУчетАрендыПоФСБУ25_2018(Организация, Дата, Истина));
	ВспомогательныеРеквизиты.Вставить("НачалоУчетаАрендыПоФСБУ25_2018", УчетАрендованныхОС.НачалоУчетаАрендыПоФСБУ25_2018(Организация));
	ВспомогательныеРеквизиты.Вставить("НезначащаяСтавкаНДС", УчетНДСУП.НезначащаяСтавка(СтавкаНДС));
	ВспомогательныеРеквизиты.Вставить("ВерсияДокумента24", ВерсияДокумента24);
	ВспомогательныеРеквизиты.Вставить("ОтражатьВОперативномУчете", Истина);
	ВспомогательныеРеквизиты.Вставить("ИмяТабличнойЧастиОС", "ОС");
	
	ПараметрыУчетнойПолитики = НастройкиНалоговУчетныхПолитик.ДействующиеПараметрыНалоговУчетныхПолитикНаДату(
						"НастройкиУчетаНДС", Организация, ?(Дата <> '000101010000', КонецМесяца(Дата), '000101010000'));
	
	ВспомогательныеРеквизиты.Вставить("РаздельныйУчетВНАПоНалогообложениюНДС", ПараметрыУчетнойПолитики <> Неопределено И ПараметрыУчетнойПолитики.РаздельныйУчетВНАПоНалогообложениюНДС);
	
	ВспомогательныеРеквизиты.Вставить("РеквизитыДоговора", УчетАрендованныхОС.РеквизитыДоговораАренды(Договор));

	Возврат ВспомогательныеРеквизиты;
	
КонецФункции

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

			// Сумма кап. вложений без НДС по данным бухгалтерского учета в валюте договора.
			ДанныеСтроки.СуммаБУ = ДанныеСтроки.Стоимость;
			
		ИначеЕсли РеквизитыДоговора.Балансодержатель = Перечисления.БалансодержательПредметовАренды.Арендодатель Тогда

			ДанныеСтроки.СуммаБУ = ДанныеСтроки.Стоимость;
			
		Иначе
			
			// Сумма кап. вложений без НДС по данным бухгалтерского учета в валюте договора.
			Если РезультатРаспределенияСуммаБезНДС <> Неопределено Тогда
				ДанныеСтроки.СуммаБУ = РезультатРаспределенияСуммаБезНДС[ДанныеСтроки.НомерСтроки - 1];
			КонецЕсли;
				
		КонецЕсли;
		
		ДанныеСтроки.СтавкаНДС = СтавкаНДС;
		
		Если РезультатРаспределенияНДС <> Неопределено Тогда
			ДанныеСтроки.СуммаНДС = РезультатРаспределенияНДС[ДанныеСтроки.НомерСтроки - 1];
		КонецЕсли;
		
	КонецЦикла;
	
	ЗаключениеДоговораАрендыЛокализация.ЗаполнитьРеквизитыТабличнойЧастиПередЗаписью(ЭтотОбъект, ВспомогательныеРеквизиты);
	
КонецПроцедуры

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

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

#КонецЕсли

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