Отчет комиссионера (агента) о продажах / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

		Возврат КомандаСоздатьНаОсновании;
	КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

//++ НЕ УТ

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

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

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

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

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

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

//-- НЕ УТ
#Область УчетНДС

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область Серии

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

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

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

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

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

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

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

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

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

//Возвращает текст запроса переданных товаров
//
// Возвращаемое значение:
//  Строка - 
//
Функция ТекстЗапросаТоварыПереданные() Экспорт

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

	Возврат ТекстЗапроса;

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

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

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

#КонецОбласти
//-- НЕ УТ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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