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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ПараметрыУказанияСерий.ОперацияДокумента = Объект.ХозяйственнаяОперация;
	
	Возврат ПараметрыУказанияСерий;
	
КонецФункции

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

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


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

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

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

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

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

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

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

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

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

	УстановитьПривилегированныйРежим(Истина);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура ОформитьПоступлениеТоваровПоОдноходовке(Запрос, ТекстыЗапроса, Регистры)

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

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

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

	ТекстЦенности = СтрЗаменить(
		ТекстЦенности,
		"&ТекстЗапросаЕдиницаИзмерения",
		Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
			"Ссылка",
			"ВидыЗапасов.Упаковка",
			"ВидыЗапасов.Номенклатура"));

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура УстановитьПараметр(ОбластьМакета, ИмяПараметра, ЗначениеПараметра)
	ОбластьМакета.Параметры.Заполнить(Новый Структура(ИмяПараметра, ЗначениеПараметра));
КонецПроцедуры

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

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

	Если ПривилегированныйРежим() Тогда
		УстановитьПривилегированныйРежим(Ложь);
	КонецЕсли;
	
	Возврат ТабличныйДокумент;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область Заполнение

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

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

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

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

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

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

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

// Заполняет данные по маркам
// 
// Параметры:
// 	Товары - ТаблицаЗначений - данные по товарам
// 	ТаблицаШтрихкодыУпаковок - ТаблицаЗначений - найденные отгруженные марки
// 	ШтрихкодыУпаковок - ТаблицаЗначений - результат.
Процедура ЗаполнитьШтрихкодыУпаковок(Товары, ТаблицаШтрихкодыУпаковок, ШтрихкодыУпаковок)
	//++ Локализация
	Для Каждого Строка Из Товары Цикл

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

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

#КонецЕсли

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