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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
	
	Возврат ТекстЗапроса;
	
КонецФункции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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