Приобретение услуг и прочих активов / Модуль менеджера

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

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

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

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

	МеханизмыДокумента.Добавить("ОборотныеРегистрыУправленческогоУчета");
	МеханизмыДокумента.Добавить("РасчетыСПодотчетниками");
	МеханизмыДокумента.Добавить("РеестрДокументов");
	МеханизмыДокумента.Добавить("СебестоимостьИПартионныйУчет");
	МеханизмыДокумента.Добавить("СуммыДокументовВВалютахУчета");
	МеханизмыДокумента.Добавить("УчетДоходовРасходов");
	МеханизмыДокумента.Добавить("УчетНДС");
	МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
	МеханизмыДокумента.Добавить("ИсправлениеДокументов");

	ПриобретениеУслугПрочихАктивовЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

	Возврат Неопределено;
КонецФункции

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

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

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

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

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

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


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

	Возврат ПараметрыВыбора;
	
КонецФункции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Функция ЗначенияПараметровПроведения(Реквизиты = Неопределено)

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

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

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

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

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

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

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

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

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

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

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

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

Процедура СформироватьСуммыДокументаВВалютахУчета(Запрос, ТекстыЗапроса, Регистры = Неопределено) Экспорт

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

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

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

	ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
	Возврат ТекстЗапроса;

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

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

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

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

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

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

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

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


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

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

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

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

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

	ВзаиморасчетыСервер.ПроведениеЗакупки(Запрос, ТекстыЗапроса, Регистры, ТекстЗакупка, ТекстПланОплаты, ТекстЗачетАванса, ТекстТовары);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

#КонецЕсли

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