Отчет о розничных возвратах / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Возврат ПараметрыУказанияСерий;
	
КонецФункции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ТекстЗапроса = "
	|ВЫБРАТЬ
	|	ТаблицаТовары.НомерСтроки КАК НомерСтроки,
	|	ТаблицаТовары.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
	|	ТаблицаТовары.АналитикаУчетаНоменклатуры.Назначение.НаправлениеДеятельности КАК НаправлениеДеятельности,
	|	ТаблицаТовары.АналитикаУчетаНаборов КАК АналитикаУчетаНаборов,
	|	ТаблицаТовары.Продавец КАК Продавец,
	|	ТаблицаТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	|	ТаблицаТовары.Номенклатура КАК Номенклатура,
	|	ТаблицаТовары.Характеристика КАК Характеристика,
	|	ТаблицаТовары.Партнер КАК Партнер,
	|	ТаблицаТовары.Количество КАК Количество,
	|	ТаблицаТовары.КоличествоПоРНПТ КАК КоличествоПоРНПТ,
	|	РегистрАналитикаУчетаПоПартнерам.КлючАналитики КАК АналитикаУчетаПоПартнерам,
	
	|	ЕстьNULL(Суммы.СуммаСНДСУпр, 0)                                  КАК СуммаСНДСУпр,
	|	ЕстьNULL(Суммы.СуммаБезНДСУпр, 0)                                КАК СуммаБезНДСУпр,
	|	ЕстьNULL(Суммы.СуммаБезНДСРегл, 0)                               КАК СуммаБезНДСРегл,
	|	ЕстьNULL(Суммы.СуммаСНДСРегл, 0)                                 КАК СуммаСНДСРегл,
	|	ЕстьNULL(Суммы.БазаНДСРегл, 0)                                   КАК БазаНДСРегл,
	|	ЕстьNULL(Суммы.СуммаНДСРегл, 0)                                  КАК СуммаНДСРегл,
	
	|	(ТаблицаТовары.Сумма
	|		+ &ЦенаВключаетНДС * ТаблицаТовары.СуммаНДС) КАК СуммаСНДС,
	|	ТаблицаТовары.СуммаНДС КАК СуммаНДС,
	|	ТаблицаТовары.Сумма КАК Сумма,
	|	ТаблицаТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
	|	ТаблицаТовары.СтавкаНДС         КАК СтавкаНДС,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функция ОписаниеОперацийУчетаВыручки(Документ) Экспорт
	
	ОписаниеОпераций = Новый Массив;
	
	Возврат ОписаниеОпераций;
	
КонецФункции

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

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

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

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

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

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

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

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

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

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

//++ Локализация

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

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

//-- Локализация

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

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

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

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

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

#КонецЕсли

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