Отчет по комиссии между организациями о списании / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//++ НЕ УТ

// Функция возвращает текст запроса для отражения документа в регламентированном учете.
//
// Возвращаемое значение:
//	Строка - Текст запроса
//
Функция ТекстОтраженияВРеглУчете() Экспорт

	Возврат ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.ТекстОтраженияВРеглУчете();

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

// Функция возвращает текст запроса дополнительных временных таблиц,
// необходимых для отражения в регламентированном учете.
//
// Возвращаемое значение:
//	Строка - текст запроса создания временных таблиц.
//
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт

	Возврат ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();

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

//-- НЕ УТ

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

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

	ОтчетПоКомиссииМеждуОрганизациямиОСписанииЛокализация.ДобавитьКомандыПечати(КомандыПечати);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область ПартионныйУчет

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

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

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

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

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

	Возврат ОписаниеОпераций;
	
КонецФункции

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

#Область Состояние

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

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

// Осуществляет инициализацию структуры состояния расчетов.
Функция СтруктураСостоянияРасчетовПолучатель()
	
	СтруктураСостоянияРасчетов = Новый Структура;
	СтруктураСостоянияРасчетов.Вставить("СуммаОплатыПолучатель", 0);
	СтруктураСостоянияРасчетов.Вставить("СуммаПоступления", 0);
	СтруктураСостоянияРасчетов.Вставить("ПроцентОплатыПолучатель", 0);
	СтруктураСостоянияРасчетов.Вставить("ПроцентПоступления", 0);
	СтруктураСостоянияРасчетов.Вставить("СуммаПросроченнойОплатыПолучатель", 0);
	СтруктураСостоянияРасчетов.Вставить("СуммаДолгаПолучатель", 0);
	СтруктураСостоянияРасчетов.Вставить("ПроцентДолгаПолучатель", 0);
	СтруктураСостоянияРасчетов.Вставить("СуммаКОплатеПолучатель", 0);
	
	Возврат СтруктураСостоянияРасчетов
	
КонецФункции

// Осуществляет инициализацию структуры состояния расчетов.
//
Функция СтруктураСостоянияРасчетовОтправитель()
	
	СтруктураСостоянияРасчетов = Новый Структура;
	СтруктураСостоянияРасчетов.Вставить("СуммаОплатыОтправитель", 0);
	СтруктураСостоянияРасчетов.Вставить("СуммаОтгрузки", 0);
	СтруктураСостоянияРасчетов.Вставить("ПроцентОплатыОтправитель", 0);
	СтруктураСостоянияРасчетов.Вставить("ПроцентОтгрузки", 0);
	СтруктураСостоянияРасчетов.Вставить("СуммаПросроченнойОплатыОтправитель", 0);
	СтруктураСостоянияРасчетов.Вставить("СуммаДолгаОтправитель", 0);
	СтруктураСостоянияРасчетов.Вставить("ПроцентДолгаОтправитель", 0);
	СтруктураСостоянияРасчетов.Вставить("СуммаКОплатеОтправитель", 0);
	
	Возврат СтруктураСостоянияРасчетов
	
КонецФункции

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

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

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

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

#КонецЕсли

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