Авансовый отчет / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Организация)
	|	И ЗначениеРазрешено(Подразделение)
	|	И ЗначениеРазрешено(ПодотчетноеЛицо)
	|	И ЗначениеРазрешено(ОплатаПоставщикам.Поставщик, NULL КАК ИСТИНА)";

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

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

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

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

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

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

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

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

			//-- Локализация
			|;";
	КонецЕсли;
	
	ТекстЗапроса = ТекстЗапроса + "
	|	
	|ВЫБРАТЬ //1
	|	ВТПериоды.Организация,
	|	ВТПериоды.ПодотчетноеЛицо,
	|	ВТПериоды.Подразделение,
	|	ВТПериоды.Ссылка,
	|	ВТПериоды.Дата КАК ДатаТекущийОтчет,
	|	МАКСИМУМ(Документ.Дата) КАК МаксимальнаяДата
	|ПОМЕСТИТЬ МаксимальныеДатыПредыдущихАО
	|ИЗ
	|	ВТПериоды1 КАК ВТПериоды
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет КАК Документ
	|		ПО (Документ.Организация = ВТПериоды.Организация)
	|			И (Документ.ПодотчетноеЛицо = ВТПериоды.ПодотчетноеЛицо)
	|			И (Документ.Подразделение = ВТПериоды.Подразделение)
	|			И (Документ.Дата < ВТПериоды.Дата)
	|			И Документ.Проведен
	|СГРУППИРОВАТЬ ПО
	|	ВТПериоды.Организация,
	|	ВТПериоды.ПодотчетноеЛицо,
	|	ВТПериоды.Подразделение,
	|	ВТПериоды.Ссылка,
	|	ВТПериоды.Дата 
	|;
	|ВЫБРАТЬ //2
	|	ВложенныйЗапрос.Организация,
	|	ВложенныйЗапрос.ПодотчетноеЛицо,
	|	ВложенныйЗапрос.Подразделение,
	|	ВложенныйЗапрос.Ссылка,
	|	ВложенныйЗапрос.ДатаТекущийОтчет КАК ДатаТекущийОтчет,
	|	ЕСТЬNULL(ВложенныйЗапрос.ПредыдущаяСсылка.Дата,ДАТАВРЕМЯ(1,1,1)) КАК ДатаПредыдущийОтчет
	|ПОМЕСТИТЬ АвансовыйОтчетНаПечатьВТ3
	|ИЗ
	|	(ВЫБРАТЬ
	|		ВТПериоды.Организация,
	|		ВТПериоды.ПодотчетноеЛицо,
	|		ВТПериоды.Подразделение,
	|		ВТПериоды.Ссылка,
	|		ВТПериоды.ДатаТекущийОтчет КАК ДатаТекущийОтчет,
	|		МАКСИМУМ(Документ.Ссылка) КАК ПредыдущаяСсылка
	|	ИЗ
	|		МаксимальныеДатыПредыдущихАО КАК ВТПериоды
	|			ЛЕВОЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет КАК Документ
	|				ПО (Документ.Организация = ВТПериоды.Организация)
	|				И (Документ.ПодотчетноеЛицо = ВТПериоды.ПодотчетноеЛицо)
	|				И (Документ.Подразделение = ВТПериоды.Подразделение)
	|				И (Документ.Дата = ВТПериоды.МаксимальнаяДата)
	|				И Документ.Проведен
	|	СГРУППИРОВАТЬ ПО
	|		ВТПериоды.Организация,
	|		ВТПериоды.ПодотчетноеЛицо,
	|		ВТПериоды.Подразделение,
	|		ВТПериоды.Ссылка,
	|		ВТПериоды.ДатаТекущийОтчет) КАК ВложенныйЗапрос
	|;
	|ВЫБРАТЬ // 3
	|	АвансовыйОтчетНаПечатьВТ3.Ссылка,
	|	ДенежныеСредстваВыдано.Валюта,
	|	ДенежныеСредстваВыдано.ЦельВыдачи,
	|	
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
	|			И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыДенежныеСредстваВыдано)
	|			И НЕ ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыНачальногоОстатка)
	|			И ДенежныеСредстваВыдано.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОПерации.ВозвратБронированияПодотчетногоЛица) ТОГДА
	|			ЕСТЬNULL(ДенежныеСредстваВыдано.Сумма, 0)
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК СуммаВыданоНаличными,
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
	|			И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыДенежныеСредстваВыдано)
	|			И НЕ ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыНачальногоОстатка)
	|			И ДенежныеСредстваВыдано.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОПерации.ВозвратБронированияПодотчетногоЛица) ТОГДА
	|			ЕСТЬNULL(ДенежныеСредстваВыдано.СуммаРегл, 0)
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК СуммаВыданоНаличнымиРегл,
	|
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|			И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыДенежныеСредстваВозвращено) ТОГДА
	|			ЕСТЬNULL(ДенежныеСредстваВыдано.Сумма, 0)
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК СуммаВозвращено,
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|			И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (&РегистраторыДенежныеСредстваВозвращено) ТОГДА
	|			ЕСТЬNULL(ДенежныеСредстваВыдано.СуммаРегл, 0)
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК СуммаВозвращеноРегл,
	|
	|	0 КАК СуммаКонвертация,
	|	0 КАК СуммаКонвертацияРегл,
	|
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
	|			И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (ТИП(Документ.СписаниеБезналичныхДенежныхСредств), ТИП(Документ.ПодтверждениеЗачисленияЗарплаты)) ТОГДА
	|			ЕСТЬNULL(ДенежныеСредстваВыдано.Сумма, 0)
	|		ИНАЧЕ
	|			0
	|	КОНЕЦ) КАК СуммаВыданоКартой,
	|	
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
	|			И ТИПЗНАЧЕНИЯ(ДенежныеСредстваВыдано.Регистратор) В (ТИП(Документ.СписаниеБезналичныхДенежныхСредств), ТИП(Документ.ПодтверждениеЗачисленияЗарплаты)) ТОГДА
	|			ЕСТЬNULL(ДенежныеСредстваВыдано.СуммаРегл, 0)
	|		ИНАЧЕ
	|			0
	|	КОНЕЦ) КАК СуммаВыданоКартойРегл
	|
	|ПОМЕСТИТЬ Выдано
	|ИЗ
	|	АвансовыйОтчетНаПечатьВТ3
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц КАК ДенежныеСредстваВыдано
	|	ПО
	|		ДенежныеСредстваВыдано.Период > АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет
	|		И ДенежныеСредстваВыдано.Период <= АвансовыйОтчетНаПечатьВТ3.ДатаТекущийОтчет
	|		И ДенежныеСредстваВыдано.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
	|		И ДенежныеСредстваВыдано.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
	|		И ДенежныеСредстваВыдано.ПодотчетноеЛицо = АвансовыйОтчетНаПечатьВТ3.ПодотчетноеЛицо
	|
	|СГРУППИРОВАТЬ ПО
	|	АвансовыйОтчетНаПечатьВТ3.Ссылка,
	|	ДенежныеСредстваВыдано.Валюта,
	|	ДенежныеСредстваВыдано.ЦельВыдачи
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	АвансовыйОтчетНаПечатьВТ3.Ссылка,
	|	ДенежныеСредстваВыдано.Валюта,
	|	ДенежныеСредстваВыдано.ЦельВыдачи,
	|	
	|	0 КАК СуммаВыданоНаличными,
	|	0 КАК СуммаВыданоНаличнымиРегл,
	|	0 КАК СуммаВозвращено,
	|	0 КАК СуммаВозвращеноРегл,
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
	|			И ДенежныеСредстваВыдано.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствОтКонвертацииВалюты) ТОГДА
	|			ЕСТЬNULL(ДенежныеСредстваВыдано.Сумма, 0)
	|		ИНАЧЕ
	|			0
	|	КОНЕЦ) КАК СуммаКонвертация,
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредстваВыдано.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
	|			И ДенежныеСредстваВыдано.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствОтКонвертацииВалюты) ТОГДА
	|			ЕСТЬNULL(ДенежныеСредстваВыдано.СуммаРегл, 0)
	|		ИНАЧЕ
	|			0
	|	КОНЕЦ) КАК СуммаКонвертацияРегл,
	|	0 КАК СуммаВыданоКартой,
	|	0 КАК СуммаВыданоКартойРегл
	|ИЗ
	|	АвансовыйОтчетНаПечатьВТ3
	|		ЛЕВОЕ СОЕДИНЕНИЕ
	|			РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц КАК ДенежныеСредстваВыдано
	|		ПО
	|			ДенежныеСредстваВыдано.Регистратор = АвансовыйОтчетНаПечатьВТ3.Ссылка
	|				И ДенежныеСредстваВыдано.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
	|				И ДенежныеСредстваВыдано.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
	|				И ДенежныеСредстваВыдано.ПодотчетноеЛицо = АвансовыйОтчетНаПечатьВТ3.ПодотчетноеЛицо
	|СГРУППИРОВАТЬ ПО
	|	АвансовыйОтчетНаПечатьВТ3.Ссылка,
	|	ДенежныеСредстваВыдано.Валюта,
	|	ДенежныеСредстваВыдано.ЦельВыдачи
	|;
	|////////////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ // 4
	|	Израсходовано.Ссылка КАК Ссылка,
	|	Израсходовано.Регистратор КАК Регистратор,
	|	Израсходовано.Валюта КАК Валюта,
	|	Израсходовано.ЦельВыдачи КАК ЦельВыдачи,
	|	Израсходовано.Сумма КАК СуммаИзрасходовано,
	|	Израсходовано.СуммаРегл КАК СуммаИзрасходованоРегл
	|ПОМЕСТИТЬ Израсходовано
	|ИЗ (
	|	ВЫБРАТЬ
	|		АвансовыйОтчетНаПечатьВТ3.Ссылка КАК Ссылка,
	|		АвансовыйОтчетНаПечатьВТ3.Ссылка КАК Регистратор,
	|		ДенежныеСредства.Валюта,
	|		ДенежныеСредства.ЦельВыдачи,
	|		ЕСТЬNULL(ДенежныеСредства.Сумма, 0) КАК Сумма,
	|		ЕСТЬNULL(ДенежныеСредства.СуммаРегл, 0) КАК СуммаРегл
	|	ИЗ
	|		АвансовыйОтчетНаПечатьВТ3
	|		
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|			РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц КАК ДенежныеСредства
	|		ПО
	|			ДенежныеСредства.Регистратор = АвансовыйОтчетНаПечатьВТ3.Ссылка
	|			И ДенежныеСредства.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
	|			И ДенежныеСредства.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
	|			И ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ
	|		ДанныеДокумента.АвансовыйОтчет КАК Ссылка,
	|		ДенежныеСредства.Регистратор КАК Регистратор,
	|		ДенежныеСредства.Валюта,
	|		ДенежныеСредства.ЦельВыдачи,
	|		ДенежныеСредства.СуммаРасход КАК Сумма,
	|		ДенежныеСредства.СуммаРеглРасход КАК СуммаРегл
	|	ИЗ
	|		РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц.Обороты(,, Регистратор) КАК ДенежныеСредства
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриобретениеТоваровУслуг КАК ДанныеДокумента
	|		ПО ДанныеДокумента.Ссылка = ДенежныеСредства.Регистратор
	|	ГДЕ
	|		ДанныеДокумента.АвансовыйОтчет В (&МассивДокументов)
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ
	|		ДанныеДокумента.АвансовыйОтчет КАК Ссылка,
	|		ДенежныеСредства.Регистратор КАК Регистратор,
	|		ДенежныеСредства.Валюта,
	|		ДенежныеСредства.ЦельВыдачи,
	|		-ДенежныеСредства.СуммаОборот КАК Сумма,
	|		-ДенежныеСредства.СуммаРеглОборот КАК СуммаРегл
	|	ИЗ
	|		РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц.Обороты(,, Регистратор) КАК ДенежныеСредства
	|			ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Бронирование КАК ДанныеДокумента
	|				ПО ДанныеДокумента.Ссылка = ДенежныеСредства.Регистратор
	|			ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|				АвансовыйОтчетНаПечатьВТ3 КАК АвансовыйОтчетНаПечатьВТ3
	|			ПО
	|				ДенежныеСредства.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
	|					И ДенежныеСредства.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
	|					И ДенежныеСредства.ПодотчетноеЛицо = АвансовыйОтчетНаПечатьВТ3.ПодотчетноеЛицо
	|	ГДЕ
	|		ДанныеДокумента.АвансовыйОтчет В (&МассивДокументов)
	|		
	//++ Локализация
	
	
	//-- Локализация
	|	) КАК Израсходовано
	|;
	|////////////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ // 5 Остатки
	|	АвансовыйОтчетНаПечатьВТ3.Ссылка,
	|	ДенежныеСредства.Организация,
	|	ДенежныеСредства.ПодотчетноеЛицо,
	|	ДенежныеСредства.ЦельВыдачи,
	|	ДенежныеСредства.Валюта,
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА
	|			ДенежныеСредства.Сумма
	|		ИНАЧЕ
	|			-ДенежныеСредства.Сумма
	|	КОНЕЦ) КАК СуммаКонечныйОстаток,
	|	СУММА(ВЫБОР
	|		КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА
	|			ДенежныеСредства.СуммаРегл
	|		ИНАЧЕ
	|			-ДенежныеСредства.СуммаРегл
	|	КОНЕЦ) КАК СуммаРеглКонечныйОстаток,
	|	СУММА(ВЫБОР КОГДА ДенежныеСредства.Период <= АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет 
	|					ИЛИ АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет = ДАТАВРЕМЯ(1, 1, 1)
	|						И ТИПЗНАЧЕНИЯ(ДенежныеСредства.Регистратор) В (&РегистраторыНачальногоОстатка)
	|		ТОГДА ВЫБОР
	|				КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
	|					ТОГДА ДенежныеСредства.Сумма
	|				ИНАЧЕ -ДенежныеСредства.Сумма
	|			КОНЕЦ
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК СуммаНачальныйОстаток,
	|	СУММА(ВЫБОР КОГДА ДенежныеСредства.Период <= АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет 
	|					ИЛИ АвансовыйОтчетНаПечатьВТ3.ДатаПредыдущийОтчет = ДАТАВРЕМЯ(1, 1, 1)
	|						И ТИПЗНАЧЕНИЯ(ДенежныеСредства.Регистратор) В (&РегистраторыНачальногоОстатка)
	|		ТОГДА ВЫБОР
	|				КОГДА ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
	|					ТОГДА ДенежныеСредства.СуммаРегл
	|				ИНАЧЕ -ДенежныеСредства.СуммаРегл
	|			КОНЕЦ
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК СуммаРеглНачальныйОстаток
	|ПОМЕСТИТЬ ОстаткиПредварительные
	|ИЗ
	|	АвансовыйОтчетНаПечатьВТ3
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц КАК ДенежныеСредства
	|	ПО
	|		ДенежныеСредства.Организация = АвансовыйОтчетНаПечатьВТ3.Организация
	|		И ДенежныеСредства.Подразделение = АвансовыйОтчетНаПечатьВТ3.Подразделение
	|		И ДенежныеСредства.ПодотчетноеЛицо = АвансовыйОтчетНаПечатьВТ3.ПодотчетноеЛицо
	|		И (ДенежныеСредства.Период <= АвансовыйОтчетНаПечатьВТ3.ДатаТекущийОтчет
	|			ИЛИ ДенежныеСредства.Регистратор = АвансовыйОтчетНаПечатьВТ3.Ссылка)
	|ГДЕ
	|	НЕ ДенежныеСредства.Регистратор ССЫЛКА Документ.РасчетКурсовыхРазниц
	|СГРУППИРОВАТЬ ПО
	|	АвансовыйОтчетНаПечатьВТ3.Ссылка,
	|	ДенежныеСредства.Организация,
	|	ДенежныеСредства.ПодотчетноеЛицо,
	|	ДенежныеСредства.ЦельВыдачи,
	|	ДенежныеСредства.Валюта
	|;
	|////////////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ // 6 
	|	Остатки.Ссылка,
	|	Остатки.Организация,
	|	Остатки.ПодотчетноеЛицо,
	|	Остатки.Валюта,
	|	Остатки.ЦельВыдачи,
	|	СУММА(ВЫБОР
	|		КОГДА ЕСТЬNULL(Остатки.СуммаКонечныйОстаток, 0) > 0 
	|			ТОГДА Остатки.СуммаКонечныйОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК КонечныйОстаток,
	|	СУММА(ВЫБОР
	|		КОГДА ЕСТЬNULL(Остатки.СуммаКонечныйОстаток, 0) < 0 
	|			ТОГДА -Остатки.СуммаКонечныйОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК КонечныйПерерасход,
	|	СУММА(ВЫБОР
	|		КОГДА ЕСТЬNULL(Остатки.СуммаРеглКонечныйОстаток, 0) > 0 
	|			ТОГДА Остатки.СуммаРеглКонечныйОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК КонечныйОстатокРегл,
	|	СУММА(ВЫБОР
	|		КОГДА ЕСТЬNULL(Остатки.СуммаРеглКонечныйОстаток, 0) < 0 
	|			ТОГДА -Остатки.СуммаРеглКонечныйОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК КонечныйПерерасходРегл,
	|	СУММА(ВЫБОР
	|		КОГДА ЕСТЬNULL(Остатки.СуммаНачальныйОстаток, 0) > 0 
	|			ТОГДА Остатки.СуммаНачальныйОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК НачальныйОстаток,
	|	СУММА(ВЫБОР
	|		КОГДА ЕСТЬNULL(Остатки.СуммаНачальныйОстаток, 0) < 0 
	|			ТОГДА -Остатки.СуммаНачальныйОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК НачальныйПерерасход,
	|	СУММА(ВЫБОР
	|		КОГДА ЕСТЬNULL(Остатки.СуммаРеглНачальныйОстаток, 0) > 0 
	|			ТОГДА Остатки.СуммаРеглНачальныйОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК НачальныйОстатокРегл,
	|	СУММА(ВЫБОР
	|		КОГДА ЕСТЬNULL(Остатки.СуммаРеглНачальныйОстаток, 0) < 0 
	|			ТОГДА -Остатки.СуммаРеглНачальныйОстаток
	|		ИНАЧЕ 0
	|	КОНЕЦ) КАК НачальныйПерерасходРегл
	|ПОМЕСТИТЬ ТекущийАвансВрем
	|ИЗ
	|	ОстаткиПредварительные КАК Остатки
	|СГРУППИРОВАТЬ ПО
	|	Остатки.Ссылка,
	|	Остатки.Организация,
	|	Остатки.ПодотчетноеЛицо,
	|	Остатки.ЦельВыдачи,
	|	Остатки.Валюта
	|;
	|////////////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ // 7
	|	ТекущийАвансВрем.Ссылка,
	|	ТекущийАвансВрем.Валюта,
	|	ТекущийАвансВрем.ЦельВыдачи,
	|	СУММА(ТекущийАвансВрем.КонечныйОстаток),
	|	СУММА(ТекущийАвансВрем.КонечныйПерерасход),
	|	СУММА(ТекущийАвансВрем.КонечныйОстатокРегл),
	|	СУММА(ТекущийАвансВрем.КонечныйПерерасходРегл),
	|	СУММА(ТекущийАвансВрем.НачальныйОстаток),
	|	СУММА(ТекущийАвансВрем.НачальныйПерерасход),
	|	СУММА(ТекущийАвансВрем.НачальныйОстатокРегл),
	|	СУММА(ТекущийАвансВрем.НачальныйПерерасходРегл)
	|ПОМЕСТИТЬ Остатки
	|ИЗ
	|	ТекущийАвансВрем
	|СГРУППИРОВАТЬ ПО
	|	ТекущийАвансВрем.Ссылка,
	|	ТекущийАвансВрем.Валюта,
	|	ТекущийАвансВрем.ЦельВыдачи
	|ИМЕЮЩИЕ 
	|	 СУММА(ТекущийАвансВрем.КонечныйОстаток) <> 0
	|	 ИЛИ СУММА(ТекущийАвансВрем.КонечныйПерерасход) <> 0
	|	 ИЛИ СУММА(ТекущийАвансВрем.НачальныйОстаток) <> 0
	|	 ИЛИ СУММА(ТекущийАвансВрем.НачальныйПерерасход) <> 0
	|;
	|////////////////////////////////////////////////////////////////////////////////
	|
	|ВЫБРАТЬ // 8
	|	ДанныеШапки.Ссылка КАК Ссылка,
	|	ДанныеШапки.Ссылка.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета,
	|	ДанныеШапки.Валюта КАК Валюта,
	|	ДанныеШапки.ЦельВыдачи КАК ЦельВыдачи,
	|	СУММА(ДанныеШапки.СуммаВыданоНаличными)   КАК СуммаВыданоНаличными,
	|	СУММА(ДанныеШапки.СуммаВыданоКартой)      КАК СуммаВыданоКартой,
	|	СУММА(ДанныеШапки.СуммаВозвращено)        КАК СуммаВозвращено,
	|	СУММА(ДанныеШапки.КонечныйОстаток)        КАК КонечныйОстаток,
	|	СУММА(ДанныеШапки.КонечныйПерерасход)     КАК КонечныйПерерасход,
	|	СУММА(ДанныеШапки.СуммаИзрасходовано)     КАК СуммаИзрасходовано,
	|	СУММА(ДанныеШапки.НачальныйОстаток)       КАК НачальныйОстаток,
	|	СУММА(ДанныеШапки.НачальныйПерерасход)    КАК НачальныйПерерасход,
	|	СУММА(ДанныеШапки.СуммаВыданоНаличнымиРегл)   КАК СуммаВыданоНаличнымиРегл,
	|	СУММА(ДанныеШапки.СуммаВыданоКартойРегл)      КАК СуммаВыданоКартойРегл,
	|	СУММА(ДанныеШапки.СуммаВозвращеноРегл)        КАК СуммаВозвращеноРегл,
	|	СУММА(ДанныеШапки.КонечныйОстатокРегл)        КАК КонечныйОстатокРегл,
	|	СУММА(ДанныеШапки.КонечныйПерерасходРегл)     КАК КонечныйПерерасходРегл,
	|	СУММА(ДанныеШапки.СуммаИзрасходованоРегл)     КАК СуммаИзрасходованоРегл,
	|	СУММА(ДанныеШапки.НачальныйОстатокРегл)       КАК НачальныйОстатокРегл,
	|	СУММА(ДанныеШапки.НачальныйПерерасходРегл)    КАК НачальныйПерерасходРегл
	|ПОМЕСТИТЬ ИмяВТ
	|ИЗ
	|(ВЫБРАТЬ
	|	Выдано.Ссылка КАК Ссылка,
	|	Выдано.Валюта КАК Валюта,
	|	Выдано.ЦельВыдачи КАК ЦельВыдачи,
	|	0                               КАК НачальныйОстаток,
	|	0                               КАК НачальныйПерерасход,
	|	Выдано.СуммаВыданоНаличными     КАК СуммаВыданоНаличными,
	|	Выдано.СуммаВыданоКартой        КАК СуммаВыданоКартой,
	|	Выдано.СуммаКонвертация         КАК СуммаКонвертация,
	|	Выдано.СуммаВозвращено          КАК СуммаВозвращено,
	|	0                               КАК КонечныйОстаток,
	|	0                               КАК КонечныйПерерасход,
	|	0                               КАК СуммаИзрасходовано,
	|	0                               КАК НачальныйОстатокРегл,
	|	0                               КАК НачальныйПерерасходРегл,
	|	Выдано.СуммаВыданоНаличнымиРегл КАК СуммаВыданоНаличнымиРегл,
	|	Выдано.СуммаВыданоКартойРегл    КАК СуммаВыданоКартойРегл,
	|	Выдано.СуммаКонвертацияРегл     КАК СуммаКонвертацияРегл,
	|	Выдано.СуммаВозвращеноРегл      КАК СуммаВозвращеноРегл,
	|	0                               КАК КонечныйОстатокРегл,
	|	0                               КАК КонечныйПерерасходРегл,
	|	0                               КАК СуммаИзрасходованоРегл
	|ИЗ
	|	Выдано
	|ГДЕ
	|	Выдано.СуммаВыданоНаличными <> 0 ИЛИ Выдано.СуммаВыданоКартой <> 0 ИЛИ Выдано.СуммаКонвертация <> 0 ИЛИ Выдано.СуммаВозвращено <> 0
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	Остатки.Ссылка,
	|	Остатки.Валюта,
	|	Остатки.ЦельВыдачи КАК ЦельВыдачи,
	|	Остатки.НачальныйОстаток КАК НачальныйОстаток,
	|	Остатки.НачальныйПерерасход КАК НачальныйПерерасход,
	|	0 КАК СуммаВыданоНаличными,
	|	0 КАК СуммаВыданоКартой,
	|	0 КАК СуммаКонвертация,
	|	0 КАК СуммаВозвращено,
	|	Остатки.КонечныйОстаток КАК КонечныйОстаток,
	|	Остатки.КонечныйПерерасход КАК КонечныйПерерасход,
	|	0 КАК СуммаИзрасходовано,
	|	Остатки.НачальныйОстатокРегл КАК НачальныйОстатокРегл,
	|	Остатки.НачальныйПерерасходРегл КАК НачальныйПерерасходРегл,
	|	0 КАК СуммаВыданоНаличнымиРегл,
	|	0 КАК СуммаВыданоКартойРегл,
	|	0 КАК СуммаКонвертацияРегл,
	|	0 КАК СуммаВозвращеноРегл,
	|	Остатки.КонечныйОстатокРегл КАК КонечныйОстатокРегл,
	|	Остатки.КонечныйПерерасходРегл КАК КонечныйПерерасходРегл,
	|	0 СуммаИзрасходованоРегл
	|ИЗ
	|	Остатки
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	Израсходовано.Ссылка КАК Ссылка,
	|	Израсходовано.Валюта КАК Валюта,
	|	Израсходовано.ЦельВыдачи КАК ЦельВыдачи,
	|	0                               КАК НачальныйОстаток,
	|	0                               КАК НачальныйПерерасход,
	|	0 КАК СуммаВыданоНаличными,
	|	0 КАК СуммаВыданоКартой,
	|	0 КАК СуммаКонвертация,
	|	0 КАК СуммаВозвращено,
	|	0 КАК КонечныйОстаток,
	|	0 КАК КонечныйПерерасход,
	|	Израсходовано.СуммаИзрасходовано КАК СуммаИзрасходовано,
	|	0                               КАК НачальныйОстатокРегл,
	|	0                               КАК НачальныйПерерасходРегл,
	|	0 КАК СуммаВыданоНаличнымиРегл,
	|	0 КАК СуммаВыданоКартойРегл,
	|	0 КАК СуммаКонвертацияРегл,
	|	0 КАК СуммаВозвращеноРегл,
	|	0 КАК КонечныйОстатокРегл,
	|	0 КАК КонечныйПерерасходРегл,
	|	Израсходовано.СуммаИзрасходованоРегл СуммаИзрасходованоРегл
	|ИЗ
	|	Израсходовано) КАК ДанныеШапки
	|СГРУППИРОВАТЬ ПО
	|	ДанныеШапки.Ссылка,
	|	ДанныеШапки.Валюта,
	|	ДанныеШапки.ЦельВыдачи
	|
	|;
	|////////////////////////////////////////////////////////////////////////////////";
	
	Если ИмяВт = "" Тогда
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"ПОМЕСТИТЬ ИмяВТ","");
	Иначе
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"ПОМЕСТИТЬ ИмяВТ",СтрШаблон("ПОМЕСТИТЬ %1",ИмяВт));
	КонецЕсли;
	
	Возврат ТекстЗапроса
	
КонецФункции

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

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

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

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

	ИсточникиДанных = Новый Соответствие;

	Возврат ИсточникиДанных; 

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

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

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

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

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

Процедура ИнициализироватьКлючиАналитикиУчетаПоПартнерам(Запрос)

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

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

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

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

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

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

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

	Пока Выборка.Следующий() Цикл

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

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

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

	Пока Выборка.Следующий() Цикл

		НоваяСтрока = РазделеннаяСтрокаРасхода.Добавить();
		ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
		НоваяСтрока.СуммаУпр = НоваяСтрока.Сумма * НоваяСтрока.КоэффициентПересчетаУпр;
		НоваяСтрока.СуммаРегл = НоваяСтрока.Сумма * НоваяСтрока.КоэффициентПересчетаРегл;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функция ТекстЗапросаВременнаяТаблицаИзрасходованоВСвязанныхДокументах(Запрос, ТекстыЗапроса)

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


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

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

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

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

Процедура ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры)
	
	#Область КурсыВалютДокумента

	ИмяРегистра = "ВременнаяТаблицаКурсыВалютДокумента";

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

	ТекстЗапросаКурсыВалютДокумента = ВзаиморасчетыСервер.ПолучитьТаблицуКурсовВалютНаправленийДеятельности(ТекстЗапросаКурсыВалютДокумента);

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

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

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

#Область СозданиеНаОсновании

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

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

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

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

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

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

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

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

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

	АвансовыйОтчетЛокализация.ДобавитьКомандыПечати(КомандыПечати);

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

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	АвансовыйОтчетЛокализация.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
	
КонецПроцедуры

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


	//-- Локализация
	|";
	
	Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
	Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
	
КонецФункции

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

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

#КонецЕсли

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