Заключение договора аренды / Модуль менеджера

файл

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

#Область ПрограммныйИнтерфейс

#Область Проведение

// Описывает учетные механизмы используемые в документе для регистрации в механизме проведения.
//
// Параметры:
//  МеханизмыДокумента - Массив - список имен учетных механизмов, для которых будет выполнена
//              регистрация в механизме проведения.
//
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
	
	МеханизмыДокумента.Добавить("ОсновныеСредства");
	МеханизмыДокумента.Добавить("РеестрДокументов");
	МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
	МеханизмыДокумента.Добавить("УчетДоходовРасходов");
	МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
	МеханизмыДокумента.Добавить("ФинансовыеИнструменты");
	МеханизмыДокумента.Добавить("УчетИмпорта");
	
	ЗаключениеДоговораАрендыЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
	
КонецПроцедуры

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

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

#Область УчетНДС

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

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

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

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

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

#Область Команды

// Определяет список команд создания на основании.
//
// Параметры:
//  КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании
//  Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры
//
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
	
	Документы.ПринятиеКУчетуОС2_4.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании, 2);
	
	ЗаключениеДоговораАрендыЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
	
КонецПроцедуры

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

// Определяет список команд отчетов.
//
// Параметры:
//   КомандыОтчетов - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
//   Параметры - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры
//
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
		
КонецПроцедуры

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

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

// Определяет стоимость предметов аренды в налоговом учете
//
// Параметры:
//  СписокОС	 - Массив - ОС, для которых требуется получить стоимость.
//  Организация	 - СправочникСсылка.Организации	 - Организация в которой ОС принимаются к учету.
//  Дата		 - Дата	- Дата принятия к учету.
//
// Возвращаемое значение:
//  Соответствие из КлючИЗначение - содержит:
//  	* Ключ - СправочникСсылка.ОбъектыЭксплуатации - ОС
//  	* Значение - Число - Стоимость.
//
Функция СтоимостьПредметовАренды(СписокОС, Организация, Дата) Экспорт

	СтоимостьОС = Новый Соответствие;
	Для каждого ОсновноеСредство Из СписокОС Цикл
		СтоимостьОС.Вставить(ОсновноеСредство, 0);
	КонецЦикла;
	
	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	АрендованныеОС.ОсновноеСредство КАК ОсновноеСредство,
	|	ВЫРАЗИТЬ(АрендованныеОС.Договор КАК Справочник.ДоговорыАренды).ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
	|	Организации.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
	|	АрендованныеОС.Стоимость КАК Стоимость
	|ИЗ
	|	РегистрСведений.АрендованныеОС.СрезПоследних(
	|			&Дата, 
	|			ОсновноеСредство В(&СписокОС)
	|			И Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОС.ЗаключенДоговорАренды)) КАК АрендованныеОС
	|
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
	|		ПО Организации.Ссылка = &Организация";
	
	Запрос = Новый Запрос(ТекстЗапроса);
	Запрос.УстановитьПараметр("СписокОС", СписокОС);
	Запрос.УстановитьПараметр("Организация", Организация);
	Запрос.УстановитьПараметр("Дата", КонецДня(?(Дата <> '000101010000', Дата, ТекущаяДатаСеанса())));
	
	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();
	
	Пока Выборка.Следующий() Цикл
		
		Коэффициент = РаботаСКурсамивалютУТ.ПолучитьКоэффициентПересчетаИзВалютыВВалюту(
			Выборка.ВалютаВзаиморасчетов, Выборка.ВалютаРегламентированногоУчета, ?(Дата <> '000101010000', Дата, ТекущаяДатаСеанса()));
			
		СтоимостьОС.Вставить(Выборка.ОсновноеСредство, Выборка.Стоимость * Коэффициент);
		
	КонецЦикла;

	Возврат СтоимостьОС;
	
КонецФункции

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

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

// Возвращает массив допустимых наименований входящих документов.
// 
// Возвращаемое значение:
// 	Массив - массив наименований.
Функция НаименованияВходящихДокументов() Экспорт
	МассивНаименований = Новый Массив();
	МассивНаименований.Добавить(НСтр("ru='Договор аренды'"));
	МассивНаименований.Добавить(НСтр("ru='Договор лизинга'"));
	Возврат МассивНаименований
КонецФункции

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

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

// СтандартныеПодсистемы.УправлениеДоступом

// Параметры:
//   Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Организация)";

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

// Конец СтандартныеПодсистемы.УправлениеДоступом

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

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

#КонецЕсли

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

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

Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	Поля.Очистить();
	Поля.Добавить("НаименованиеВходящегоДокумента");
	Поля.Добавить("НомерВходящегоДокумента");
	Поля.Добавить("ДатаВходящегоДокумента");
	Поля.Добавить("Дата");
	Поля.Добавить("Номер");
	
КонецПроцедуры

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

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

#Область Проведение

Процедура ИнициализироватьКлючиАналитикиУчетаПоПартнерам(Запрос)
	
	Если Запрос.Параметры.Свойство("КлючиАналитикиУчетаПоПартнерамИнициализированы") Тогда
		Возврат;
	КонецЕсли;
	
	ТекстЗапроса = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ДанныеДокумента.Организация                    КАК Организация,
	|	ДанныеДокумента.Партнер                        КАК Партнер,
	|	ДанныеДокумента.Контрагент                     КАК Контрагент,
	|	ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) КАК Договор,
	|	ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности
	|ИЗ
	|	Документ.ЗаключениеДоговораАренды КАК ДанныеДокумента
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
	|		ПО ДанныеДокумента.Организация = РегистрАналитикаУчетаПоПартнерам.Организация
	|			И ДанныеДокумента.Партнер = РегистрАналитикаУчетаПоПартнерам.Партнер
	|			И ДанныеДокумента.Контрагент = РегистрАналитикаУчетаПоПартнерам.Контрагент
	|			И ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) = РегистрАналитикаУчетаПоПартнерам.Договор
	|			И ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) = РегистрАналитикаУчетаПоПартнерам.НаправлениеДеятельности
	|ГДЕ
	|	ДанныеДокумента.Ссылка = &Ссылка
	|	И РегистрАналитикаУчетаПоПартнерам.КлючАналитики ЕСТЬ NULL";
	
	ЗапросАналитик = Новый Запрос(ТекстЗапроса);
	ЗапросАналитик.УстановитьПараметр("Ссылка", Запрос.Параметры.Ссылка);
	РезультатЗапроса = ЗапросАналитик.Выполнить();
	Выборка = РезультатЗапроса.Выбрать();
	Пока Выборка.Следующий() Цикл
		РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьКлючАналитики(Выборка);
	КонецЦикла;
	
	Запрос.УстановитьПараметр("КлючиАналитикиУчетаПоПартнерамИнициализированы", Истина);
	
КонецПроцедуры

Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
	
	ИсточникиДанных = Новый Соответствие;
	Возврат ИсточникиДанных;
	
КонецФункции

Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт

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

	Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
	Результат.ЗначенияПараметров = ЗначенияПараметров;
	Результат.ТекстЗапроса = ТекстЗапроса;
	
	Возврат Результат;
	
КонецФункции

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

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

Процедура СформироватьВтКурсы(ТекстыЗапроса) Экспорт
	
	ИмяТаблицы = "ВтКурсы";
	
	ТекстЗапроса =
	"ВЫБРАТЬ
	|	Курсы.ДатаКурса КАК ДатаКурса,
	|	Курсы.Валюта КАК Валюта,
	|	Курсы.КурсРегл КАК КурсРегл,
	|	Курсы.КурсУпр КАК КурсУпр,
	|	Курсы.КоэффициентПереоценкиРегл КАК КоэффициентПереоценкиРегл,
	|	Курсы.КоэффициентПереоценкиУпр КАК КоэффициентПереоценкиУпр,
	|	Курсы.КурсНаДатуДокумента КАК КурсНаДатуДокумента
	|ПОМЕСТИТЬ ВтКурсы
	|ИЗ
	|	&КурсыНаДатуДокумента КАК Курсы
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	ДатаКурса,
	|	Валюта,
	|	КурсНаДатуДокумента";
	
	ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяТаблицы);
	
КонецПроцедуры

Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка, ДопПараметры)
	
	ПроведениеДокументов.ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка, ДопПараметры);
	
	ПолучитьДанныеДокумента(Запрос);

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

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

Функция ЗначенияПараметровПроведения(Реквизиты = Неопределено)
	
	ЗначенияПараметровПроведения = Новый Структура;
	УчетАрендованныхОС.ДополнитьЗначенияПараметровПроведенияДокументаАренды(ЗначенияПараметровПроведения);

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

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

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

// Получить коэффициенты пересчета валюты.
// С учетом обеспечительных платежей по курсу оплаты.
// 
// Параметры:
//  Реквизиты - Неопределено, ВыборкаИзРезультатаЗапроса - Реквизиты
// 
// Возвращаемое значение:
//  Структура - Получить коэффициенты пересчета валюты:
// * КоэффициентПересчетаВВалютуУпр - Число -
// * КоэффициентПересчетаВВалютуРегл - Число -
// * Курсы - ТаблицаЗначений -
Функция ПолучитьКоэффициентыПересчетаВалюты(Реквизиты)
	
	// Заключение договора аренды создан в валюте взаиморасчетов по договору.
	//
	// Считаем все произведенные ранее обеспечительные платежи в валютах взаиморасчетов,регл и упр по курсу на дату оплаты.
	// Считаем разницу ОС.СуммаБУ - Обеспечительные платежи в валюте взаиморасчетов.
	// Разницу считаем по курсу валюты регл учета и упр учета на дату документа.
	// Считаем коэффициенты пересчета из валюты взаиморасчетов (документа заключения договора аренды) в валюты регл и упр, с учетом авансов.
	
	КоэффициентыПересчета = Новый Структура("КоэффициентПересчетаВВалютуУпр,
											|КоэффициентПересчетаВВалютуРегл,
											|Курсы",
											1,
											1,
											Неопределено);
	
	Запрос = Новый Запрос();
	
	ТекстЗапроса = "ВЫБРАТЬ
	|	ВЫБОР КОГДА РасчетыПоФинансовымИнструментамОстатки.РасчетныйДокумент ССЫЛКА Документ.СписаниеБезналичныхДенежныхСредств ТОГДА
	|		НАЧАЛОПЕРИОДА(ВЫРАЗИТЬ(РасчетыПоФинансовымИнструментамОстатки.РасчетныйДокумент КАК Документ.СписаниеБезналичныхДенежныхСредств).Дата, ДЕНЬ)
	|	КОГДА РасчетыПоФинансовымИнструментамОстатки.РасчетныйДокумент ССЫЛКА Документ.РасходныйКассовыйОрдер ТОГДА
	|		НАЧАЛОПЕРИОДА(ВЫРАЗИТЬ(РасчетыПоФинансовымИнструментамОстатки.РасчетныйДокумент КАК Документ.РасходныйКассовыйОрдер).Дата, ДЕНЬ)
	|	КОГДА РасчетыПоФинансовымИнструментамОстатки.РасчетныйДокумент ССЫЛКА Документ.ПервичныйДокумент ТОГДА
	|		НАЧАЛОПЕРИОДА(ВЫРАЗИТЬ(РасчетыПоФинансовымИнструментамОстатки.РасчетныйДокумент КАК Документ.ПервичныйДокумент).Дата, ДЕНЬ)
	|	ИНАЧЕ
	|		&ДатаПервогоОбеспечительногоПлатежа
	|	КОНЕЦ КАК ДатаОплаты,
	|	РасчетыПоФинансовымИнструментамОстатки.Валюта КАК ВалютаПлатежа
	|ИЗ
	|	РегистрНакопления.РасчетыПоФинансовымИнструментам.Остатки(&ГраницаДокумента, Договор = &Договор
	|	И ТипСуммы = ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.ОбеспечительныйПлатеж)) КАК
	|		РасчетыПоФинансовымИнструментамОстатки
	|ГДЕ
	|	РасчетыПоФинансовымИнструментамОстатки.СуммаОстаток > 0
	|	ИЛИ РасчетыПоФинансовымИнструментамОстатки.СуммаУпрОстаток > 0
	|	ИЛИ РасчетыПоФинансовымИнструментамОстатки.СуммаРеглОстаток > 0";
	
	Запрос.Текст = ТекстЗапроса;
	
	Запрос.УстановитьПараметр("Договор", Реквизиты.Договор);
	Запрос.УстановитьПараметр("ВалютаУправленческогоУчета", Константы.ВалютаУправленческогоУчета.Получить());
	Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Реквизиты.ВалютаРегламентированногоУчета);
	Запрос.УстановитьПараметр("ВалютаЗаключенияАренды", Реквизиты.Валюта);
	Запрос.УстановитьПараметр("Ссылка", Реквизиты.Ссылка);
	Запрос.УстановитьПараметр("ДатаПервогоОбеспечительногоПлатежа", Реквизиты.ДатаПервогоОбеспечительногоПлатежа);
	
	Запрос.УстановитьПараметр("ГраницаДокумента", 
								Новый Граница(Новый МоментВремени(Реквизиты.Период, Реквизиты.Ссылка), 
											 ВидГраницы.Исключая));
	
	ВалютыИДатыПлатежей = Запрос.Выполнить().Выгрузить();
	// Добавим данные документа, на случай, если нет оплат.
	СтрокаЗаключенияДоговораАренды = ВалютыИДатыПлатежей.Добавить();
	СтрокаЗаключенияДоговораАренды.ДатаОплаты = НачалоДня(Реквизиты.Период); 
	СтрокаЗаключенияДоговораАренды.ВалютаПлатежа = Реквизиты.Валюта;
	
	Валюты = ВалютыИДатыПлатежей.ВыгрузитьКолонку("ВалютаПлатежа");
	Валюты.Добавить(Реквизиты.ВалютаВзаиморасчетов);
	Валюты.Добавить(Реквизиты.ВалютаРегламентированногоУчета);
	Валюты.Добавить(Константы.ВалютаУправленческогоУчета.Получить());
	
	Запрос.УстановитьПараметр("СписокВалют", Валюты);
	
	ТекстКурсовВалют = "
	|ВЫБРАТЬ
	|	&ДатаКурса                            КАК ДатаКурса,
	|	КурсыВалютСрезПоследних.Валюта        КАК Валюта,
	|	КурсыВалютСрезПоследних.КурсЧислитель КАК КурсЧислитель,
	|	КурсыВалютСрезПоследних.КурсЗнаменатель КАК КурсЗнаменатель
	|ИЗ
	|	РегистрСведений.ОтносительныеКурсыВалют.СрезПоследних(&ДатаКурса, 
	|														   БазоваяВалюта = &ВалютаРегламентированногоУчета
	|														   И Валюта В (&СписокВалют)
	|														  ) КАК КурсыВалютСрезПоследних";
	
	ТекстЗапроса = "";
	
	// Курсы на даты документов.
	КурсыНаДаты = Новый Массив;
	Счетчик = ВалютыИДатыПлатежей.Количество();
	
	КурсыНаДаты.Добавить("(");
	Для Каждого СтрокаПлатежей из ВалютыИДатыПлатежей Цикл
		ТекстЗапроса = СтрЗаменить(ТекстКурсовВалют,"&ДатаКурса", Формат(СтрокаПлатежей.ДатаОплаты,"ДФ='""ДАТАВРЕМЯ(""yyyy,MM,dd"")""';"));
		КурсыНаДаты.Добавить(ТекстЗапроса);
		Счетчик = Счетчик -1;
		
		Если Счетчик > 0 Тогда
			КурсыНаДаты.Добавить("ОБЪЕДИНИТЬ ВСЕ");
		КонецЕсли;	
	КонецЦикла;
	КурсыНаДаты.Добавить(")");
	
	ТекстПодзапросаКурсов = СтрСоединить(КурсыНаДаты,Символы.ПС);
	
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	КурсыВалют.ДатаКурса                  КАК ДатаКурса,
	|	КурсыВалют.Валюта                     КАК Валюта,
	|	КурсыВалют.КурсЧислитель              КАК КурсЧислитель,
	|	КурсыВалют.КурсЗнаменатель            КАК КурсЗнаменатель,
	|	КурсыВалют.ДатаКурса = &ДатаДокумента КАК КурсНаДатуДокумента
	|ПОМЕСТИТЬ Курсы
	|ИЗ
	|	&Подзапрос КАК КурсыВалют
	|ИНДЕКСИРОВАТЬ ПО
	|	ДатаКурса,
	|	Валюта,
	|	КурсНаДатуДокумента
	|";
	
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Подзапрос", ТекстПодзапросаКурсов);
	
	Запрос.УстановитьПараметр("ДатаДокумента", НачалоДня(Реквизиты.Период));
	
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц();
	Запрос.Выполнить();
	
	// Расчет усредненных курсов.
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	СУММА(ВЫРАЗИТЬ(РасчетыПоФинансовымИнструментамОстатки.СуммаОстаток 
	|		* КурсыПлатежа.КурсЧислитель / КурсыПлатежа.КурсЗнаменатель КАК ЧИСЛО(31,2)))				КАК СуммаРегл,
	|	СУММА(ВЫРАЗИТЬ(РасчетыПоФинансовымИнструментамОстатки.СуммаОстаток * КурсыПлатежа.КурсЧислитель
	|		* КурсыУпр.КурсЗнаменатель / (КурсыУпр.КурсЧислитель * КурсыПлатежа.КурсЗнаменатель) КАК ЧИСЛО(31,2)))	КАК СуммаУпр,
	|	СУММА(ВЫРАЗИТЬ(РасчетыПоФинансовымИнструментамОстатки.СуммаОстаток
	|		* КурсыПлатежа.КурсЧислитель * КурсыЗаключенияАренды.КурсЗнаменатель 
	|		/ (КурсыЗаключенияАренды.КурсЧислитель * КурсыПлатежа.КурсЗнаменатель) КАК ЧИСЛО(31,2)))	КАК СуммаВВалютеЗаключения
	|ИЗ
	|	РегистрНакопления.РасчетыПоФинансовымИнструментам.Остатки(
	|			&ГраницаДокумента,
	|			Договор = &Договор
	|				И ТипСуммы = ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.ОбеспечительныйПлатеж)) КАК РасчетыПоФинансовымИнструментамОстатки
	|		ЛЕВОЕ СОЕДИНЕНИЕ Курсы КАК КурсыПлатежа
	|		ПО РасчетыПоФинансовымИнструментамОстатки.Валюта = КурсыПлатежа.Валюта
	|			И (НАЧАЛОПЕРИОДА(РасчетыПоФинансовымИнструментамОстатки.РасчетныйДокумент.Дата, ДЕНЬ) = КурсыПлатежа.ДатаКурса)
	|		ЛЕВОЕ СОЕДИНЕНИЕ Курсы КАК КурсыУпр
	|		ПО (НАЧАЛОПЕРИОДА(РасчетыПоФинансовымИнструментамОстатки.РасчетныйДокумент.Дата, ДЕНЬ) = КурсыУпр.ДатаКурса)
	|			И (КурсыУпр.Валюта = &ВалютаУправленческогоУчета)
	|		ЛЕВОЕ СОЕДИНЕНИЕ Курсы КАК КурсыЗаключенияАренды
	|		ПО (НАЧАЛОПЕРИОДА(РасчетыПоФинансовымИнструментамОстатки.РасчетныйДокумент.Дата, ДЕНЬ) = КурсыЗаключенияАренды.ДатаКурса)
	|			И (КурсыЗаключенияАренды.Валюта = &ВалютаЗаключенияАренды)
	|ИМЕЮЩИЕ
	|	СУММА(РасчетыПоФинансовымИнструментамОстатки.СуммаОстаток * КурсыПлатежа.КурсЧислитель) <> 0
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	СУММА(ЗаключениеДоговораАрендыГрафикНачисленияУслуг.ОбеспечительныйПлатежНДС) КАК ОбеспечительныйПлатежНДС
	|ИЗ
	|	Документ.ЗаключениеДоговораАренды.ГрафикНачисленияУслуг КАК ЗаключениеДоговораАрендыГрафикНачисленияУслуг
	|ГДЕ
	|	ЗаключениеДоговораАрендыГрафикНачисленияУслуг.Ссылка = &Ссылка";
	
	Результат = Запрос.ВыполнитьПакет();
	
	ВсегоНДСПоОбеспечительнымПлатежам = Результат[1].Выгрузить()[0].ОбеспечительныйПлатежНДС;

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

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

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

	Возврат КоэффициентыПересчета;
КонецФункции

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

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

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

Процедура ТекстЗапросаТаблицаПорядокУчетаОС(ТекстыЗапроса, Регистры)

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

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

Процедура ТекстЗапросаТаблицаСтоимостьОС(ТекстыЗапроса, Регистры)

	ИмяРегистра = "СтоимостьОС";
	
	Если Не ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
		Возврат;
	КонецЕсли;
	
	ТекстЗапросаТаблицаВтОсновныеСредства(ТекстыЗапроса);
	ВнеоборотныеАктивыСлужебный.ТекстЗапросаТаблицаВтАрендованныеОС(ТекстыЗапроса);
	ВнеоборотныеАктивыСлужебный.ТекстЗапросаТаблицаВтПорядокУчетаОС(ТекстыЗапроса);
	ВнеоборотныеАктивыСлужебный.ТекстЗапросаТаблицаВтМестонахождениеОС(ТекстыЗапроса);
	
	ТекстЗапроса =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
	|	&Период                                КАК Период,
	|	&Организация                           КАК Организация,
	|	ТаблицаОС.Подразделение                КАК Подразделение,
	|	&Контрагент                            КАК Контрагент,
	|	ТаблицаОС.ОсновноеСредство             КАК ОсновноеСредство,
	|	&ГруппаФинансовогоУчета                КАК ГруппаФинансовогоУчета,
	|	ТаблицаОС.СуммаБУ                      КАК ЗалоговаяСтоимость,
	|	ИСТИНА                                 КАК ОтражатьВРеглУчете,
	|	ЛОЖЬ                                   КАК ОтражатьВУпрУчете,
	|	ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗаключениеДоговораАренды) КАК ХозяйственнаяОперация,
	|
	|	ТаблицаОС.ИдентификаторСтроки          КАК ИдентификаторФинЗаписи,
	|	&НастройкаХозяйственнойОперации        КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтОсновныеСредства КАК ТаблицаОС
	|ГДЕ
	|	&Балансодержатель = ЗНАЧЕНИЕ(Перечисление.БалансодержательПредметовАренды.Арендодатель)
	|	И &ИспользуетсяУправлениеВНА_2_4
	|	И НЕ &ИспользуетсяУчетАрендыПоФСБУ25_2018
	|	И НЕ &СозданДляПерехода
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)    КАК ВидДвижения,
	|	&Период                                   КАК Период,
	|	&Организация                              КАК Организация,
	|	ВтМестонахождениеОС.Местонахождение       КАК Подразделение,
	|	&Контрагент                               КАК Контрагент,
	|	ТаблицаОС.ОсновноеСредство                КАК ОсновноеСредство,
	|	ВтПорядокУчетаОС.ГруппаФинансовогоУчета   КАК ГруппаФинансовогоУчета,
	|	ВтАрендованныеОС.Стоимость                КАК ЗалоговаяСтоимость,
	|	ИСТИНА                                    КАК ОтражатьВРеглУчете,
	|	ЛОЖЬ                                      КАК ОтражатьВУпрУчете,
	|	ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗаключениеДоговораАренды) КАК ХозяйственнаяОперация,
	|
	|	ТаблицаОС.ИдентификаторСтроки             КАК ИдентификаторФинЗаписи,
	|	&НастройкаХозяйственнойОперации           КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	Документ.ЗаключениеДоговораАренды.ОС КАК ТаблицаОС
	|
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтАрендованныеОС КАК ВтАрендованныеОС
	|		ПО ВтАрендованныеОС.ОсновноеСредство = ТаблицаОС.ОсновноеСредство
	|		
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПорядокУчетаОС КАК ВтПорядокУчетаОС
	|		ПО ВтПорядокУчетаОС.ОсновноеСредство = ТаблицаОС.ОсновноеСредство
	|		
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтМестонахождениеОС КАК ВтМестонахождениеОС
	|		ПО ВтПорядокУчетаОС.ОсновноеСредство = ТаблицаОС.ОсновноеСредство
	|
	|ГДЕ
	|	ТаблицаОС.Ссылка = &Ссылка
	|	И &Балансодержатель = ЗНАЧЕНИЕ(Перечисление.БалансодержательПредметовАренды.Арендодатель)
	|	И &ИспользуетсяУправлениеВНА_2_4
	|	И &СозданДляПерехода";
	
	ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
	
КонецПроцедуры

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

	ТекстЗапросаТаблицаВтОсновныеСредства(ТекстыЗапроса);
	ТекстЗапросаТаблицаВтСуммаПроцентов(ТекстыЗапроса);
	ТекстЗапросаТаблицаВтСуммаНДС(ТекстыЗапроса);
	ТекстЗапросаТаблицаВтКорректировкаАрендныхОбязательств(ТекстыЗапроса);
	
	ИнициализироватьВтИдентификаторыАвансов(Запрос,ТекстыЗапроса);
	ТекстЗапросаТаблицаВтПереоценкаАвансов(ТекстыЗапроса);
	
	СписокЗапросовОбъединение = Новый Массив;
	
	#Область ФормированиеСтоимостиАрендованныхОС // Дт 08.04 - Кт 76.07.1
	// По усредненному курсу.
	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	&Период                                                                      КАК Период,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)                                       КАК ВидДвижения,
	|	
	|	ЕСТЬNULL(АналитикаПоПартнерам.КлючАналитики, НЕОПРЕДЕЛЕНО)                   КАК АналитикаУчетаПоПартнерам,
	|	&Договор                                                                     КАК Договор,
	|	ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.АрендныеОбязательства)            КАК ТипСуммы,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК РасчетныйДокумент,
	|	&ВалютаВзаиморасчетов                                                        КАК Валюта,
	|	
	|	ТаблицаОС.СуммаБУ КАК Сумма,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахУпр
	|			ТОГДА 0
	|		ИНАЧЕ ТаблицаОС.СуммаУУ_БезНДС_Упр
	|	КОНЕЦ КАК СуммаУпр,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахРегл
	|			ТОГДА 0
	|		ИНАЧЕ ТаблицаОС.СуммаБУ_БезНДС_Регл
	|	КОНЕЦ КАК СуммаРегл,
	|	
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ТипГрафика,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК СтатьяАналитики,
	|	ТаблицаОС.ИдентификаторСтроки                                                КАК ИдентификаторСтроки,
	|	ТаблицаОС.ИдентификаторСтроки                                                КАК ИдентификаторФинЗаписи,
	|	&ХО_ФормированиеСтоимостиАрендованныхОС                                      КАК ХозяйственнаяОперация,
	|	&НастройкаХО_ФормированиеСтоимостиАрендованныхОС                             КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтОсновныеСредства КАК ТаблицаОС
	|		
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
	|		ПО АналитикаПоПартнерам.Организация = &Организация
	|			И АналитикаПоПартнерам.Партнер = &Партнер
	|			И АналитикаПоПартнерам.Контрагент = &Контрагент
	|			И АналитикаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
	|			И АналитикаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
	|ГДЕ
	|	(НЕ &ОтразитьУслугиВРасходахУпр ИЛИ НЕ &ОтразитьУслугиВРасходахРегл)";
	СписокЗапросовОбъединение.Добавить(ТекстЗапроса);
	#КонецОбласти
	
	#Область УвеличениеПроцентовПоАренде // Дт 76.07.5 - Кт 76.07.1
	// По курсу на дату документа.
	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	&Период                                                                      КАК Период,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)                                       КАК ВидДвижения,
	|	
	|	ЕСТЬNULL(АналитикаПоПартнерам.КлючАналитики, НЕОПРЕДЕЛЕНО)                   КАК АналитикаУчетаПоПартнерам,
	|	&Договор                                                                     КАК Договор,
	|	ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.Проценты)                         КАК ТипСуммы,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК РасчетныйДокумент,
	|	&ВалютаВзаиморасчетов                                                        КАК Валюта,
	|	
	|	ВтСуммаПроцентов.Сумма КАК Сумма,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахУпр
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
	|			ТОГДА ВтСуммаПроцентов.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(ВтСуммаПроцентов.Сумма * Курсы.КурсУпр
	|						КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаУпр,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахРегл
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
	|			ТОГДА ВтСуммаПроцентов.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(ВтСуммаПроцентов.Сумма * Курсы.КурсРегл
	|						КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаРегл,
	|	
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ТипГрафика,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК СтатьяАналитики,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ИдентификаторСтроки,
	|	&ИдентификаторДокумента                                                      КАК ИдентификаторФинЗаписи,
	|	&ХО_УвеличениеПроцентовПоАренде                                              КАК ХозяйственнаяОперация,
	|	&НастройкаХО_УвеличениеПроцентовПоАренде                                     КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтСуммаПроцентов КАК ВтСуммаПроцентов
	|		
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
	|		ПО АналитикаПоПартнерам.Организация = &Организация
	|			И АналитикаПоПартнерам.Партнер = &Партнер
	|			И АналитикаПоПартнерам.Контрагент = &Контрагент
	|			И АналитикаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
	|			И АналитикаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
	|
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВтКурсы КАК Курсы
	|		ПО Курсы.Валюта = &ВалютаВзаиморасчетов
	|			И Курсы.КурсНаДатуДокумента
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	&Период                                                                      КАК Период,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)                                       КАК ВидДвижения,
	|	
	|	ЕСТЬNULL(АналитикаПоПартнерам.КлючАналитики, НЕОПРЕДЕЛЕНО)                   КАК АналитикаУчетаПоПартнерам,
	|	&Договор                                                                     КАК Договор,
	|	ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.АрендныеОбязательства)            КАК ТипСуммы,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК РасчетныйДокумент,
	|	&ВалютаВзаиморасчетов                                                        КАК Валюта,
	|	
	|	ВтСуммаПроцентов.Сумма КАК Сумма,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахУпр
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
	|			ТОГДА ВтСуммаПроцентов.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(ВтСуммаПроцентов.Сумма * Курсы.КурсУпр КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаУпр,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахРегл
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
	|			ТОГДА ВтСуммаПроцентов.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(ВтСуммаПроцентов.Сумма * Курсы.КурсРегл КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаРегл,
	|	
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ТипГрафика,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК СтатьяАналитики,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ИдентификаторСтроки,
	|	&ИдентификаторДокумента                                                      КАК ИдентификаторФинЗаписи,
	|	&ХО_УвеличениеПроцентовПоАренде                                              КАК ХозяйственнаяОперация,
	|	&НастройкаХО_УвеличениеПроцентовПоАренде                                     КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтСуммаПроцентов КАК ВтСуммаПроцентов
	|		
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
	|		ПО АналитикаПоПартнерам.Организация = &Организация
	|			И АналитикаПоПартнерам.Партнер = &Партнер
	|			И АналитикаПоПартнерам.Контрагент = &Контрагент
	|			И АналитикаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
	|			И АналитикаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
	|
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВтКурсы КАК Курсы
	|		ПО Курсы.Валюта = &ВалютаВзаиморасчетов
	|			И Курсы.КурсНаДатуДокумента";
	СписокЗапросовОбъединение.Добавить(ТекстЗапроса);
	#КонецОбласти
	
	#Область УвеличениеНДСПоАренде // Дт 76.07.9 - Кт 76.07.1
	// По курсу на дату документа.
	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	&Период                                                                      КАК Период,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)                                       КАК ВидДвижения,
	|	
	|	ЕСТЬNULL(АналитикаПоПартнерам.КлючАналитики, НЕОПРЕДЕЛЕНО)                   КАК АналитикаУчетаПоПартнерам,
	|	&Договор                                                                     КАК Договор,
	|	ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.НДС)                              КАК ТипСуммы,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК РасчетныйДокумент,
	|	&ВалютаВзаиморасчетов                                                        КАК Валюта,
	|	
	|	ВтСуммаНДС.Сумма КАК Сумма,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахУпр
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
	|			ТОГДА ВтСуммаНДС.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(ВтСуммаНДС.Сумма * Курсы.КурсУпр КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаУпр,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахРегл
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
	|			ТОГДА ВтСуммаНДС.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(ВтСуммаНДС.Сумма * Курсы.КурсРегл КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаРегл,
	|	
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ТипГрафика,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК СтатьяАналитики,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ИдентификаторСтроки,
	|	&ИдентификаторДокумента                                                      КАК ИдентификаторФинЗаписи,
	|	&ХО_УвеличениеНДСПоАренде                                                    КАК ХозяйственнаяОперация,
	|	&НастройкаХО_УвеличениеНДСПоАренде                                           КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтСуммаНДС КАК ВтСуммаНДС
	|		
	|		ЛЕВОЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
	|		ПО
	|			АналитикаПоПартнерам.Организация = &Организация
	|			И АналитикаПоПартнерам.Партнер = &Партнер
	|			И АналитикаПоПартнерам.Контрагент = &Контрагент
	|			И АналитикаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
	|			И АналитикаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
	|
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВтКурсы КАК Курсы
	|		ПО Курсы.Валюта = &ВалютаВзаиморасчетов
	|			И Курсы.КурсНаДатуДокумента
	|
	|ГДЕ
	|	(НЕ &ОтразитьУслугиВРасходахУпр ИЛИ НЕ &ОтразитьУслугиВРасходахРегл)
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	&Период                                                                      КАК Период,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)                                       КАК ВидДвижения,
	|	
	|	ЕСТЬNULL(АналитикаПоПартнерам.КлючАналитики, НЕОПРЕДЕЛЕНО)                   КАК АналитикаУчетаПоПартнерам,
	|	&Договор                                                                     КАК Договор,
	|	ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.АрендныеОбязательства)            КАК ТипСуммы,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК РасчетныйДокумент,
	|	&ВалютаВзаиморасчетов                                                        КАК Валюта,
	|	
	|	ВтСуммаНДС.Сумма КАК Сумма,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахУпр
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
	|			ТОГДА ВтСуммаНДС.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(ВтСуммаНДС.Сумма * Курсы.КурсУпр КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаУпр,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахРегл
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
	|			ТОГДА ВтСуммаНДС.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(ВтСуммаНДС.Сумма * Курсы.КурсРегл КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаРегл,
	|	
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ТипГрафика,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК СтатьяАналитики,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ИдентификаторСтроки,
	|	&ИдентификаторДокумента                                                      КАК ИдентификаторФинЗаписи,
	|	&ХО_УвеличениеНДСПоАренде                                                    КАК ХозяйственнаяОперация,
	|	&НастройкаХО_УвеличениеНДСПоАренде                                           КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтСуммаНДС КАК ВтСуммаНДС
	|		
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
	|		ПО АналитикаПоПартнерам.Организация = &Организация
	|			И АналитикаПоПартнерам.Партнер = &Партнер
	|			И АналитикаПоПартнерам.Контрагент = &Контрагент
	|			И АналитикаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
	|			И АналитикаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
	|
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВтКурсы КАК Курсы
	|		ПО Курсы.Валюта = &ВалютаВзаиморасчетов
	|			И Курсы.КурсНаДатуДокумента
	|
	|ГДЕ
	|	(НЕ &ОтразитьУслугиВРасходахУпр ИЛИ НЕ &ОтразитьУслугиВРасходахРегл)";
	СписокЗапросовОбъединение.Добавить(ТекстЗапроса);
	#КонецОбласти

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

	#Область КорректировкаАрендныхОбязательств // Дт 76.07.1 - Кт 91.01
	// По курсу на дату документа.
	ТекстЗапроса =
	"ВЫБРАТЬ
	|	&Период                                                                      КАК Период,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)                                       КАК ВидДвижения,
	|	
	|	ЕСТЬNULL(АналитикаПоПартнерам.КлючАналитики, НЕОПРЕДЕЛЕНО)                   КАК АналитикаУчетаПоПартнерам,
	|	&Договор                                                                     КАК Договор,
	|	ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.АрендныеОбязательства)            КАК ТипСуммы,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК РасчетныйДокумент,
	|	&ВалютаВзаиморасчетов                                                        КАК Валюта,
	|	
	|	-ВтКорректировкаАрендныхОбязательств.Сумма                                   КАК Сумма,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахУпр
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
	|			ТОГДА -ВтКорректировкаАрендныхОбязательств.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(-ВтКорректировкаАрендныхОбязательств.Сумма * Курсы.КурсУпр КАК ЧИСЛО(31,2))
	|	КОНЕЦ                                                                        КАК СуммаУпр,
	|
	|	ВЫБОР
	|		КОГДА &ОтразитьУслугиВРасходахРегл
	|			ТОГДА 0
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
	|			ТОГДА -ВтКорректировкаАрендныхОбязательств.Сумма
	|		ИНАЧЕ ВЫРАЗИТЬ(-ВтКорректировкаАрендныхОбязательств.Сумма * Курсы.КурсРегл КАК ЧИСЛО(31,2))
	|	КОНЕЦ                                                                        КАК СуммаРегл,
	|	
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ТипГрафика,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК СтатьяАналитики,
	|	НЕОПРЕДЕЛЕНО                                                                 КАК ИдентификаторСтроки,
	|	&ИдентификаторДокумента                                                      КАК ИдентификаторФинЗаписи,
	|	&ХО_КорректировкаАрендныхОбязательств                                        КАК ХозяйственнаяОперация,
	|	&НастройкаХО_КорректировкаАрендныхОбязательств                               КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтКорректировкаАрендныхОбязательств КАК ВтКорректировкаАрендныхОбязательств
	|		
	|		ЛЕВОЕ СОЕДИНЕНИЕ
	|			РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
	|		ПО
	|			АналитикаПоПартнерам.Организация = &Организация
	|			И АналитикаПоПартнерам.Партнер = &Партнер
	|			И АналитикаПоПартнерам.Контрагент = &Контрагент
	|			И АналитикаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
	|			И АналитикаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
	|	
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВтКурсы КАК Курсы
	|		ПО Курсы.Валюта = &ВалютаВзаиморасчетов
	|			И Курсы.КурсНаДатуДокумента
	|
	|ГДЕ
	|	ВтКорректировкаАрендныхОбязательств.Сумма < 0
	|	И (НЕ &ОтразитьУслугиВРасходахУпр ИЛИ НЕ &ОтразитьУслугиВРасходахРегл)";
	СписокЗапросовОбъединение.Добавить(ТекстЗапроса);
	#КонецОбласти
	
	#Область  ПереоценкаАвансовДоКурсаДокумента // Дт 76.37.1   Кт76.37.3
	// По коэффициентам переоценки. Сумма аванса * (курс на дату документа - курс на дату аванса).
	ТекстЗапроса =
	"ВЫБРАТЬ
	|	&Период КАК Период,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)                            КАК ВидДвижения,
	|	ЕСТЬNULL(АналитикаПоПартнерам.КлючАналитики, НЕОПРЕДЕЛЕНО)        КАК АналитикаУчетаПоПартнерам,
	|	&Договор                                                          КАК Договор,
	|	ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.АрендныеОбязательства) КАК ТипСуммы,
	|	НЕОПРЕДЕЛЕНО                                                      КАК РасчетныйДокумент,
	|	&ВалютаВзаиморасчетов                                             КАК Валюта,
	|	0                                                                 КАК Сумма,
	|	ВтПереоценкаАвансов.СуммаПереоценкиУпр                            КАК СуммаУпр,
	|	ВтПереоценкаАвансов.СуммаПереоценкиРегл                           КАК СуммаРегл,
	|	НЕОПРЕДЕЛЕНО                                                      КАК ТипГрафика,
	|	НЕОПРЕДЕЛЕНО                                                      КАК СтатьяАналитики,
	|	НЕОПРЕДЕЛЕНО                                                      КАК ИдентификаторСтроки,
	|	ВтПереоценкаАвансов.ИдентификаторФинЗаписи                        КАК ИдентификаторФинЗаписи,
	|	&ХО_ПереоценкаРасчетовПоАренде                                    КАК ХозяйственнаяОперация,
	|	&НастройкаХО_ПереоценкаРасчетовПоАренде                           КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтПереоценкаАвансов КАК ВтПереоценкаАвансов
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
	|		ПО АналитикаПоПартнерам.Организация = &Организация
	|		И АналитикаПоПартнерам.Партнер = &Партнер
	|		И АналитикаПоПартнерам.Контрагент = &Контрагент
	|		И АналитикаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
	|		И АналитикаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
	|	
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	&Период КАК Период,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)                            КАК ВидДвижения,
	|	ЕСТЬNULL(АналитикаПоПартнерам.КлючАналитики, НЕОПРЕДЕЛЕНО)        КАК АналитикаУчетаПоПартнерам,
	|	&Договор                                                          КАК Договор,
	|	ЗНАЧЕНИЕ(Перечисление.ТипыПлатежейПоАренде.ОбеспечительныйПлатеж) КАК ТипСуммы,
	|	ВтПереоценкаАвансов.РасчетныйДокумент                             КАК РасчетныйДокумент,
	|	&ВалютаВзаиморасчетов                                             КАК Валюта,
	|	0                                                                 КАК Сумма,
	|	ВтПереоценкаАвансов.СуммаПереоценкиУпр                            КАК СуммаУпр,
	|	ВтПереоценкаАвансов.СуммаПереоценкиРегл                           КАК СуммаРегл,
	|	НЕОПРЕДЕЛЕНО                                                      КАК ТипГрафика,
	|	НЕОПРЕДЕЛЕНО                                                      КАК СтатьяАналитики,
	|	НЕОПРЕДЕЛЕНО                                                      КАК ИдентификаторСтроки,
	|	ВтПереоценкаАвансов.ИдентификаторФинЗаписи                        КАК ИдентификаторФинЗаписи,
	|	&ХО_ПереоценкаРасчетовПоАренде                                    КАК ХозяйственнаяОперация,
	|	&НастройкаХО_ПереоценкаРасчетовПоАренде                           КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтПереоценкаАвансов КАК ВтПереоценкаАвансов
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
	|		ПО АналитикаПоПартнерам.Организация = &Организация
	|		И АналитикаПоПартнерам.Партнер = &Партнер
	|		И АналитикаПоПартнерам.Контрагент = &Контрагент
	|		И АналитикаПоПартнерам.Договор = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
	|		И АналитикаПоПартнерам.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)";
	СписокЗапросовОбъединение.Добавить(ТекстЗапроса);
	#КонецОбласти

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

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

Функция ТекстЗапросаТаблицаАрендованныеОС(ТекстыЗапроса, Регистры)

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

Процедура ТекстЗапросаТаблицаУсловияДоговоровАренды(ТекстыЗапроса, Регистры)

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

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

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

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

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

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

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

Процедура ТекстЗапросаТаблицаПрочиеДоходы(Запрос, ТекстыЗапроса, Регистры)

	ИмяРегистра = "ПрочиеДоходы";
	
	Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
		Возврат;
	КонецЕсли;

	ТекстЗапросаТаблицаВтКорректировкаАрендныхОбязательств(ТекстыЗапроса);
	
	ТекстЗапроса =
	"ВЫБРАТЬ
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)         КАК ВидДвижения,
	|	&Период                                        КАК Период,
	|	&Организация                                   КАК Организация,
	|	&Подразделение                                 КАК Подразделение,
	|	&НаправлениеДеятельности                       КАК НаправлениеДеятельности,
	|	&СтатьяДоходов                                 КАК СтатьяДоходов,
	|	&АналитикаДоходов                              КАК АналитикаДоходов,
	|	-ТаблицаДоходы.Сумма                           КАК Сумма,
	|	-ТаблицаДоходы.СуммаУпр                        КАК СуммаУпр,
	|	-ТаблицаДоходы.СуммаРегл                       КАК СуммаРегл,
	|	&ИдентификаторДокумента                        КАК ИдентификаторФинЗаписи,
	|	&ХО_КорректировкаАрендныхОбязательств          КАК ХозяйственнаяОперация,
	|	&НастройкаХО_КорректировкаАрендныхОбязательств КАК НастройкаХозяйственнойОперации
	|ИЗ
	|	ВтКорректировкаАрендныхОбязательств КАК ТаблицаДоходы
	|ГДЕ
	|	ТаблицаДоходы.Сумма < 0
	|	И ТИПЗНАЧЕНИЯ(&СтатьяДоходов) = ТИП(ПланВидовХарактеристик.СтатьиДоходов)";

	ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
	
КонецПроцедуры

Процедура ТекстЗапросаТаблицаДвиженияПоПрочимАктивамПассивам(Запрос, ТекстыЗапроса, Регистры)

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

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

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

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

#Область ФормированиеВременныхТаблицыДляПроведения

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

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

Процедура ТекстЗапросаТаблицаВтОсновныеСредства(ТекстыЗапроса)
	
	ИмяТаблицы = "ВтОсновныеСредства";
	
	Если ПроведениеДокументов.ЕстьТаблицаЗапроса(ИмяТаблицы, ТекстыЗапроса) Тогда
		Возврат;
	КонецЕсли;
	
	// Суммы по усредненному курсу.
	Текст = 
	"ВЫБРАТЬ
	|	ТаблицаОС.Ссылка,
	|	ТаблицаОС.НомерСтроки,
	|	ТаблицаОС.ОсновноеСредство,
	|	ТаблицаОС.ИдентификаторСтроки,
	|	ТаблицаОС.Подразделение КАК Подразделение,
	|	ТаблицаОС.СтатьяРасходов КАК СтатьяРасходов,
	|	ТаблицаОС.СтатьяРасходов.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаВнеоборотныеАктивы) КАК РаспределениеНаВНА,
	|	ТаблицаОС.СуммаБУ КАК СуммаБУ,
	|	ТаблицаОС.СуммаНДС КАК СуммаНДС,
	|	ТаблицаОС.СтавкаНДС КАК СтавкаНДС,
	|
	|	ВЫБОР
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
	|			ТОГДА ТаблицаОС.СуммаБУ + ТаблицаОС.СуммаНДС
	|		ИНАЧЕ ВЫРАЗИТЬ((ТаблицаОС.СуммаБУ * &КоэффициентПересчетаВВалютуУпр + 
	|			ТаблицаОС.СуммаНДС * &КоэффициентПересчетаВВалютуУпрНаДатуДокумента)  КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаУУ_СНДС_Упр,
	|
	|	ВЫБОР
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
	|			ТОГДА ТаблицаОС.СуммаБУ
	|		ИНАЧЕ ВЫРАЗИТЬ(ТаблицаОС.СуммаБУ * &КоэффициентПересчетаВВалютуУпр КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаУУ_БезНДС_Упр,
	|	
	|	ВЫБОР
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
	|			ТОГДА ТаблицаОС.СуммаБУ + ТаблицаОС.СуммаНДС
	|		ИНАЧЕ ВЫРАЗИТЬ((ТаблицаОС.СуммаБУ * &КоэффициентПересчетаВВалютуРегл
	|			+ ТаблицаОС.СуммаНДС * &КоэффициентПересчетаВВалютуРеглНаДатуДокумента) КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаБУ_СНДС_Регл,
	|
	|	ВЫБОР
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
	|			ТОГДА ТаблицаОС.СуммаБУ
	|		ИНАЧЕ ВЫРАЗИТЬ(ТаблицаОС.СуммаБУ * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаБУ_БезНДС_Регл,
	|	
	|	ВЫБОР
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
	|			ТОГДА ТаблицаОС.СуммаНУ
	|		ИНАЧЕ ВЫРАЗИТЬ(ТаблицаОС.СуммаНУ * &КоэффициентПересчетаВВалютуРегл КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаНУ_БезНДС_Регл,
	|	
	|	ВЫБОР
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаУправленческогоУчета
	|			ТОГДА ТаблицаОС.СуммаНДС
	|		ИНАЧЕ ВЫРАЗИТЬ(ТаблицаОС.СуммаНДС * &КоэффициентПересчетаВВалютуУпрНаДатуДокумента КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаНДС_Упр,
	|
	|	ВЫБОР
	|		КОГДА &ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
	|			ТОГДА ТаблицаОС.СуммаНДС
	|		ИНАЧЕ ВЫРАЗИТЬ(ТаблицаОС.СуммаНДС * &КоэффициентПересчетаВВалютуРеглНаДатуДокумента КАК ЧИСЛО(31,2))
	|	КОНЕЦ КАК СуммаНДС_Регл
	|
	|ПОМЕСТИТЬ ВтОсновныеСредства
	|ИЗ
	|	Документ.ЗаключениеДоговораАренды.ОС КАК ТаблицаОС
	|	
	|ГДЕ
	|	ТаблицаОС.Ссылка = &Ссылка";
	
	ТекстыЗапроса.Добавить(Текст, ИмяТаблицы, Ложь);
	
КонецПроцедуры

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

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

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

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

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

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

Процедура ИнициализироватьВтИдентификаторыАвансов(Запрос,ТекстыЗапроса)
	Если Запрос.Параметры.Свойство("ИдентификаторыАвансовИнициализированы") Тогда
		Возврат;
	КонецЕсли;

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

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

// Текст запроса формирования временной таблицы ВтПереоценкаАвансов.
// 
// Параметры:
//  ТекстыЗапроса - СписокЗначений -
Процедура ТекстЗапросаТаблицаВтПереоценкаАвансов(ТекстыЗапроса)
	
	ИмяТаблицы = "ВтПереоценкаАвансов";
	
	Если ПроведениеДокументов.ЕстьТаблицаЗапроса(ИмяТаблицы, ТекстыЗапроса) Тогда
		Возврат;
	КонецЕсли;

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

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

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

#Область ПроведениеПоРеглУчету

Функция ТекстОтраженияВРеглУчете() Экспорт
	
	Возврат ЗаключениеДоговораАрендыЛокализация.ТекстОтраженияВРеглУчете();
	
КонецФункции

Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт
	
	Возврат ЗаключениеДоговораАрендыЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();
	
КонецФункции

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

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

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	КомандаПечати = Справочники.ДоговорыАренды.ДобавитьКомандуРасшифровкиРасчетаПроцентов(КомандыПечати);
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
	УправлениеПечатью.ДобавитьУсловиеВидимостиКоманды(КомандаПечати, "ГрафикНачисленияПроцентовВведенВручную", Ложь);
	
КонецПроцедуры

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

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

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

		Иначе
			
			ОССумма_Заголовок = НСтр("ru = 'Стоимость (без НДС)'"); 
			ОССумма_Подсказка = НСтр("ru = 'Стоимость предметов аренды, которая рассчитывается на основании справедливой и негарантированной стоимости'");

		КонецЕсли;
			
	Иначе
		
		Если Балансодержатель = Перечисления.БалансодержательПредметовАренды.Арендодатель Тогда
			
			ОССумма_Заголовок = НСтр("ru='Залоговая стоимость'");
			ОССумма_Подсказка = НСтр("ru = 'Залоговая стоимость предмета аренды'");
		Иначе
			
			ОССумма_Заголовок = НСтр("ru = 'Сумма вложений лизингодателя (без НДС)'");
			ОССумма_Подсказка = "";
			
		КонецЕсли;	

	КонецЕсли;
	
	ПредставлениеРеквизитов.Вставить("ОС.Стоимость_Заголовок", ОССумма_Заголовок);
	ПредставлениеРеквизитов.Вставить("ОС.Стоимость_Подсказка", ОССумма_Подсказка);
	
	Возврат ПредставлениеРеквизитов;
	
КонецФункции

// Описание параметров выбора статей и аналитик в документе.
// 
// Возвращаемое значение:
// 	Структура из см. ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики - 
Функция ПараметрыВыбораСтатейИАналитик() Экспорт

	СписокПараметров = Новый Массив;

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

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

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

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

	ПараметрыНастройки.Организация = "Объект.Организация";

	ПараметрыНастройки.ЭлементыФормы.Добавить("ПредставлениеОтраженияДоходовВРеглУчете");
	МассивПараметров.Добавить(ПараметрыНастройки);
	#КонецОбласти
	
	Возврат МассивПараметров;
	
КонецФункции


// Рассчитать ставку, стоимость, проценты.
// 
// Параметры:
//  Объект - ДокументОбъект.ЗаключениеДоговораАренды
//  РеквизитыДоговора - Структура
Процедура РассчитатьСтавкуСтоимостьПроценты(Объект, РеквизитыДоговора) Экспорт

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

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

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

#КонецЕсли

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