Взаимозачет задолженности / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// 1. Организация - КонтрагентДт - ОбъектРасчетовДт - Расход - СуммаДт - РасчетыСКлиентом
// 2. Организация - КонтрагентКт - ОбъектРасчетовКт - Расход - -СуммаКт - РасчетыСКлиентом
// 3. КонтрагентДт(Орг) - КонтрагентКт - ОбъектРасчетовДтКт - Расход - СуммаКт - РасчетыСКлиентом
// 4. КонтрагентКт(Орг) - КонтрагентДт(Не орг) - ОбъектРасчетовДтКт - Приход - СуммаДт - РасчетыСПоставщиком.
//
Функция ТекстЗапросаВтРасчетыСКлиентамиПредварительная()

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

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

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

// Объединяем предварительные расчеты с зеркальными по интеркампани
Функция ТекстЗапросаВтРасчетыСКлиентами()

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

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

Функция ТекстЗапросаРасчетыСКлиентами()

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

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

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

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

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

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

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

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

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

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

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

Функция СуммаВзаиморасчетов(ИтогоВВалюте, СуммаРегл)
	
	СуммаВзаиморасчетов = ИтогоВВалюте.СуммаВзаиморасчетов;
	СуммаВзаиморасчетовРегл = ИтогоВВалюте.СуммаРегл;
	
	СуммаКСписанию = ВзаиморасчетыСервер.СписатьСуммуПропорционально(СуммаВзаиморасчетов, СуммаРегл, СуммаВзаиморасчетовРегл);
	
	ИтогоВВалюте.СуммаВзаиморасчетов = ИтогоВВалюте.СуммаВзаиморасчетов - СуммаКСписанию;
	ИтогоВВалюте.СуммаРегл = ИтогоВВалюте.СуммаРегл - СуммаРегл;
	
	Возврат СуммаКСписанию;
	
КонецФункции

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

Функция ОтправительКредит(ВидОперации)
	
	Возврат
		ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ПереносАвансаКлиентаОрганизацияКонтрагент
			ИЛИ ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ПереносАвансаКлиентаМеждуКонтрагентами
			ИЛИ ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ПереносАвансаКлиентаМеждуОрганизациями
			ИЛИ ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ПереносАвансаКлиентаМеждуДвумяОрганизациями
			ИЛИ ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ОплатаПодарочнымСертификатом
			ИЛИ ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ПереносДолгаПоставщикуОрганизацияКонтрагент
			ИЛИ ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ПереносДолгаПоставщикуМеждуКонтрагентами
			ИЛИ ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ПереносДолгаПоставщикуМеждуОрганизациями
			ИЛИ ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ПереносДолгаПоставщикуМеждуДвумяОрганизациями
			ИЛИ ВидОперации = Перечисления.ВидыОперацийВзаимозачетаЗадолженности.ОтражениеОплатыЧерезКомиссионера;
	
КонецФункции

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

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

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

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

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

// Формирует печатные формы.
//
// Параметры:
//  МассивОбъектов  - Массив Из ДокументСсылка- ссылки на объекты, которые нужно распечатать.
//  ПараметрыПечати - Структура - дополнительные настройки печати.
//  КоллекцияПечатныхФорм - ТаблицаЗначений - сформированные табличные документы (выходной параметр)
//  ОбъектыПечати         - СписокЗначений из ДокументСсылка - значение - ссылка на объект;
//                                            представление - имя области в которой был выведен объект (выходной параметр).
//  ПараметрыВывода       - Структура       - дополнительные параметры сформированных табличных документов (выходной параметр).
//
//@skip-check doc-comment-description-ends-on-dot
//@skip-check module-empty-method
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
КонецПроцедуры

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

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

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

		ДанныеОбъектаПоМакетам = Новый Структура;
		Для Каждого ИмяМакета Из МассивИменМакетов Цикл
			ДанныеОбъектаПоМакетам.Вставить(ИмяМакета, ДанныеОбъекта);
		КонецЦикла;
		ДанныеПоВсемОбъектам.Вставить(Выборка.Ссылка, ДанныеОбъектаПоМакетам);
	КонецЦикла;
	
	Возврат ДанныеПоВсемОбъектам;
	
КонецФункции

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

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

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

КонецФункции
//++ Локализация

// Получить описание областей взаимозачет задолженности.
// 
// Возвращаемое значение:
//  Структура - Получить описание областей взаимозачет задолженности
Функция ПолучитьОписаниеОбластейВзаимозачетЗадолженности()

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

КонецФункции
//-- Локализация

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

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

#Область ШаблоныСообщений

// Вызывается при подготовке шаблонов сообщений и позволяет переопределить список реквизитов и вложений.
//
// Параметры:
//  Реквизиты               - ДеревоЗначений - список реквизитов шаблона:
//         * Имя            - Строка - Уникальное имя общего реквизита.
//         * Представление  - Строка - Представление общего реквизита.
//         * Тип            - Тип    - Тип реквизита. По умолчанию строка.
//         * Формат         - Строка - Формат вывода значения для чисел, дат, строк и булевых значений.
//  Вложения                - ТаблицаЗначений - печатные формы и вложения:
//         * Имя            - Строка - Уникальное имя вложения.
//         * Представление  - Строка - Представление варианта.
//         * ТипФайла       - Строка - Тип вложения, который соответствует расширению файла: "pdf", "png", "jpg", mxl"
//                                      и др.
//  ДополнительныеПараметры - Структура - дополнительные сведения о шаблоне сообщений.
//
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
	
КонецПроцедуры

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

// Заполняет список получателей SMS при отправке сообщения сформированного по шаблону.
//
// Параметры:
//   ПолучателиSMS - ТаблицаЗначений - список получается SMS:
//     * НомерТелефона - Строка - номер телефона, куда будет отправлено сообщение SMS.
//     * Представление - Строка - представление получателя сообщения SMS.
//     * Контакт       - СправочникСсылка - контакт, которому принадлежит номер телефона.
//  ПредметСообщения - ЛюбаяСсылка - ссылка на объект являющийся источником данных.
//
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
	
КонецПроцедуры

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

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

#Область ОбновлениеИнформационнойБазы



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

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

#КонецЕсли

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