Реализация товаров и услуг / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

					Иначе
						СтрокаТаб = Товары.Добавить();
						ЗаполнитьЗначенияСвойств(СтрокаТаб, ОтгруженнаяСтрока);
						СтрокаТаб.Количество = ОтгруженнаяСтрока.Количество;
						СтрокаТаб.КоличествоУпаковок = ОтгруженнаяСтрока.Количество;
					КонецЕсли;
					
				КонецЕсли;
				
			КонецЕсли;
		КонецЦикла;
		
		ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
			ОбрабатываемыеСтроки,
			СтруктураДействий,
			Товары,
			КэшированныеЗначения);
		
	КонецЕсли;
	
КонецПроцедуры

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

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

// Возвращает значение распоряжения на поступление или отгрузку.
//
// Параметры:
//  ЗначенияПолейДляОпределенияРаспоряжения - Структура - состав полей определяется значением
//  поля ИменаПолейДляОпределенияРаспоряжения параметров указания серий этого документа.
//
// Возвращаемое значение:
//  ДокументСсылка, Неопределено - ссылка на распоряжение для выполнения складской операции.
//
Функция РаспоряжениеНаВыполнениеСкладскойОперации(ЗначенияПолейДляОпределенияРаспоряжения) Экспорт
	Если ЗначенияПолейДляОпределенияРаспоряжения.Товары_КодСтроки <> 0 Тогда 
		Возврат ЗначенияПолейДляОпределенияРаспоряжения.Товары_ЗаказКлиента;
	Иначе
		Возврат Неопределено;
	КонецЕсли;
КонецФункции

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

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

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

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

	Возврат ТекстЗапросаВтТаблицаВидыЗапасов(Запрос, ТекстыЗапроса, ДокументОбъект);
	
КонецФункции 

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

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

#Область ОснованиеДляПечати

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

// Возвращает таблицу значений по умолчанию для реквизита "Основание"
//
// Параметры:
//	Объект - ДанныеФормыСтруктура, ДокументОбъект.РеализацияТоваровУслуг - Объект документа, по которому необходимо получить список выбора.
//
// Возвращаемое значение:
//	ТаблицаЗначений - Таблица значений с реквизитами оснований.
//
Функция ТаблицаОснованийДляПечати(Объект) Экспорт
	
	ЭтоПередачаНаКомиссию = (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
	РеализацияЧерезКомиссионера = КомиссионнаяТорговляСервер.РеализацияЧерезКомиссионера(Объект.ХозяйственнаяОперация);
	
	ТаблицаОснований = Новый ТаблицаЗначений;
	ТаблицаОснований.Колонки.Добавить("Основание",      Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(300)));
	ТаблицаОснований.Колонки.Добавить("ОснованиеДата",  Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата))); 
	ТаблицаОснований.Колонки.Добавить("ОснованиеНомер", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(128)));
	
	Если РеализацияЧерезКомиссионера Тогда
		ДобавленнаяСтрока = ТаблицаОснований.Добавить();
		ДобавленнаяСтрока.Основание = НСтр("ru='Реализация'");
		Возврат ТаблицаОснований;
	КонецЕсли;
	
	СтруктураОснования = СтруктураОснования(Объект, Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов);
	Если ЗначениеЗаполнено(СтруктураОснования.Основание) Тогда
		ДобавленнаяСтрока = ТаблицаОснований.Добавить();
		ЗаполнитьЗначенияСвойств(ДобавленнаяСтрока, СтруктураОснования);
		ДобавленнаяСтрока.Основание = СтруктураОснования.Основание + ?(ЭтоПередачаНаКомиссию, ", " + НСтр("ru='передача на комиссию'"), "");
		
		Если ЗначениеЗаполнено(СтруктураОснования.ОснованиеДата) И ЗначениеЗаполнено(СтруктураОснования.ОснованиеНомер) Тогда
			ТекстРасширенный = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = '%1 № %2 от %3'"),
					СтруктураОснования.Основание, СтруктураОснования.ОснованиеНомер, Формат(СтруктураОснования.ОснованиеДата, "ДЛФ=DD"));
			ТекстРасширенный = ТекстРасширенный + ?(ЭтоПередачаНаКомиссию, ", " + НСтр("ru='передача на комиссию'"), "");
			ДобавленнаяСтрока = ТаблицаОснований.Добавить();
			ЗаполнитьЗначенияСвойств(ДобавленнаяСтрока, СтруктураОснования);
			ДобавленнаяСтрока.Основание = ТекстРасширенный;
		КонецЕсли;
		
	КонецЕсли;
	
	СтруктураОснования = СтруктураОснования(Объект, Перечисления.ПорядокРасчетов.ПоЗаказам);
	Если ЗначениеЗаполнено(СтруктураОснования.Основание) Тогда
		ДобавленнаяСтрока = ТаблицаОснований.Добавить();
		ЗаполнитьЗначенияСвойств(ДобавленнаяСтрока, СтруктураОснования);
		ДобавленнаяСтрока.Основание = СтруктураОснования.Основание + ?(ЭтоПередачаНаКомиссию, ", " + НСтр("ru='передача на комиссию'"), "");
	КонецЕсли;
	
	Если ЭтоПередачаНаКомиссию И ТаблицаОснований.Количество()=0 Тогда
		ДобавленнаяСтрока = ТаблицаОснований.Добавить();
		ДобавленнаяСтрока.Основание = НСтр("ru='Передача на комиссию'");
	КонецЕсли;
	
	Возврат ТаблицаОснований;
	
КонецФункции

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

//++ НЕ УТ

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

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

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

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

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

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

//-- НЕ УТ

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

#Область ПроверкиПриСменеСтатуса

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

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

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

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

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

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

#Область СостояниеВыполненияДокументов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//++ НЕ УТ
#Область ПодакцизныеТовары

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

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

//++ НЕ УТ
#Область НеоперативноеДопроведение

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

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

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

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

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

#КонецЕсли

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура ПолучитьДанныеДокумента(Запрос, ДокументСсылка)

	СписокЗапросов = Новый Массив;

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

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

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

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

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

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

Процедура ТекстЗапросаДанныеДокументаТаблицаЭтапыГрафикаОплаты(СписокЗапросов)

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

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

Процедура ТекстЗапросаДанныеДокументаТаблицаРасшифровкаПлатежа(СписокЗапросов)

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

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

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

Функция ТекстЗапросаВтТоварыОрганизаций(Запрос, ТекстыЗапроса, ДокументОбъект) Экспорт

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	#КонецОбласти
	
	ВзаиморасчетыСервер.ПроведениеРасчетыСКлиентамиПланОплат(Запрос, ТекстыЗапроса, Регистры, ТекстПланированиеОплат);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функция ТекстЗапросаВтБонусныеБаллы(Запрос, ТекстыЗапроса)
	
	ИмяРегистра = "ВтБонусныеБаллы";

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

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

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

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

#Область СозданиеНаОсновании

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Если НЕ ЭтоПартнер
		 И ПолучитьФункциональнуюОпцию("ИспользоватьУправлениеДоставкой") Тогда
		// Этикетки доставки
		КомандаПечати = КомандыПечати.Добавить();
		КомандаПечати.Обработчик = "УправлениеПечатьюУТКлиент.ПечатьЭтикетокДоставки";
		КомандаПечати.МенеджерПечати = "Обработка.ПечатьЭтикетокИЦенников.Печать";
		КомандаПечати.Идентификатор = "ЭтикеткаДоставки";
		КомандаПечати.Представление = НСтр("ru = 'Этикетки доставки'");
		КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
		КомандаПечати.Порядок = 38;
		КомандаПечати.УсловияВидимости.Добавить(УсловиеВидимостиПечатныхФормПереходПраваСобственности);
	КонецЕсли;
	
	Если НЕ ЭтоПартнер И Константы.ИспользоватьМеждународныеПечатныеФормы.Получить() Тогда
		// Invoice
		КомандаПечати = КомандыПечати.Добавить();
		КомандаПечати.Идентификатор = "InvoiceInt";
		КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
		КомандаПечати.Представление = НСтр("ru = 'Commercial invoice'");
		КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
		КомандаПечати.Порядок = 39;
	КонецЕсли;
	
	Если НЕ ЭтоПартнер 
		И НЕ ПолучитьФункциональнуюОпцию("ИспользоватьСчетаНаОплатуКлиентам")
		И Константы.ИспользоватьМеждународныеПечатныеФормы.Получить() Тогда
		// Proforma invoice
		КомандаПечати = КомандыПечати.Добавить();
		КомандаПечати.МенеджерПечати = "Обработка.ПечатьСчетовНаОплату";
		КомандаПечати.Идентификатор = "ProformaInvoiceEn";
		КомандаПечати.Представление = НСтр("ru = 'Proforma invoice (en)'");
		КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
		
	КонецЕсли;  
	
	//++ Локализация
	Если НЕ ЭтоПартнер Тогда
		КомандаПечати = ИнтеграцияСМаркетплейсамиСервер.ДобавитьКомандуПечатиЭтикеток(КомандыПечати);
		Если КомандаПечати <> Неопределено Тогда
			ХозяйственныеОперации = Новый СписокЗначений();
			ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности);
			ХозяйственныеОперации.Добавить(Перечисления.ХозяйственныеОперации.ПереходПраваСобственности);
			
			ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(КомандаПечати,
																"ХозяйственнаяОперация",
																ХозяйственныеОперации,
																ВидСравненияКомпоновкиДанных.ВСписке);
		КонецЕсли;
	КонецЕсли;
	//-- Локализация

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

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

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

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

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

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

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

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

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

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

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

	РеализацияТоваровУслугЛокализация.КомплектПечатныхФорм(КомплектПечатныхФорм);
	
	Возврат КомплектПечатныхФорм;
	
КонецФункции

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

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

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

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

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

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

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

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

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

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

Функция ДобавлятьКомандыПечатиКомплектаДокументов() Экспорт
	Возврат Не ПраваПользователяПовтИсп.ЭтоПартнер();
КонецФункции

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

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

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

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

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

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

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

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

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

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

// Формирует текст запроса, получающий график оплаты по документу
//
// Возвращаемое значение:
//   Строка   - сформированный текст запроса.
//
Функция ТекстЗапросаГрафикОплаты()

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

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

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

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

		ХозяйственныеОперацииРаспоряжений.Добавить(
			Перечисления.ХозяйственныеОперации.ВводОстатковОтгруженныхТоваров);
		
	ИначеЕсли ДанныеОтбора.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию  Тогда
		
		ХозяйственныеОперацииРаспоряжений.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
		ХозяйственныеОперацииРаспоряжений.Добавить(Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера);
		
	КонецЕсли;
	
	Запрос.УстановитьПараметр("ХозяйственныеОперацииРаспоряжений", ХозяйственныеОперацииРаспоряжений);
	
	ВариантОформления = Неопределено;
	ПараметрыЗаполнения.Свойство("ВариантОформления", ВариантОформления);
	
	МассивВариантовОформления = Новый Массив;
	Если ЗначениеЗаполнено(ВариантОформления) Тогда
		МассивВариантовОформления.Добавить(ВариантОформления);
	Иначе
		МассивВариантовОформления.Добавить(Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг);
		МассивВариантовОформления.Добавить(Перечисления.ВариантыОформленияПродажи.АктНаПередачуПрав);
	КонецЕсли;
	
	Запрос.УстановитьПараметр("МассивВариантовОформления", МассивВариантовОформления);
	
	РеализацияТоваровУслугЛокализация.УстановитьПараметрыОсобенностиУчетаНоменклатуры(ПараметрыЗаполнения, Запрос.Параметры);
		
	Если ТипЗнч(ДанныеОтбора) = Тип("Структура") 
		И ДанныеОтбора.Свойство("ТоварыРеализации") Тогда
		Запрос.УстановитьПараметр("ТоварыРеализации", ДанныеОтбора.ТоварыРеализации);
	Иначе
		ТоварыРеализации = Новый ТаблицаЗначений;
		ТоварыРеализации.Колонки.Добавить("ЗаказКлиента", Новый ОписаниеТипов("ДокументСсылка.ЗаказКлиента"));
		ТоварыРеализации.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
		ТоварыРеализации.Колонки.Добавить("Характеристика", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
		ТоварыРеализации.Колонки.Добавить("КодСтроки", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0)));
		ТоварыРеализации.Колонки.Добавить("Количество", ОбщегоНазначенияУТ.ОписаниеТипаКоличественногоПоля());
		ТоварыРеализации.Колонки.Добавить("СуммаВзаиморасчетов", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады"));
		ТоварыРеализации.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0)));
		ТоварыРеализации.Колонки.Добавить("Упаковка", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения"));
		ТоварыРеализации.Колонки.Добавить("Серия", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
		ТоварыРеализации.Колонки.Добавить("ВидЦены", Новый ОписаниеТипов("СправочникСсылка.ВидыЦен"));
		ТоварыРеализации.Колонки.Добавить("КоличествоВЗаказе", ОбщегоНазначенияУТ.ОписаниеТипаКоличественногоПоля());
		ТоварыРеализации.Колонки.Добавить("Цена", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("СтавкаНДС", Новый ОписаниеТипов("СправочникСсылка.СтавкиНДС"));
		ТоварыРеализации.Колонки.Добавить("Сумма", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("СуммаНДС", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("СуммаНДСРегл", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("СуммаНДСУпр", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("СуммаСНДС", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("ПроцентРучнойСкидки", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(5, 2)));
		ТоварыРеализации.Колонки.Добавить("СуммаРучнойСкидки", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("ПроцентАвтоматическойСкидки", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(5, 2)));
		ТоварыРеализации.Колонки.Добавить("СуммаАвтоматическойСкидки", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("СуммаБонусныхБалловКСписанию", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("СуммаБонусныхБалловКСписаниюВВалюте", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("СуммаНачисленныхБонусныхБалловВВалюте", ОбщегоНазначенияУТ.ОписаниеТипаДенежногоПоля());
		ТоварыРеализации.Колонки.Добавить("НоменклатураНабора", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
		ТоварыРеализации.Колонки.Добавить("ХарактеристикаНабора", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
		ТоварыРеализации.Колонки.Добавить("Подразделение", Новый ОписаниеТипов("СправочникСсылка.СтруктураПредприятия"));
		ТоварыРеализации.Колонки.Добавить("КлючСвязи", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0)));
		
		Запрос.УстановитьПараметр("ТоварыРеализации", ТоварыРеализации);
	КонецЕсли;
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ВЫРАЗИТЬ(ТоварыРеализации.КодСтроки КАК ЧИСЛО(10, 0)) КАК КодСтроки,
		|	ТоварыРеализации.ЗаказКлиента КАК ЗаказКлиента,
		|	ВЫРАЗИТЬ(ТоварыРеализации.Номенклатура КАК Справочник.Номенклатура) КАК Номенклатура,
		|	ВЫРАЗИТЬ(ТоварыРеализации.Характеристика КАК Справочник.ХарактеристикиНоменклатуры) КАК Характеристика,
		|	ТоварыРеализации.Количество КАК Количество,
		|	ВЫРАЗИТЬ(ТоварыРеализации.Склад КАК Справочник.Склады) КАК Склад,
		|	ТоварыРеализации.НомерСтроки КАК НомерСтроки,
		|	ВЫРАЗИТЬ(ТоварыРеализации.Упаковка КАК Справочник.УпаковкиЕдиницыИзмерения) КАК Упаковка,
		|	ТоварыРеализации.Серия КАК Серия,
		|	ТоварыРеализации.ВидЦены КАК ВидЦены,
		|	ТоварыРеализации.Цена КАК Цена,
		|	ТоварыРеализации.СтавкаНДС КАК СтавкаНДС,
		|	ТоварыРеализации.Сумма КАК Сумма,
		|	ТоварыРеализации.СуммаНДС КАК СуммаНДС,
		|	ТоварыРеализации.СуммаНДСРегл КАК СуммаНДСРегл,
		|	ТоварыРеализации.СуммаНДСУпр КАК СуммаНДСУпр,
		|	ТоварыРеализации.СуммаСНДС КАК СуммаСНДС,
		|	ТоварыРеализации.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
		|	ТоварыРеализации.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
		|	ТоварыРеализации.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
		|	ТоварыРеализации.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
		|	ТоварыРеализации.СуммаБонусныхБалловКСписанию КАК СуммаБонусныхБалловКСписанию,
		|	ТоварыРеализации.СуммаБонусныхБалловКСписаниюВВалюте КАК СуммаБонусныхБалловКСписаниюВВалюте,
		|	ТоварыРеализации.СуммаНачисленныхБонусныхБалловВВалюте КАК СуммаНачисленныхБонусныхБалловВВалюте,
		|	ТоварыРеализации.НоменклатураНабора КАК НоменклатураНабора,
		|	ТоварыРеализации.ХарактеристикаНабора КАК ХарактеристикаНабора,
		|	ТоварыРеализации.Подразделение КАК Подразделение,
		|	ТоварыРеализации.КлючСвязи КАК КлючСвязи
		|ПОМЕСТИТЬ ВтТоварыРеализации
		|ИЗ
		|	&ТоварыРеализации КАК ТоварыРеализации
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 1
		|ВЫБРАТЬ
		|	ВтТоварыРеализации.КодСтроки КАК КодСтроки,
		|	ВтТоварыРеализации.ЗаказКлиента КАК ЗаказКлиента,
		|	ВтТоварыРеализации.Номенклатура КАК Номенклатура,
		|	ВтТоварыРеализации.Характеристика КАК Характеристика,
		|	СУММА(ВтТоварыРеализации.Количество) КАК Количество,
		|	ВтТоварыРеализации.Серия КАК Серия,
		|	ВтТоварыРеализации.Упаковка КАК Упаковка
		|ПОМЕСТИТЬ ВтТоварыРеализацииПоЗаказу
		|ИЗ
		|	ВтТоварыРеализации КАК ВтТоварыРеализации
		|ГДЕ
		|	ВЫБОР
		|		КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|			ТОГДА ИСТИНА
		|		ИНАЧЕ
		|			ВтТоварыРеализации.КодСтроки <> 0
		|	КОНЕЦ
		|
		|СГРУППИРОВАТЬ ПО
		|	ВтТоварыРеализации.КодСтроки,
		|	ВтТоварыРеализации.ЗаказКлиента,
		|	ВтТоварыРеализации.Номенклатура,
		|	ВтТоварыРеализации.Характеристика,
		|	ВтТоварыРеализации.Серия,
		|	ВтТоварыРеализации.Упаковка
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 2
		|ВЫБРАТЬ
		|	&Регистратор КАК ЗаказКлиента,
		|	&ПорядокРасчетов КАК ПорядокРасчетов,
		|	ТоварыРеализации.Номенклатура КАК Номенклатура,
		|	ТоварыРеализации.Характеристика КАК Характеристика,
		|	ТоварыРеализации.КодСтроки КАК КодСтроки,
		|	ТоварыРеализации.Количество КАК Количество,
		|	ТоварыРеализации.Сумма КАК СуммаВзаиморасчетов,
		|	ТоварыРеализации.Склад КАК Склад,
		|	ТоварыРеализации.НомерСтроки КАК НомерСтроки,
		|	ТоварыРеализации.Упаковка КАК Упаковка,
		|	ТоварыРеализации.Серия КАК Серия,
		|	ТоварыРеализации.ВидЦены КАК ВидЦены,
		|	ТоварыРеализации.Количество КАК КоличествоВЗаказе,
		|	ТоварыРеализации.Цена КАК Цена,
		|	ТоварыРеализации.СтавкаНДС КАК СтавкаНДС,
		|	ТоварыРеализации.Сумма КАК Сумма,
		|	ТоварыРеализации.СуммаНДС КАК СуммаНДС,
		|	ТоварыРеализации.СуммаНДСРегл КАК СуммаНДСРегл,
		|	ТоварыРеализации.СуммаНДСУпр КАК СуммаНДСУпр,
		|	ТоварыРеализации.СуммаСНДС КАК СуммаСНДС,
		|	ТоварыРеализации.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
		|	ТоварыРеализации.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
		|	ТоварыРеализации.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
		|	ТоварыРеализации.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
		|	ТоварыРеализации.СуммаБонусныхБалловКСписанию КАК СуммаБонусныхБалловКСписанию,
		|	ТоварыРеализации.СуммаБонусныхБалловКСписаниюВВалюте КАК СуммаБонусныхБалловКСписаниюВВалюте,
		|	ТоварыРеализации.СуммаНачисленныхБонусныхБалловВВалюте КАК СуммаНачисленныхБонусныхБалловВВалюте,
		|	ТоварыРеализации.НоменклатураНабора КАК НоменклатураНабора,
		|	ТоварыРеализации.ХарактеристикаНабора КАК ХарактеристикаНабора,
		|	ТоварыРеализации.Подразделение КАК Подразделение,
		|	ТоварыРеализации.КлючСвязи КАК КлючСвязи,
		|	СправочникНоменклатуры.ТипНоменклатуры КАК ТипНоменклатуры,
		|	СправочникНоменклатуры.КодТНВЭД КАК КодТНВЭД,
		|	Склады.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|		И Склады.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата КАК ИспользуетсяОрдернаяСхемаПриОтгрузке
		|ПОМЕСТИТЬ ВтТоварыРеализацииБезЗаказа
		|ИЗ
		|	ВтТоварыРеализации КАК ТоварыРеализации
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатуры
		|		ПО (СправочникНоменклатуры.Ссылка = ТоварыРеализации.Номенклатура)
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
		|		ПО (Склады.Ссылка = ТоварыРеализации.Склад)
		|ГДЕ
		|	ТоварыРеализации.КодСтроки = 0
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 3
		|ВЫБРАТЬ
		|	ЗаказКлиента.Ссылка КАК Ссылка,
		|	ЗаказКлиента.ЭтоЗаказКакСчет КАК ЭтоЗаказКакСчет
		|ПОМЕСТИТЬ ВТЗаказы
		|ИЗ
		|	Документ.ЗаказКлиента КАК ЗаказКлиента
		|ГДЕ
		|	ВЫБОР
		|		КОГДА &ОтобратьПоЗаказу
		|			ТОГДА ЗаказКлиента.Ссылка В (&МассивЗаказов)
		|		ИНАЧЕ ЗаказКлиента.Партнер = &Партнер
		|			И ЗаказКлиента.Контрагент = &Контрагент
		|			И (ЗаказКлиента.Договор = &Договор
		|				ИЛИ &ИспользоватьСоглашенияСКлиентами
		|					И НЕ ЗаказКлиента.Соглашение.ИспользуютсяДоговорыКонтрагентов)
		|			И ЗаказКлиента.Организация = &Организация
		|			И ЗаказКлиента.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
		|			И (НЕ &ИспользоватьСоглашенияСКлиентами
		|				ИЛИ ЗаказКлиента.Соглашение = &Соглашение)
		|			И ЗаказКлиента.Сделка = &Сделка
		|			И (ЗаказКлиента.Валюта = &ВалютаВзаиморасчетов
		|				ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию))
		|			И ВЫБОР
		|				КОГДА ЗаказКлиента.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг), ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров))
		|					ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
		|				ИНАЧЕ
		|					ЗаказКлиента.НалогообложениеНДС
		|			КОНЕЦ = &НалогообложениеНДС
		|			И ЗаказКлиента.ЦенаВключаетНДС = &ЦенаВключаетНДС
		|			И (ЗаказКлиента.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
		|				ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности))
		|			И (ЗаказКлиента.ТребуетсяЗалогЗаТару = &ТребуетсяЗалогЗаТару
		|				ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности))
		|			И (НЕ &ИспользоватьНаправленияДеятельности
		|				ИЛИ ЗаказКлиента.НаправлениеДеятельности = &НаправлениеДеятельности)
		|		КОНЕЦ
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА ОтгрузкаТовары.Ссылка.Исправление
		|			ТОГДА ОтгрузкаТовары.Ссылка.ИсправляемыйДокумент
		|		ИНАЧЕ
		|			ОтгрузкаТовары.Ссылка
		|	КОНЕЦ КАК Ссылка,
		|	ВЫБОР
		|		КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
		|			ТОГДА ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаказКлиента).ЭтоЗаказКакСчет
		|		КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
		|			ТОГДА ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).ЭтоЗаказКакСчет
		|		ИНАЧЕ
		|			ЛОЖЬ
		|	КОНЕЦ КАК ЭтоЗаказКакСчет
		|ИЗ
		|	Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
		|ГДЕ
		|	ВЫБОР
		|		КОГДА ОтгрузкаТовары.ЗаказКлиента В (
		|			                 ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка),
		|			                 ЗНАЧЕНИЕ(Документ.ОтгрузкаТоваровКлиенту.ПустаяСсылка),
		|			                 ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка),
		|			                 НЕОПРЕДЕЛЕНО
		|			                 )
		|			ТОГДА ИСТИНА
		|		КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
		|			ТОГДА ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаказКлиента).ЭтоЗаказКакСчет
		|		КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
		|			ТОГДА ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).ЭтоЗаказКакСчет
		|		ИНАЧЕ
		|			ЛОЖЬ
		|	КОНЕЦ
		|	И ВЫБОР
		|		КОГДА &ОтобратьПоЗаказу
		|			ТОГДА ОтгрузкаТовары.Ссылка В (&МассивЗаказов)
		|		ИНАЧЕ ОтгрузкаТовары.Ссылка.Партнер = &Партнер
		|			И ОтгрузкаТовары.Ссылка.Контрагент = &Контрагент
		|			И ОтгрузкаТовары.Ссылка.Договор = &Договор
		|			И ОтгрузкаТовары.Ссылка.Организация = &Организация
		|			И ОтгрузкаТовары.Ссылка.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
		|			И (НЕ &ИспользоватьСоглашенияСКлиентами
		|				ИЛИ ОтгрузкаТовары.Ссылка.Соглашение = &Соглашение)
		|			И ОтгрузкаТовары.Ссылка.Сделка = &Сделка
		|			И ОтгрузкаТовары.Ссылка.Валюта = &ВалютаВзаиморасчетов
		|			И ВЫБОР
		|				КОГДА ОтгрузкаТовары.Ссылка.НалогообложениеНДС В (
		|				                            ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг),
		|				                            ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров)
		|				                            )
		|					ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
		|				ИНАЧЕ ОтгрузкаТовары.Ссылка.НалогообложениеНДС
		|			КОНЕЦ = &НалогообложениеНДС
		|			И &ЦенаВключаетНДС = ИСТИНА
		|			И (НЕ &ИспользоватьНаправленияДеятельности
		|				ИЛИ ОтгрузкаТовары.Ссылка.НаправлениеДеятельности = &НаправлениеДеятельности)
		|	КОНЕЦ
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ЗаказКлиента.Ссылка,
		|	ЗаказКлиента.ЭтоЗаказКакСчет
		|ИЗ
		|	Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК ЗаказКлиента
		|ГДЕ
		|	ВЫБОР
		|			КОГДА &ОтобратьПоЗаказу
		|				ТОГДА ЗаказКлиента.Ссылка В (&МассивЗаказов)
		|			ИНАЧЕ ЗаказКлиента.Партнер = &Партнер
		|				И ЗаказКлиента.Контрагент = &Контрагент
		|				И (ЗаказКлиента.Договор = &Договор
		|					ИЛИ &ИспользоватьСоглашенияСКлиентами
		|						И НЕ ЗаказКлиента.Соглашение.ИспользуютсяДоговорыКонтрагентов)
		|				И ЗаказКлиента.Организация = &Организация
		|				И ЗаказКлиента.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
		|				И (НЕ &ИспользоватьСоглашенияСКлиентами
		|					ИЛИ ЗаказКлиента.Соглашение = &Соглашение)
		|				И ЗаказКлиента.Сделка = &Сделка
		|				И (ЗаказКлиента.Валюта = &ВалютаВзаиморасчетов
		|					ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию))
		|				И ВЫБОР
		|					КОГДА ЗаказКлиента.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг), ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров))
		|						ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
		|						ИНАЧЕ ЗаказКлиента.НалогообложениеНДС
		|				КОНЕЦ = &НалогообложениеНДС
		|				И ЗаказКлиента.ЦенаВключаетНДС = &ЦенаВключаетНДС
		|				И (ЗаказКлиента.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
		|					ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности))
		|				И (ЗаказКлиента.ТребуетсяЗалогЗаТару = &ТребуетсяЗалогЗаТару
		|					ИЛИ &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности))
		|				И (НЕ &ИспользоватьНаправленияДеятельности
		|					ИЛИ ЗаказКлиента.НаправлениеДеятельности = &НаправлениеДеятельности)
		|		КОНЕЦ
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	ВводОстатковТоваров.Партия КАК Ссылка,
		|	ЛОЖЬ КАК ЭтоЗаказКакСчет
		|ИЗ
		|	Документ.ВводОстатковТоваров КАК ВводОстатковТоваров
		|	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеестрДокументов КАК РеестрДокументов
		|		ПО ВводОстатковТоваров.Ссылка = РеестрДокументов.СторнируемыйДокумент
		|			И РеестрДокументов.Проведен
		|			И НЕ РеестрДокументов.ДополнительнаяЗапись
		|ГДЕ
		|	ВЫБОР
		|		КОГДА &ОтобратьПоЗаказу
		|			ТОГДА ВводОстатковТоваров.Партия В (&МассивЗаказов)
		|		ИНАЧЕ ВводОстатковТоваров.Партнер = &Партнер
		|			И ВводОстатковТоваров.Контрагент = &Контрагент
		|			И ВводОстатковТоваров.Договор = &Договор
		|			И ВводОстатковТоваров.Организация = &Организация
		|			И ВводОстатковТоваров.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
		|			И ВводОстатковТоваров.ЦенаВключаетНДС = &ЦенаВключаетНДС
		|			И ВводОстатковТоваров.Валюта = &ВалютаВзаиморасчетов
		|			И ВЫБОР
		|				КОГДА ВводОстатковТоваров.Партия.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг), ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров))
		|					ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
		|					ИНАЧЕ ВводОстатковТоваров.Партия.НалогообложениеНДС
		|			КОНЕЦ = &НалогообложениеНДС
		|	КОНЕЦ
		|	И ВводОстатковТоваров.Проведен
		|	И РеестрДокументов.Ссылка ЕСТЬ NULL
		|
		|ИНДЕКСИРОВАТЬ ПО
		|	Ссылка
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 4
		|ВЫБРАТЬ
		|	ОтгрузкаТовары.ЗаказКлиента КАК Распоряжение,
		|	ОтгрузкаТовары.Ссылка КАК ОтгрузкаТоваров
		|ПОМЕСТИТЬ ВТОтгрузкиТоваровПоРаспоряжениям
		|ИЗ
		|	Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
		|ГДЕ
		|	ОтгрузкаТовары.Ссылка.ОтгрузкаПоЗаказам
		|	И НЕ ОтгрузкаТовары.ЗаказКлиента В(
		|				ЗНАЧЕНИЕ(Документ.ЗаказКлиента.ПустаяСсылка),
		|				ЗНАЧЕНИЕ(Документ.ОтгрузкаТоваровКлиенту.ПустаяСсылка),
		|				ЗНАЧЕНИЕ(Документ.ЗаявкаНаВозвратТоваровОтКлиента.ПустаяСсылка),
		|				НЕОПРЕДЕЛЕНО
		|				)
		|	И ВЫБОР
		|		КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
		|			ТОГДА НЕ ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаказКлиента).ЭтоЗаказКакСчет
		|		КОГДА ОтгрузкаТовары.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
		|			ТОГДА НЕ ВЫРАЗИТЬ(ОтгрузкаТовары.ЗаказКлиента КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).ЭтоЗаказКакСчет
		|		ИНАЧЕ
		|			ИСТИНА
		|	КОНЕЦ
		|	И &ОтобратьПоЗаказу
		|	И ОтгрузкаТовары.Ссылка В (&МассивЗаказов)
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 5
		|	ВЫБРАТЬ
		|		РаспоряженияОформленоОбороты.Распоряжение КАК Распоряжение,
		|		РаспоряженияОформленоОбороты.Номенклатура КАК Номенклатура,
		|		РаспоряженияОформленоОбороты.Характеристика КАК Характеристика,
		|		РаспоряженияОформленоОбороты.КодСтроки КАК КодСтроки,
		|		РаспоряженияОформленоОбороты.ОтгруженоКоличествоОборот
		|			+ РаспоряженияОформленоОбороты.ОприходованоДоППСКоличествоОборот
		|			- РаспоряженияОформленоОбороты.СписаноДоППСКоличествоОборот
		|			- РаспоряженияОформленоОбороты.ОформленоКоличествоОборот
		|			- РаспоряженияОформленоОбороты.ПринятоКоличествоОборот КАК КОформлению,
		|		РаспоряженияОформленоОбороты.ОтгруженоСуммаОборот
		|			+ РаспоряженияОформленоОбороты.ОприходованоДоППССуммаОборот
		|			- РаспоряженияОформленоОбороты.СписаноДоППССуммаОборот
		|			- РаспоряженияОформленоОбороты.ОформленоСуммаОборот
		|			- РаспоряженияОформленоОбороты.ПринятоСуммаОборот КАК Сумма,
		|		РаспоряженияОформленоОбороты.ОформленоСчетовФактурСуммаНДСРеглОборот
		|			- РаспоряженияОформленоОбороты.ОформленоСуммаНДСРеглОборот КАК СуммаНДСРегл,
		|		РаспоряженияОформленоОбороты.ОформленоСчетовФактурСуммаНДСУпрОборот
		|			- РаспоряженияОформленоОбороты.ОформленоСуммаНДСУпрОборот КАК СуммаНДСУпр
		|	ПОМЕСТИТЬ ВТРаспоряженияОформленоОтгрузкиПоРаспоряжениям
		|	ИЗ
		|		#РаспоряженияНаОтгрузкуОборотыРазвернутая1 КАК РаспоряженияОформленоОбороты
		|	ГДЕ
		|		&ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|		И (РаспоряженияОформленоОбороты.ОтгруженоКоличествоОборот
		|			+ РаспоряженияОформленоОбороты.ОприходованоДоППСКоличествоОборот
		|			- РаспоряженияОформленоОбороты.СписаноДоППСКоличествоОборот
		|			- РаспоряженияОформленоОбороты.ОформленоКоличествоОборот
		|			- РаспоряженияОформленоОбороты.ПринятоКоличествоОборот <> 0
		|			ИЛИ РаспоряженияОформленоОбороты.ОтгруженоСуммаОборот
		|				+ РаспоряженияОформленоОбороты.ОприходованоДоППССуммаОборот
		|				- РаспоряженияОформленоОбороты.СписаноДоППССуммаОборот
		|				- РаспоряженияОформленоОбороты.ОформленоСуммаОборот
		|				- РаспоряженияОформленоОбороты.ПринятоСуммаОборот <> 0
		|			ИЛИ РаспоряженияОформленоОбороты.ОформленоСчетовФактурСуммаНДСРеглОборот
		|				- РаспоряженияОформленоОбороты.ОформленоСуммаНДСРеглОборот <> 0
		|			ИЛИ РаспоряженияОформленоОбороты.ОформленоСчетовФактурСуммаНДСУпрОборот
		|				- РаспоряженияОформленоОбороты.ОформленоСуммаНДСУпрОборот <> 0)
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 6
		|ВЫБРАТЬ
		|	ТаблицаЗаказы.ЗаказКлиента КАК ЗаказКлиента,
		|	ТаблицаЗаказы.Номенклатура КАК Номенклатура,
		|	ТаблицаЗаказы.Характеристика КАК Характеристика,
		|	ТаблицаЗаказы.КодСтроки КАК КодСтроки,
		|	ТаблицаЗаказы.Склад КАК Склад,
		|	СправочникНоменклатуры.КодТНВЭД КАК КодТНВЭД,
		|	СУММА(ТаблицаЗаказы.КОформлению) КАК Количество,
		|	СУММА(ТаблицаЗаказы.Сумма) КАК Сумма,
		|	СУММА(ТаблицаЗаказы.СуммаНДСРегл) КАК СуммаНДСРегл,
		|	СУММА(ТаблицаЗаказы.СуммаНДСУпр) КАК СуммаНДСУпр
		|ПОМЕСТИТЬ ТаблицаОстатки
		|ИЗ
		|	(ВЫБРАТЬ
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Распоряжение КАК ЗаказКлиента,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Номенклатура КАК Номенклатура,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Характеристика КАК Характеристика,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.КодСтроки КАК КодСтроки,
		|		МАКСИМУМ(РаспоряженияНаОтгрузкуИВозвратОбороты.Склад) КАК Склад,
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.КОтгрузкеКоличество
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоКоличество) КАК КОформлению,
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.КОтгрузкеСумма
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоСумма) КАК Сумма,
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСРегл
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСРегл) КАК СуммаНДСРегл,
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСУпр
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСУпр) КАК СуммаНДСУпр
		|	ИЗ
		|		(
		|			ВЫБРАТЬ
		|				ТаблицаОбороты.Распоряжение КАК Распоряжение,
		|				ТаблицаОбороты.Номенклатура КАК Номенклатура,
		|				ТаблицаОбороты.Характеристика КАК Характеристика,
		|				ТаблицаОбороты.КодСтроки КАК КодСтроки,
		|				ТаблицаОбороты.Склад КАК Склад,
		|				ВЫБОР
		|					КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОтгрузке)
		|						ТОГДА ТаблицаОбороты.КоличествоОборот
		|					ИНАЧЕ
		|						0
		|				КОНЕЦ КАК КОтгрузкеКоличество,
		|				ВЫБОР
		|					КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОтгрузке)
		|						ТОГДА ТаблицаОбороты.СуммаОборот
		|					ИНАЧЕ
		|						0
		|				КОНЕЦ КАК КОтгрузкеСумма,
		|				ВЫБОР
		|					КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено)
		|						ТОГДА ТаблицаОбороты.КоличествоОборот
		|					ИНАЧЕ
		|						0
		|				КОНЕЦ КАК ОтгруженоКоличество,
		|				ВЫБОР
		|					КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено)
		|						ТОГДА ТаблицаОбороты.СуммаОборот
		|					ИНАЧЕ
		|						0
		|				КОНЕЦ КАК ОтгруженоСумма,
		|				ВЫБОР
		|					КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено)
		|						ТОГДА ТаблицаОбороты.СуммаНДСУпрОборот
		|					ИНАЧЕ
		|						0
		|				КОНЕЦ КАК ОформленоСуммаНДСУпр,
		|				ВЫБОР
		|					КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено)
		|						ТОГДА ТаблицаОбороты.СуммаНДСРеглОборот
		|					ИНАЧЕ
		|						0
		|				КОНЕЦ КАК ОформленоСуммаНДСРегл,
		|				ВЫБОР
		|					КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоСчетовФактур)
		|						ТОГДА ТаблицаОбороты.СуммаНДСУпрОборот
		|					ИНАЧЕ
		|						0
		|				КОНЕЦ КАК ОформленоСчетовФактурСуммаНДСУпр,
		|				ВЫБОР
		|					КОГДА ТаблицаОбороты.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоСчетовФактур)
		|						ТОГДА ТаблицаОбороты.СуммаНДСРеглОборот
		|					ИНАЧЕ
		|						0
		|				КОНЕЦ КАК ОформленоСчетовФактурСуммаНДСРегл
		|				ИЗ
		|					РегистрНакопления.РаспоряженияНаОтгрузкуИВозврат.Обороты(
		|						,
		|						,
		|						,
		|						(Распоряжение, &ЭтоЗаказКакСчет) В
		|							(ВЫБРАТЬ
		|								ВТЗаказы.Ссылка,
		|								ВТЗаказы.ЭтоЗаказКакСчет
		|							ИЗ
		|								ВТЗаказы)
		|						И ВЫБОР
		|							КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
		|								ТОГДА Склад В ИЕРАРХИИ (&СкладРеализации)
		|									ИЛИ Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		|							ИНАЧЕ
		|								Склад В (
		|									ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка),
		|									&СкладРеализации
		|									)
		|						КОНЕЦ
		|						И Номенклатура.ВариантОформленияПродажи В (&МассивВариантовОформления)
		|						И (&НеОтбиратьПоОсобенностямУчета
		|							ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры)
		|						И Показатель В (
		|								ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.КОтгрузке),
		|								ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено),
		|								ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено),
		|								ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.ОформленоСчетовФактур)
		|								)
		|					)
		|			) КАК ТаблицаОбороты
		|		) КАК РаспоряженияНаОтгрузкуИВозвратОбороты
		|	ГДЕ
		|		&ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|
		|	СГРУППИРОВАТЬ ПО
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Распоряжение,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Номенклатура,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Характеристика,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.КодСтроки
		|
		|	ИМЕЮЩИЕ
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.КОтгрузкеКоличество
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоКоличество) <> 0
		|		 ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.КОтгрузкеСумма
		|				- РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоСумма) <> 0
		|			ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСРегл
		|				- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСРегл) <> 0
		|			ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСУпр
		|				- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСУпр) <> 0
		|
		|	ОБЪЕДИНИТЬ ВСЕ
		|
		|	ВЫБРАТЬ
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Распоряжение КАК ЗаказКлиента,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Номенклатура КАК Номенклатура,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Характеристика КАК Характеристика,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.КодСтроки КАК КодСтроки,
		|		ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоКоличество
		|			+ РаспоряженияНаОтгрузкуИВозвратОбороты.ОприходованоДоППСКоличество
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.СписаноДоППСКоличество
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ПринятоКоличество
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоКоличество) КАК КОформлению,
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоСумма
		|			+ РаспоряженияНаОтгрузкуИВозвратОбороты.ОприходованоДоППССумма
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.СписаноДоППССумма
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ПринятоСумма
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСумма) КАК Сумма,
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСРегл
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСРегл) КАК СуммаНДСРегл,
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСУпр
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСУпр) КАК СуммаНДСУпр
		|	ИЗ
		|		#РаспоряженияНаОтгрузкуОборотыРазвернутая2 КАК РаспоряженияНаОтгрузкуИВозвратОбороты
		|	ГДЕ
		|		&ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|
		|	СГРУППИРОВАТЬ ПО
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Распоряжение,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Номенклатура,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.Характеристика,
		|		РаспоряженияНаОтгрузкуИВозвратОбороты.КодСтроки
		|
		|	ИМЕЮЩИЕ
		|		СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоКоличество
		|			+ РаспоряженияНаОтгрузкуИВозвратОбороты.ОприходованоДоППСКоличество
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.СписаноДоППСКоличество
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ПринятоКоличество
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоКоличество) <> 0
		|		ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОтгруженоСумма
		|			+ РаспоряженияНаОтгрузкуИВозвратОбороты.ОприходованоДоППССумма
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.СписаноДоППССумма
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ПринятоСумма
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСумма) <> 0
		|		ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСРегл
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСРегл) <> 0
		|		ИЛИ СУММА(РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСчетовФактурСуммаНДСУпр
		|			- РаспоряженияНаОтгрузкуИВозвратОбороты.ОформленоСуммаНДСУпр) <> 0
		|
		|	ОБЪЕДИНИТЬ ВСЕ
		|	
		|	ВЫБРАТЬ
		|		РаспоряженияОтгружено.Распоряжение КАК ЗаказКлиента,
		|		РаспоряженияОтгружено.Номенклатура КАК Номенклатура,
		|		РаспоряженияОтгружено.Характеристика КАК Характеристика,
		|		РаспоряженияОтгружено.КодСтроки КАК КодСтроки,
		|		ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
		|		ВЫБОР
		|			КОГДА РаспоряженияОтгружено.ОтгруженоКоличество < ЕСТЬNULL(РаспоряженияОформленоОбороты.КОформлению, 0)
		|				ТОГДА РаспоряженияОтгружено.ОтгруженоКоличество
		|			ИНАЧЕ
		|				ЕСТЬNULL(РаспоряженияОформленоОбороты.КОформлению, 0)
		|		КОНЕЦ КАК КОформлению,
		|		ВЫБОР
		|			КОГДА РаспоряженияОтгружено.ОтгруженоСумма < ЕСТЬNULL(РаспоряженияОформленоОбороты.Сумма, 0)
		|				ТОГДА РаспоряженияОтгружено.ОтгруженоСумма
		|			ИНАЧЕ
		|				ЕСТЬNULL(РаспоряженияОформленоОбороты.Сумма, 0)
		|		КОНЕЦ КАК Сумма,
		|		ЕСТЬNULL(РаспоряженияОформленоОбороты.СуммаНДСРегл, 0) КАК СуммаНДСРегл,
		|		ЕСТЬNULL(РаспоряженияОформленоОбороты.СуммаНДСУпр, 0) КАК СуммаНДСУпр
		|	ИЗ
		|		#РаспоряженияНаОтгрузкуДвиженияРазвернутая3 КАК РаспоряженияОтгружено
		|			ЛЕВОЕ СОЕДИНЕНИЕ ВТРаспоряженияОформленоОтгрузкиПоРаспоряжениям КАК РаспоряженияОформленоОбороты
		|				ПО РаспоряженияОтгружено.Распоряжение = РаспоряженияОформленоОбороты.Распоряжение
		|					И РаспоряженияОтгружено.Номенклатура = РаспоряженияОформленоОбороты.Номенклатура
		|					И РаспоряженияОтгружено.Характеристика = РаспоряженияОформленоОбороты.Характеристика
		|					И РаспоряженияОтгружено.КодСтроки = РаспоряженияОформленоОбороты.КодСтроки
		|	ГДЕ
		|		&ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|		И (ВЫБОР
		|			КОГДА РаспоряженияОтгружено.ОтгруженоКоличество < ЕСТЬNULL(РаспоряженияОформленоОбороты.КОформлению, 0)
		|				ТОГДА РаспоряженияОтгружено.ОтгруженоКоличество
		|			ИНАЧЕ
		|				ЕСТЬNULL(РаспоряженияОформленоОбороты.КОформлению, 0)
		|		КОНЕЦ <> 0
		|			ИЛИ ВЫБОР
		|				КОГДА РаспоряженияОтгружено.ОтгруженоСумма < ЕСТЬNULL(РаспоряженияОформленоОбороты.Сумма, 0)
		|					ТОГДА РаспоряженияОтгружено.ОтгруженоСумма
		|				ИНАЧЕ
		|					ЕСТЬNULL(РаспоряженияОформленоОбороты.Сумма, 0)
		|			КОНЕЦ <> 0
		|			ИЛИ ЕСТЬNULL(РаспоряженияОформленоОбороты.СуммаНДСРегл, 0) <> 0
		|			ИЛИ ЕСТЬNULL(РаспоряженияОформленоОбороты.СуммаНДСУпр, 0) <> 0)
		|	
		|	ОБЪЕДИНИТЬ ВСЕ
		|	
		|	ВЫБРАТЬ
		|		РаспоряженияДвижения.Распоряжение КАК ЗаказКлиента,
		|		РаспоряженияДвижения.Номенклатура КАК Номенклатура,
		|		РаспоряженияДвижения.Характеристика КАК Характеристика,
		|		РаспоряженияДвижения.КодСтроки КАК КодСтроки,
		|		РаспоряженияДвижения.Склад КАК Склад,
		|		РаспоряженияДвижения.Количество КАК КОформлению,
		|		РаспоряженияДвижения.Сумма КАК Сумма,
		|		РаспоряженияДвижения.СуммаНДСРегл КАК СуммаНДСРегл,
		|		РаспоряженияДвижения.СуммаНДСУпр КАК СуммаНДСУпр
		|	ИЗ
		|		РегистрНакопления.РаспоряженияНаОтгрузкуИВозврат КАК РаспоряженияДвижения
		|	ГДЕ
		|		РаспоряженияДвижения.Регистратор = &Регистратор
		|		И ВЫБОР
		|			КОГДА &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|				ТОГДА РаспоряженияДвижения.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Отгружено)
		|			ИНАЧЕ
		|				РаспоряженияДвижения.Показатель = ЗНАЧЕНИЕ(Перечисление.ПоказателиРаспоряженийНаОтгрузкуИВозврат.Оформлено)
		|		КОНЕЦ
		|		И (РаспоряженияДвижения.Распоряжение, &ЭтоЗаказКакСчет) В
		|				(ВЫБРАТЬ
		|					ВТЗаказы.Ссылка,
		|					ВТЗаказы.ЭтоЗаказКакСчет
		|				ИЗ
		|					ВТЗаказы)
		|		И РаспоряженияДвижения.Активность
		|		И ВЫБОР
		|				КОГДА &СкладРеализации = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		|					ТОГДА ИСТИНА
		|				КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
		|					ТОГДА РаспоряженияДвижения.Склад В ИЕРАРХИИ (&СкладРеализации)
		|							ИЛИ РаспоряженияДвижения.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		|				ИНАЧЕ РаспоряженияДвижения.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
		|			КОНЕЦ
		|		И РаспоряженияДвижения.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
		|		И (&НеОтбиратьПоОсобенностямУчета
		|				ИЛИ РаспоряженияДвижения.Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
		|	
		|	ОБЪЕДИНИТЬ ВСЕ
		|	
		|	ВЫБРАТЬ
		|		ЗаказКлиентаТовары.Ссылка,
		|		ЗаказКлиентаТовары.Номенклатура,
		|		ЗаказКлиентаТовары.Характеристика,
		|		ЗаказКлиентаТовары.КодСтроки,
		|		ЗаказКлиентаТовары.Склад,
		|		ЗаказКлиентаТовары.Количество,
		|		ЗаказКлиентаТовары.СуммаСНДС,
		|		0,
		|		0
		|	ИЗ
		|		Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
		|	ГДЕ
		|		(ЗаказКлиентаТовары.Ссылка, &ЭтоЗаказКакСчет, ИСТИНА) В
		|				(ВЫБРАТЬ
		|					ВТЗаказы.Ссылка,
		|					ВТЗаказы.ЭтоЗаказКакСчет,
		|					ВТЗаказы.ЭтоЗаказКакСчет
		|				ИЗ
		|					ВТЗаказы)
		|		И ЗаказКлиентаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
		|		И (&НеОтбиратьПоОсобенностямУчета
		|				ИЛИ ЗаказКлиентаТовары.Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
		|		И НЕ ЗаказКлиентаТовары.Отменено
		|		И НЕ ЗаказКлиентаТовары.Ссылка.ПометкаУдаления
		|		И ВЫБОР
		|				КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
		|					ТОГДА ЗаказКлиентаТовары.Склад В ИЕРАРХИИ (&СкладРеализации)
		|							ИЛИ ЗаказКлиентаТовары.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		|				ИНАЧЕ ЗаказКлиентаТовары.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
		|			КОНЕЦ
		|	
		|	ОБЪЕДИНИТЬ ВСЕ
		|	
		|	ВЫБРАТЬ
		|		ЗаказКлиентаТовары.Ссылка,
		|		ЗаказКлиентаТовары.Номенклатура,
		|		ЗаказКлиентаТовары.Характеристика,
		|		ЗаказКлиентаТовары.КодСтроки,
		|		ЗаказКлиентаТовары.Склад,
		|		ЗаказКлиентаТовары.Количество,
		|		ЗаказКлиентаТовары.СуммаСНДС,
		|		0,
		|		0
		|	ИЗ
		|		Документ.ЗаявкаНаВозвратТоваровОтКлиента.ЗаменяющиеТовары КАК ЗаказКлиентаТовары
		|	ГДЕ
		|		(ЗаказКлиентаТовары.Ссылка, &ЭтоЗаказКакСчет, ИСТИНА) В
		|				(ВЫБРАТЬ
		|					ВТЗаказы.Ссылка,
		|					ВТЗаказы.ЭтоЗаказКакСчет,
		|					ВТЗаказы.ЭтоЗаказКакСчет
		|				ИЗ
		|					ВТЗаказы)
		|		И ЗаказКлиентаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
		|		И (&НеОтбиратьПоОсобенностямУчета
		|				ИЛИ ЗаказКлиентаТовары.Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
		|		И НЕ ЗаказКлиентаТовары.Отменено
		|		И НЕ ЗаказКлиентаТовары.Ссылка.ПометкаУдаления) КАК ТаблицаЗаказы
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатуры
		|		ПО (СправочникНоменклатуры.Ссылка = ТаблицаЗаказы.Номенклатура)
		|
		|СГРУППИРОВАТЬ ПО
		|	ТаблицаЗаказы.ЗаказКлиента,
		|	ТаблицаЗаказы.Номенклатура,
		|	ТаблицаЗаказы.Характеристика,
		|	ТаблицаЗаказы.КодСтроки,
		|	ТаблицаЗаказы.Склад,
		|	СправочникНоменклатуры.КодТНВЭД
		|
		|ИМЕЮЩИЕ
		|	СУММА(ТаблицаЗаказы.КОформлению) > 0
		|
		|ИНДЕКСИРОВАТЬ ПО
		|	Номенклатура,
		|	Характеристика,
		|	КодСтроки,
		|	ЗаказКлиента
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 7
		|ВЫБРАТЬ
		|	Распоряжение КАК Ссылка,
		|	МАКСИМУМ(Регистратор) КАК ИсправлениеСсылка
		|ПОМЕСТИТЬ ТаблицаИсправлений
		|ИЗ
		|	РегистрНакопления.РаспоряженияНаОтгрузкуИВозврат
		|ГДЕ
		|	Распоряжение В
		|		(ВЫБРАТЬ
		|			Ссылка
		|		ИЗ
		|			ВТЗаказы)
		|	И ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ОтгрузкаТоваровКлиенту)
		|	И ТИПЗНАЧЕНИЯ(Распоряжение) = ТИП(Документ.ОтгрузкаТоваровКлиенту)
		|СГРУППИРОВАТЬ ПО
		|	Распоряжение
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 8
		|ВЫБРАТЬ
		|	СтавкиНДСНоменклатуры.Номенклатура,
		|	СтавкиНДСНоменклатуры.СтавкаНДС КАК СтавкаНДС
		|ПОМЕСТИТЬ СтавкиНДСНоменклатуры
		|ИЗ
		|	РегистрСведений.СтавкиНДСНоменклатуры.СрезПоследних(
		|		&Дата,
		|		(Страна = &СтранаРегистрации
		|			ИЛИ Страна = ЗНАЧЕНИЕ(Справочник.СтраныМира.ПустаяСсылка))
		|		И Номенклатура В (ВЫБРАТЬ 
		|								Номенклатура 
		|							ИЗ 
		|								ТаблицаОстатки)
		|	) КАК СтавкиНДСНоменклатуры
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 9
		|ВЫБРАТЬ
		|	ОсновныеСтавкиНДС.СтавкаНДС КАК СтавкаНДС
		|ПОМЕСТИТЬ ОсновныеСтавкиНДС
		|ИЗ
		|	РегистрСведений.ОсновныеСтавкиНДС.СрезПоследних(
		|		&Дата,
		|		Страна = &СтранаРегистрации
		|	) КАК ОсновныеСтавкиНДС
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 10
		|ВЫБРАТЬ
		|	ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
		|	ЗаказТовары.Ссылка.ПорядокРасчетов КАК ПорядокРасчетов,
		|	ТаблицаОстатки.Номенклатура КАК Номенклатура,
		|	ЗаказТовары.НоменклатураПартнера КАК НоменклатураПартнера,
		|	ТаблицаОстатки.Характеристика КАК Характеристика,
		|	ТаблицаОстатки.КодСтроки КАК КодСтроки,
		|	ТаблицаОстатки.Количество КАК Количество,
		|	ТаблицаОстатки.Сумма КАК СуммаВзаиморасчетов,
		|	ТаблицаОстатки.Склад КАК Склад,
		|	ВЫБОР
		|		КОГДА &ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|			ТОГДА ТаблицаОстатки.Количество
		|		ИНАЧЕ 0
		|	КОНЕЦ КАК КоличествоВПути,
		|	ЕСТЬNULL(НакладнаяТовары.Количество, 0) КАК КоличествоВНакладной,
		|	ЗаказТовары.НомерСтроки КАК НомерСтроки,
		|	ЗаказТовары.Ссылка.Сделка КАК Сделка,
		|	ЗаказТовары.ДатаОтгрузки КАК ДатаОтгрузки,
		|	ЕСТЬNULL(НакладнаяТовары.Упаковка, ЗаказТовары.Упаковка) КАК Упаковка,
		|	ЗаказТовары.Серия КАК Серия,
		|	ЗаказТовары.ВидЦены КАК ВидЦены,
		|	ЗаказТовары.Количество КАК КоличествоВЗаказе,
		|	ЗаказТовары.Цена КАК Цена,
		|	ЗаказТовары.СтавкаНДС КАК СтавкаНДС,
		|	ВЫБОР
		|		КОГДА &НалогообложениеНДСЭкспорт
		|			ТОГДА ТаблицаОстатки.КодТНВЭД
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
		|	КОНЕЦ КАК КодТНВЭД,
		|	ЗаказТовары.Сумма КАК Сумма,
		|	ЗаказТовары.СуммаНДС КАК СуммаНДС,
		|	ТаблицаОстатки.СуммаНДСРегл КАК СуммаНДСРегл,
		|	ТаблицаОстатки.СуммаНДСУпр КАК СуммаНДСУпр,
		|	ЗаказТовары.СуммаСНДС КАК СуммаСНДС,
		|	ЗаказТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
		|	ЗаказТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
		|	ЗаказТовары.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
		|	ЗаказТовары.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
		|	ЗаказТовары.СуммаБонусныхБалловКСписанию КАК СуммаБонусныхБалловКСписанию,
		|	ЗаказТовары.СуммаБонусныхБалловКСписаниюВВалюте КАК СуммаБонусныхБалловКСписаниюВВалюте,
		|	ЗаказТовары.СуммаНачисленныхБонусныхБалловВВалюте КАК СуммаНачисленныхБонусныхБалловВВалюте,
		|	ЗаказТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
		|	ЗаказТовары.НоменклатураНабора КАК НоменклатураНабора,
		|	ЗаказТовары.ХарактеристикаНабора КАК ХарактеристикаНабора,
		|	ЗаказТовары.Подразделение КАК Подразделение,
		|	ЗаказТовары.КлючСвязи КАК КлючСвязи,
		|	ВЫБОР
		|		КОГДА ЕСТЬNULL(НакладнаяТовары.Упаковка, ЗаказТовары.Упаковка) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		|			ТОГДА 1
		|		ИНАЧЕ ЕСТЬNULL(ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки2), 1)
		|	КОНЕЦ КАК Коэффициент,
		|	ТаблицаОстатки.Количество /
		|		ЕСТЬNULL(
		|			ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки2),
		|			1) КАК КоличествоУпаковок,
		|	ЗаказТовары.СрокПоставки КАК СрокПоставки,
		|	ЗаказТовары.ВариантОбеспечения КАК ВариантОбеспечения,
		|	ВЫБОР
		|		КОГДА ЗаказТовары.Обособленно
		|			ТОГДА ТаблицаОстатки.ЗаказКлиента.Назначение
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
		|	КОНЕЦ КАК Назначение,
		|	ЗаказТоварыСклад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|		И ЗаказТоварыСклад.ДатаНачалаОрдернойСхемыПриОтгрузке <=
		|			&ТекущаяДата КАК ОрдернаяСхемаПриОтгрузке,
		|	ВЫБОР
		|		КОГДА ЗаказТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
		|			ТОГДА ЛОЖЬ
		|		ИНАЧЕ ЗаказТоварыСклад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|				И ЗаказТоварыСклад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
		|	КОНЕЦ КАК ПроверятьОтгрузку
		|ИЗ
		|	ТаблицаОстатки КАК ТаблицаОстатки
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказТовары
		|		ПО ТаблицаОстатки.Номенклатура = ЗаказТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = ЗаказТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = ЗаказТовары.КодСтроки
		|			И ТаблицаОстатки.ЗаказКлиента = ЗаказТовары.Ссылка
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК ЗаказТоварыСклад
		|		ПО (ЗаказТоварыСклад.Ссылка = ЗаказТовары.Склад)
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
		|		ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
		|			И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
		|	ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПустаяСсылка) КАК ПорядокРасчетов,
		|	ТаблицаОстатки.Номенклатура КАК Номенклатура,
		|	ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
		|	ТаблицаОстатки.Характеристика КАК Характеристика,
		|	ТаблицаОстатки.КодСтроки КАК КодСтроки,
		|	ТаблицаОстатки.Количество КАК Количество,
		|	ТаблицаОстатки.Сумма КАК СуммаВзаиморасчетов,
		|	ТаблицаОстатки.Склад КАК Склад,
		|	ТаблицаОстатки.Количество КАК КоличествоВПути,
		|	ЕСТЬNULL(НакладнаяТовары.Количество, 0) КАК КоличествоВНакладной,
		|	ОтгрузкаТовары.НомерСтроки КАК НомерСтроки,
		|	ОтгрузкаТовары.Ссылка.Сделка КАК Сделка,
		|	ОтгрузкаТовары.Ссылка.Дата КАК ДатаОтгрузки,
		|	ЕСТЬNULL(НакладнаяТовары.Упаковка, ОтгрузкаТовары.Упаковка) КАК Упаковка,
		|	ОтгрузкаТовары.Серия КАК Серия,
		|	ОтгрузкаТовары.ВидЦены КАК ВидЦены,
		|	ОтгрузкаТовары.Количество КАК КоличествоВЗаказе,
		|	ВЫБОР
		|		КОГДА ОтгрузкаТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		|			ТОГДА ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
		|		ИНАЧЕ
		|			ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
		|				* &ТекстЗапросаКоэффициентУпаковки4
		|	КОНЕЦ КАК Цена,
		|	&СтавкаНДСОтгрузкаТоваровБезРаспоряжения КАК СтавкаНДС,
		|	ВЫБОР
		|		КОГДА &НалогообложениеНДСЭкспорт
		|			ТОГДА ТаблицаОстатки.КодТНВЭД
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
		|	КОНЕЦ КАК КодТНВЭД,
		|	ТаблицаОстатки.Сумма КАК Сумма,
		|	0 КАК СуммаНДС,
		|	ТаблицаОстатки.СуммаНДСРегл КАК СуммаНДСРегл,
		|	ТаблицаОстатки.СуммаНДСУпр КАК СуммаНДСУпр,
		|	ТаблицаОстатки.Сумма КАК СуммаСНДС,
		|	0 КАК ПроцентРучнойСкидки,
		|	0 КАК СуммаРучнойСкидки,
		|	0 КАК ПроцентАвтоматическойСкидки,
		|	0 КАК СуммаАвтоматическойСкидки,
		|	0 КАК СуммаБонусныхБалловКСписанию,
		|	0 КАК СуммаБонусныхБалловКСписаниюВВалюте,
		|	0 КАК СуммаНачисленныхБонусныхБалловВВалюте,
		|	ТаблицаОстатки.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
		|	ОтгрузкаТовары.НоменклатураНабора КАК НоменклатураНабора,
		|	ОтгрузкаТовары.ХарактеристикаНабора КАК ХарактеристикаНабора,
		|	ОтгрузкаТовары.Ссылка.Подразделение КАК Подразделение,
		|	0 КАК КлючСвязи,
		|	ВЫБОР
		|		КОГДА ЕСТЬNULL(НакладнаяТовары.Упаковка, ОтгрузкаТовары.Упаковка) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		|			ТОГДА 1
		|		ИНАЧЕ ЕСТЬNULL(ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки4), 1)
		|	КОНЕЦ КАК Коэффициент,
		|	ТаблицаОстатки.Количество /
		|		ЕСТЬNULL(
		|			ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки4),
		|			1) КАК КоличествоУпаковок,
		|	ОтгрузкаТовары.СрокПоставки КАК СрокПоставки,
		|	ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.ПустаяСсылка) КАК ВариантОбеспечения,
		|	ВЫБОР
		|		КОГДА ОтгрузкаТовары.Обособленно
		|			ТОГДА ОтгрузкаТовары.Назначение
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
		|	КОНЕЦ КАК Назначение,
		|	ОтгрузкаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|		И ОтгрузкаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <=
		|			&ТекущаяДата КАК ОрдернаяСхемаПриОтгрузке,
		|	ОтгрузкаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|		И ОтгрузкаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <=
		|			&ТекущаяДата КАК ПроверятьОтгрузку
		|ИЗ
		|	ТаблицаОстатки КАК ТаблицаОстатки
		|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаИсправлений КАК ТаблицаИсправлений
		|		ПО ТаблицаОстатки.ЗаказКлиента = ТаблицаИсправлений.Ссылка
		|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
		|		ПО ТаблицаОстатки.Номенклатура = ОтгрузкаТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = ОтгрузкаТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = ОтгрузкаТовары.КодСтроки
		|			И ТаблицаИсправлений.ИсправлениеСсылка = ОтгрузкаТовары.Ссылка
		|	ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
		|		ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
		|			И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
		|	ЛЕВОЕ СОЕДИНЕНИЕ СтавкиНДСНоменклатуры КАК СтавкиНДСНоменклатуры
		|		ПО СтавкиНДСНоменклатуры.Номенклатура = ОтгрузкаТовары.Номенклатура
		|	ЛЕВОЕ СОЕДИНЕНИЕ ОсновныеСтавкиНДС КАК ОсновныеСтавкиНДС
		|		ПО ИСТИНА
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
		|	Заказ.ПорядокРасчетов КАК ПорядокРасчетов,
		|	ТаблицаОстатки.Номенклатура КАК Номенклатура,
		|	ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
		|	ТаблицаОстатки.Характеристика КАК Характеристика,
		|	ТаблицаОстатки.КодСтроки КАК КодСтроки,
		|	ТаблицаОстатки.Количество КАК Количество,
		|	ТаблицаОстатки.Сумма КАК СуммаВзаиморасчетов,
		|	ТаблицаОстатки.Склад КАК Склад,
		|	0 КАК КоличествоВПути,
		|	ЕСТЬNULL(НакладнаяТовары.Количество, 0) КАК КоличествоВНакладной,
		|	ЗаказТовары.НомерСтроки КАК НомерСтроки,
		|	Заказ.Сделка КАК Сделка,
		|	ЗаказТовары.ДатаОтгрузки КАК ДатаОтгрузки,
		|	ЕСТЬNULL(НакладнаяТовары.Упаковка, ЗаказТовары.Упаковка) КАК Упаковка,
		|	ЗаказТовары.Серия КАК Серия,
		|	ЗаказТовары.ВидЦены КАК ВидЦены,
		|	ЗаказТовары.Количество КАК КоличествоВЗаказе,
		|	ЗаказТовары.Цена КАК Цена,
		|	ЗаказТовары.СтавкаНДС КАК СтавкаНДС,
		|	ВЫБОР
		|		КОГДА &НалогообложениеНДСЭкспорт
		|			ТОГДА ТаблицаОстатки.КодТНВЭД
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
		|	КОНЕЦ КАК КодТНВЭД,
		|	ЗаказТовары.Сумма КАК Сумма,
		|	ЗаказТовары.СуммаНДС КАК СуммаНДС,
		|	ТаблицаОстатки.СуммаНДСРегл КАК СуммаНДСРегл,
		|	ТаблицаОстатки.СуммаНДСУпр КАК СуммаНДСУпр,
		|	ЗаказТовары.СуммаСНДС КАК СуммаСНДС,
		|	ЗаказТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
		|	ЗаказТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
		|	ЗаказТовары.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
		|	ЗаказТовары.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
		|	ЗаказТовары.СуммаБонусныхБалловКСписанию КАК СуммаБонусныхБалловКСписанию,
		|	ЗаказТовары.СуммаБонусныхБалловКСписаниюВВалюте КАК СуммаБонусныхБалловКСписаниюВВалюте,
		|	ЗаказТовары.СуммаНачисленныхБонусныхБалловВВалюте КАК СуммаНачисленныхБонусныхБалловВВалюте,
		|	ЗаказТовары.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
		|	ЗаказТовары.НоменклатураНабора КАК НоменклатураНабора,
		|	ЗаказТовары.ХарактеристикаНабора КАК ХарактеристикаНабора,
		|	ЗаказТовары.Подразделение КАК Подразделение,
		|	ЗаказТовары.КлючСвязи КАК КлючСвязи,
		|	ВЫБОР
		|		КОГДА ЕСТЬNULL(НакладнаяТовары.Упаковка, ЗаказТовары.Упаковка) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		|			ТОГДА 1
		|		ИНАЧЕ ЕСТЬNULL(ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки2), 1)
		|	КОНЕЦ КАК Коэффициент,
		|	ТаблицаОстатки.Количество /
		|		ЕСТЬNULL(
		|			ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки2),
		|			1) КАК КоличествоУпаковок,
		|	ЗаказТовары.СрокПоставки КАК СрокПоставки,
		|	ЗаказТовары.ВариантОбеспечения КАК ВариантОбеспечения,
		|	ВЫБОР
		|		КОГДА ЗаказТовары.Обособленно
		|			ТОГДА ТаблицаОстатки.ЗаказКлиента.Назначение
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
		|	КОНЕЦ КАК Назначение,
		|	Заказ.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|		И Заказ.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <=
		|			&ТекущаяДата КАК ОрдернаяСхемаПриОтгрузке,
		|	ВЫБОР
		|		КОГДА ЗаказТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
		|			ТОГДА ЛОЖЬ
		|		ИНАЧЕ ЗаказТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|				И ЗаказТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
		|	КОНЕЦ КАК ПроверятьОтгрузку
		|ИЗ
		|	ТаблицаОстатки КАК ТаблицаОстатки
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаВозвратТоваровОтКлиента.ЗаменяющиеТовары КАК ЗаказТовары
		|		ПО ТаблицаОстатки.Номенклатура = ЗаказТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = ЗаказТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = ЗаказТовары.КодСтроки
		|			И ТаблицаОстатки.ЗаказКлиента = ЗаказТовары.Ссылка
		|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК Заказ
		|		ПО (Заказ.Ссылка = ЗаказТовары.Ссылка)
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
		|		ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
		|			И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
		|	ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПустаяСсылка) КАК ПорядокРасчетов,
		|	ТаблицаОстатки.Номенклатура КАК Номенклатура,
		|	ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
		|	ТаблицаОстатки.Характеристика КАК Характеристика,
		|	ТаблицаОстатки.КодСтроки КАК КодСтроки,
		|	МАКСИМУМ(ТаблицаОстатки.Количество) КАК Количество,
		|	МАКСИМУМ(ТаблицаОстатки.Сумма) КАК СуммаВзаиморасчетов,
		|	ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) КАК Склад,
		|	МАКСИМУМ(ТаблицаОстатки.Количество) КАК КоличествоВПути,
		|	СУММА(ЕСТЬNULL(НакладнаяТовары.Количество, 0)) КАК КоличествоВНакладной,
		|	МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.НомерСтроки, 0)) КАК НомерСтроки,
		|	МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.Ссылка.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка))) КАК Сделка,
		|	МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.Ссылка.Дата, ДАТАВРЕМЯ(1, 1, 1))) КАК ДатаОтгрузки,
		|	ТаблицаОстатки.Номенклатура.ЕдиницаИзмерения КАК Упаковка,
		|	МАКСИМУМ(ВЫБОР
		|		КОГДА ОтгрузкаТовары.Серия ЕСТЬ НЕ NULL И ОтгрузкаТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
		|			ТОГДА ОтгрузкаТовары.Серия
		|		КОГДА ОприходованиеТовары.Серия ЕСТЬ НЕ NULL И ОприходованиеТовары.Серия <> ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
		|			ТОГДА ОприходованиеТовары.Серия
		|		ИНАЧЕ
		|			ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
		|	КОНЕЦ) КАК Серия,
		|	ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены,
		|	0 КАК КоличествоВЗаказе,
		|	МАКСИМУМ(ВЫБОР
		|		КОГДА ТаблицаОстатки.Количество = 0
		|			ТОГДА 0
		|		ИНАЧЕ
		|			ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
		|	КОНЕЦ) КАК Цена,
		|	МАКСИМУМ(ВЫБОР
		|		КОГДА ОтгрузкаТовары.Ссылка ЕСТЬ NULL
		|			ТОГДА ЗНАЧЕНИЕ(Справочник.СтавкиНДС.ПустаяСсылка)
		|		ИНАЧЕ
		|			&СтавкаНДСОтгрузкаТоваровБезРаспоряжения
		|	КОНЕЦ) КАК СтавкаНДС,
		|	ВЫБОР
		|		КОГДА &НалогообложениеНДСЭкспорт
		|			ТОГДА ТаблицаОстатки.КодТНВЭД
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
		|	КОНЕЦ КАК КодТНВЭД,
		|	МАКСИМУМ(ТаблицаОстатки.Сумма) КАК Сумма,
		|	0 КАК СуммаНДС,
		|	МАКСИМУМ(ТаблицаОстатки.СуммаНДСРегл) КАК СуммаНДСРегл,
		|	МАКСИМУМ(ТаблицаОстатки.СуммаНДСУпр) КАК СуммаНДСУпр,
		|	МАКСИМУМ(ТаблицаОстатки.Сумма) КАК СуммаСНДС,
		|	0 КАК ПроцентРучнойСкидки,
		|	0 КАК СуммаРучнойСкидки,
		|	0 КАК ПроцентАвтоматическойСкидки,
		|	0 КАК СуммаАвтоматическойСкидки,
		|	0 КАК СуммаБонусныхБалловКСписанию,
		|	0 КАК СуммаБонусныхБалловКСписаниюВВалюте,
		|	0 КАК СуммаНачисленныхБонусныхБалловВВалюте,
		|	ТаблицаОстатки.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
		|	МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.НоменклатураНабора, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))) КАК НоменклатураНабора,
		|	МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.ХарактеристикаНабора, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))) КАК ХарактеристикаНабора,
		|	МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.Ссылка.Подразделение, ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка))) КАК Подразделение,
		|	0 КАК КлючСвязи,
		|	1 КАК Коэффициент,
		|	МАКСИМУМ(ТаблицаОстатки.Количество) КАК КоличествоУпаковок,
		|	МАКСИМУМ(ЕСТЬNULL(ОтгрузкаТовары.СрокПоставки, 0)) КАК СрокПоставки,
		|	ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.ПустаяСсылка) КАК ВариантОбеспечения,
		|	ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
		|	МАКСИМУМ(ВЫБОР
		|		КОГДА ОтгрузкаТовары.Склад ЕСТЬ NULL
		|			ТОГДА ЛОЖЬ
		|		ИНАЧЕ
		|			ОтгрузкаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|				И ОтгрузкаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
		|	КОНЕЦ) КАК ОрдернаяСхемаПриОтгрузке,
		|	МАКСИМУМ(ВЫБОР
		|		КОГДА ОтгрузкаТовары.Склад ЕСТЬ NULL
		|			ТОГДА ЛОЖЬ
		|		ИНАЧЕ
		|			ОтгрузкаТовары.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|				И ОтгрузкаТовары.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
		|	КОНЕЦ) КАК ПроверятьОтгрузку
		|ИЗ
		|	ТаблицаОстатки КАК ТаблицаОстатки
		|	ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
		|		ПО ТаблицаОстатки.Номенклатура = ОтгрузкаТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = ОтгрузкаТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = ОтгрузкаТовары.КодСтроки
		|			И ОтгрузкаТовары.КодСтроки = 0
		|			И ТаблицаОстатки.ЗаказКлиента = ОтгрузкаТовары.ЗаказКлиента
		|			И ОтгрузкаТовары.Ссылка.Проведен
		|	ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОприходованиеИзлишковОтгруженныхТоваров.Товары КАК ОприходованиеТовары
		|		ПО ТаблицаОстатки.Номенклатура = ОприходованиеТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = ОприходованиеТовары.Характеристика
		|			И ТаблицаОстатки.ЗаказКлиента = ОприходованиеТовары.Распоряжение
		|			И ОприходованиеТовары.Ссылка.Проведен
		|	ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
		|		ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
		|			И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
		|	ЛЕВОЕ СОЕДИНЕНИЕ СтавкиНДСНоменклатуры КАК СтавкиНДСНоменклатуры
		|		ПО СтавкиНДСНоменклатуры.Номенклатура = ТаблицаОстатки.Номенклатура
		|	ЛЕВОЕ СОЕДИНЕНИЕ ОсновныеСтавкиНДС КАК ОсновныеСтавкиНДС
		|		ПО ИСТИНА
		|ГДЕ
		|	ТаблицаОстатки.КодСтроки = 0
		|	И ЕСТЬNULL(ОтгрузкаТовары.Ссылка, ОприходованиеТовары.Ссылка) ЕСТЬ НЕ NULL
		|
		|СГРУППИРОВАТЬ ПО
		|	ТаблицаОстатки.ЗаказКлиента,
		|	ТаблицаОстатки.Номенклатура,
		|	ТаблицаОстатки.Характеристика,
		|	ТаблицаОстатки.КодСтроки,
		|	ВЫБОР
		|		КОГДА &НалогообложениеНДСЭкспорт
		|			ТОГДА ТаблицаОстатки.КодТНВЭД
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
		|	КОНЕЦ
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ТаблицаОстатки.ЗаказКлиента КАК ЗаказКлиента,
		|	ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПустаяСсылка) КАК ПорядокРасчетов,
		|	ТаблицаОстатки.Номенклатура КАК Номенклатура,
		|	ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка) КАК НоменклатураПартнера,
		|	ТаблицаОстатки.Характеристика КАК Характеристика,
		|	ТаблицаОстатки.КодСтроки КАК КодСтроки,
		|	ТаблицаОстатки.Количество КАК Количество,
		|	ТаблицаОстатки.Сумма КАК СуммаВзаиморасчетов,
		|	ТаблицаОстатки.Склад КАК Склад,
		|	ТаблицаОстатки.Количество КАК КоличествоВПути,
		|	ЕСТЬNULL(НакладнаяТовары.Количество, 0) КАК КоличествоВНакладной,
		|	ВводОстатковТовары.НомерСтроки КАК НомерСтроки,
		|	ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка) КАК Сделка,
		|	ВводОстатковТовары.Ссылка.Дата КАК ДатаОтгрузки,
		|	ЕСТЬNULL(НакладнаяТовары.Упаковка, ВводОстатковТовары.Упаковка) КАК Упаковка,
		|	ВводОстатковТовары.Серия КАК Серия,
		|	ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены,
		|	ВводОстатковТовары.Количество КАК КоличествоВЗаказе,
		|	ВЫБОР
		|		КОГДА ВводОстатковТовары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		|			ТОГДА ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
		|		ИНАЧЕ
		|			ТаблицаОстатки.Сумма / ТаблицаОстатки.Количество
		|				* &ТекстЗапросаКоэффициентУпаковки5
		|	КОНЕЦ КАК Цена,
		|	&СтавкаНДСВводОстатковТоваров КАК СтавкаНДС,
		|	ВЫБОР
		|		КОГДА &НалогообложениеНДСЭкспорт
		|			ТОГДА ТаблицаОстатки.КодТНВЭД
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
		|	КОНЕЦ КАК КодТНВЭД,
		|	ТаблицаОстатки.Сумма КАК Сумма,
		|	0 КАК СуммаНДС,
		|	ТаблицаОстатки.СуммаНДСРегл КАК СуммаНДСРегл,
		|	ТаблицаОстатки.СуммаНДСУпр КАК СуммаНДСУпр,
		|	ТаблицаОстатки.Сумма КАК СуммаСНДС,
		|	0 КАК ПроцентРучнойСкидки,
		|	0 КАК СуммаРучнойСкидки,
		|	0 КАК ПроцентАвтоматическойСкидки,
		|	0 КАК СуммаАвтоматическойСкидки,
		|	0 КАК СуммаБонусныхБалловКСписанию,
		|	0 КАК СуммаБонусныхБалловКСписаниюВВалюте,
		|	0 КАК СуммаНачисленныхБонусныхБалловВВалюте,
		|	ТаблицаОстатки.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
		|	ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК НоменклатураНабора,
		|	ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНабора,
		|	ВводОстатковТовары.Ссылка.Подразделение КАК Подразделение,
		|	0 КАК КлючСвязи,
		|	ВЫБОР
		|		КОГДА ЕСТЬNULL(НакладнаяТовары.Упаковка, ВводОстатковТовары.Упаковка) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		|			ТОГДА 1
		|		ИНАЧЕ ЕСТЬNULL(ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки5), 1)
		|	КОНЕЦ КАК Коэффициент,
		|	ТаблицаОстатки.Количество /
		|		ЕСТЬNULL(
		|			ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки1, &ТекстЗапросаКоэффициентУпаковки5),
		|			1) КАК КоличествоУпаковок,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК СрокПоставки,
		|	ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.ПустаяСсылка) КАК ВариантОбеспечения,
		|	ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка) КАК Назначение,
		|	ЛОЖЬ КАК ОрдернаяСхемаПриОтгрузке,
		|	ЛОЖЬ КАК ПроверятьОтгрузку
		|ИЗ
		|	ТаблицаОстатки КАК ТаблицаОстатки
		|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВводОстатковТоваров.Товары КАК ВводОстатковТовары
		|		ПО ТаблицаОстатки.Номенклатура = ВводОстатковТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = ВводОстатковТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = ВводОстатковТовары.КодСтроки
		|			И ТаблицаОстатки.ЗаказКлиента = ВводОстатковТовары.Ссылка.Партия
		|			И ВводОстатковТовары.Ссылка.Проведен
		|	ЛЕВОЕ СОЕДИНЕНИЕ ВтТоварыРеализацииПоЗаказу КАК НакладнаяТовары
		|		ПО ТаблицаОстатки.Номенклатура = НакладнаяТовары.Номенклатура
		|			И ТаблицаОстатки.Характеристика = НакладнаяТовары.Характеристика
		|			И ТаблицаОстатки.КодСтроки = НакладнаяТовары.КодСтроки
		|			И ТаблицаОстатки.ЗаказКлиента = НакладнаяТовары.ЗаказКлиента
		|	ЛЕВОЕ СОЕДИНЕНИЕ СтавкиНДСНоменклатуры КАК СтавкиНДСНоменклатуры
		|		ПО СтавкиНДСНоменклатуры.Номенклатура = ВводОстатковТовары.Номенклатура
		|	ЛЕВОЕ СОЕДИНЕНИЕ ОсновныеСтавкиНДС КАК ОсновныеСтавкиНДС
		|		ПО ИСТИНА
		// Если для ВНО есть исправление, то работает с последним исправлением
		|	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеестрДокументов КАК РеестрДокументов
		|		ПО ВводОстатковТовары.Ссылка = РеестрДокументов.СторнируемыйДокумент
		|			И РеестрДокументов.Проведен
		|			И НЕ РеестрДокументов.ДополнительнаяЗапись
		|ГДЕ
		|	РеестрДокументов.Ссылка ЕСТЬ NULL
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ТоварыРеализации.ЗаказКлиента,
		|	ТоварыРеализации.ПорядокРасчетов,
		|	ТоварыРеализации.Номенклатура,
		|	ЗНАЧЕНИЕ(Справочник.НоменклатураКонтрагентов.ПустаяСсылка),
		|	ТоварыРеализации.Характеристика,
		|	ТоварыРеализации.КодСтроки,
		|	ТоварыРеализации.Количество,
		|	ТоварыРеализации.Сумма,
		|	ТоварыРеализации.Склад,
		|	0,
		|	ТоварыРеализации.Количество,
		|	ТоварыРеализации.НомерСтроки,
		|	НЕОПРЕДЕЛЕНО,
		|	НЕОПРЕДЕЛЕНО,
		|	ТоварыРеализации.Упаковка,
		|	ТоварыРеализации.Серия,
		|	ТоварыРеализации.ВидЦены,
		|	0,
		|	ТоварыРеализации.Цена,
		|	ТоварыРеализации.СтавкаНДС,
		|	ВЫБОР
		|		КОГДА &НалогообложениеНДСЭкспорт
		|			ТОГДА ТоварыРеализации.КодТНВЭД
		|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.КлассификаторТНВЭД.ПустаяСсылка)
		|	КОНЕЦ,
		|	ТоварыРеализации.Сумма,
		|	ТоварыРеализации.СуммаНДС,
		|	ТоварыРеализации.СуммаНДСРегл,
		|	ТоварыРеализации.СуммаНДСУпр,
		|	ТоварыРеализации.СуммаСНДС,
		|	ТоварыРеализации.ПроцентРучнойСкидки,
		|	ТоварыРеализации.СуммаРучнойСкидки,
		|	ТоварыРеализации.ПроцентАвтоматическойСкидки,
		|	ТоварыРеализации.СуммаАвтоматическойСкидки,
		|	ТоварыРеализации.СуммаБонусныхБалловКСписанию,
		|	ТоварыРеализации.СуммаБонусныхБалловКСписаниюВВалюте,
		|	ТоварыРеализации.СуммаНачисленныхБонусныхБалловВВалюте,
		|	ТоварыРеализации.ТипНоменклатуры,
		|	ТоварыРеализации.НоменклатураНабора,
		|	ТоварыРеализации.ХарактеристикаНабора,
		|	ТоварыРеализации.Подразделение,
		|	ТоварыРеализации.КлючСвязи,
		|	ВЫБОР
		|		КОГДА ТоварыРеализации.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
		|			ТОГДА 1
		|		ИНАЧЕ ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки3, 1)
		|	КОНЕЦ,
		|	ТоварыРеализации.Количество / ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки3, 1),
		|	НЕОПРЕДЕЛЕНО,
		|	НЕОПРЕДЕЛЕНО,
		|	ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка),
		|	ТоварыРеализации.ИспользуетсяОрдернаяСхемаПриОтгрузке,
		|	ВЫБОР
		|		КОГДА ТоварыРеализации.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
		|			ТОГДА ЛОЖЬ
		|		ИНАЧЕ ТоварыРеализации.ИспользуетсяОрдернаяСхемаПриОтгрузке
		|	КОНЕЦ
		|ИЗ
		|	ВтТоварыРеализацииБезЗаказа КАК ТоварыРеализации
		|
		|УПОРЯДОЧИТЬ ПО
		|	ТаблицаОстатки.ЗаказКлиента,
		|	ЗаказТовары.НомерСтроки
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 11
		|ВЫБРАТЬ ПЕРВЫЕ 1
		|	ЗаказКлиентаТовары.НомерСтроки КАК НомерСтроки
		|ИЗ
		|	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
		|ГДЕ
		|	ЗаказКлиентаТовары.Ссылка В(&МассивЗаказов)
		|	И ЗаказКлиентаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
		|	И ЗаказКлиентаТовары.ВариантОбеспечения = ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.Отгрузить)
		|	И НЕ ЗаказКлиентаТовары.Отменено
		|	И ЗаказКлиентаТовары.Ссылка.Проведен
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ ПЕРВЫЕ 1
		|	ОтгрузкаТовары.НомерСтроки
		|ИЗ
		|	Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
		|ГДЕ
		|	ОтгрузкаТовары.Ссылка В(&МассивЗаказов)
		|	И ОтгрузкаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
		|	И ОтгрузкаТовары.Ссылка.Проведен
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ ПЕРВЫЕ 1
		|	ЗаказКлиентаТовары.НомерСтроки
		|ИЗ
		|	Документ.ЗаявкаНаВозвратТоваровОтКлиента.ЗаменяющиеТовары КАК ЗаказКлиентаТовары
		|ГДЕ
		|	ЗаказКлиентаТовары.Ссылка В(&МассивЗаказов)
		|	И ЗаказКлиентаТовары.Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
		|	И ЗаказКлиентаТовары.ВариантОбеспечения = ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.Отгрузить)
		|	И НЕ ЗаказКлиентаТовары.Отменено
		|	И ЗаказКлиентаТовары.Ссылка.Проведен
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 12
		|ВЫБРАТЬ
		|	ЗаказКлиента.Ссылка КАК Ссылка
		|ПОМЕСТИТЬ ДокументыОтгрузки
		|ИЗ
		|	Документ.ЗаказКлиента КАК ЗаказКлиента
		|ГДЕ
		|	ВЫБОР
		|			КОГДА &ОтобратьПоЗаказу
		|				ТОГДА ЗаказКлиента.Ссылка В (&МассивЗаказов)
		|						ИЛИ ЗаказКлиента.Ссылка = &Регистратор
		|			ИНАЧЕ ЗаказКлиента.Партнер = &Партнер
		|					И ЗаказКлиента.Контрагент = &Контрагент
		|					И (ЗаказКлиента.Договор = &Договор
		|						ИЛИ &ИспользоватьСоглашенияСКлиентами
		|							И НЕ ЗаказКлиента.Соглашение.ИспользуютсяДоговорыКонтрагентов)
		|					И ЗаказКлиента.Организация = &Организация
		|					И ЗаказКлиента.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
		|					И (НЕ &ИспользоватьСоглашенияСКлиентами
		|						ИЛИ ЗаказКлиента.Соглашение = &Соглашение)
		|					И ЗаказКлиента.Сделка = &Сделка
		|					И (&ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
		|						ИЛИ ЗаказКлиента.Валюта = &ВалютаВзаиморасчетов)
		|					И ВЫБОР
		|						КОГДА ЗаказКлиента.НалогообложениеНДС В (ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортСырьевыхТоваровУслуг), ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ЭкспортНесырьевыхТоваров))
		|							ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНаЭкспорт)
		|						ИНАЧЕ ЗаказКлиента.НалогообложениеНДС
		|					КОНЕЦ = &НалогообложениеНДС
		|					И ЗаказКлиента.ЦенаВключаетНДС = &ЦенаВключаетНДС
		|					И ЗаказКлиента.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
		|					И (НЕ &ИспользоватьНаправленияДеятельности
		|						ИЛИ ЗаказКлиента.НаправлениеДеятельности = &НаправлениеДеятельности)
		|		КОНЕЦ
		|	И ВЫБОР
		|			КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
		|				ТОГДА ЗаказКлиента.Склад В ИЕРАРХИИ (&СкладРеализации)
		|						ИЛИ ЗаказКлиента.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		|			ИНАЧЕ ЗаказКлиента.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
		|					ИЛИ ВЫРАЗИТЬ(ЗаказКлиента.Склад КАК Справочник.Склады).ЭтоГруппа
		|		КОНЕЦ
		|	И &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА ОтгрузкаШапка.ОтгрузкаПоЗаказам
		|			ТОГДА ОтгрузкаТовары.ЗаказКлиента
		|		ИНАЧЕ ОтгрузкаШапка.Ссылка
		|	КОНЕЦ КАК Ссылка
		|ИЗ
		|	Документ.ОтгрузкаТоваровКлиенту.Товары КАК ОтгрузкаТовары
		|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОтгрузкаТоваровКлиенту КАК ОтгрузкаШапка
		|		ПО ОтгрузкаТовары.Ссылка = ОтгрузкаШапка.Ссылка
		|ГДЕ
		|	ВЫБОР
		|			КОГДА &ОтобратьПоЗаказу
		|				ТОГДА ОтгрузкаШапка.Ссылка В (&МассивЗаказов)
		|						ИЛИ ОтгрузкаШапка.Ссылка = &Регистратор
		|			ИНАЧЕ ОтгрузкаШапка.Партнер = &Партнер
		|					И ОтгрузкаШапка.Контрагент = &Контрагент
		|					И ОтгрузкаШапка.Договор = &Договор
		|					И ОтгрузкаШапка.Организация = &Организация
		|					И ОтгрузкаШапка.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
		|					И (НЕ &ИспользоватьСоглашенияСКлиентами
		|						ИЛИ ОтгрузкаШапка.Соглашение = &Соглашение)
		|					И ОтгрузкаШапка.Сделка = &Сделка
		|					И ОтгрузкаШапка.Валюта = &ВалютаВзаиморасчетов
		|					И (НЕ &ИспользоватьНаправленияДеятельности
		|						ИЛИ ОтгрузкаШапка.НаправлениеДеятельности = &НаправлениеДеятельности)
		|		КОНЕЦ
		|	И ВЫБОР
		|			КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
		|				ТОГДА ОтгрузкаШапка.Склад В ИЕРАРХИИ (&СкладРеализации)
		|						ИЛИ ОтгрузкаШапка.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		|			ИНАЧЕ ОтгрузкаШапка.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
		|					ИЛИ ВЫРАЗИТЬ(ОтгрузкаШапка.Склад КАК Справочник.Склады).ЭтоГруппа
		|		КОНЕЦ
		|	И &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ЗаявкаНаВозвратТоваровОтКлиента.Ссылка
		|ИЗ
		|	Документ.ЗаявкаНаВозвратТоваровОтКлиента КАК ЗаявкаНаВозвратТоваровОтКлиента
		|ГДЕ
		|	ВЫБОР
		|			КОГДА &ОтобратьПоЗаказу
		|				ТОГДА ЗаявкаНаВозвратТоваровОтКлиента.Ссылка В (&МассивЗаказов)
		|						ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.Ссылка = &Регистратор
		|			ИНАЧЕ ЗаявкаНаВозвратТоваровОтКлиента.Партнер = &Партнер
		|					И ЗаявкаНаВозвратТоваровОтКлиента.Контрагент = &Контрагент
		|					И (ЗаявкаНаВозвратТоваровОтКлиента.Договор = &Договор
		|						ИЛИ &ИспользоватьСоглашенияСКлиентами
		|							И НЕ ЗаявкаНаВозвратТоваровОтКлиента.Соглашение.ИспользуютсяДоговорыКонтрагентов)
		|					И ЗаявкаНаВозвратТоваровОтКлиента.Организация = &Организация
		|					И ЗаявкаНаВозвратТоваровОтКлиента.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
		|					И (НЕ &ИспользоватьСоглашенияСКлиентами
		|						ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.Соглашение = &Соглашение)
		|					И ЗаявкаНаВозвратТоваровОтКлиента.Сделка = &Сделка
		|					И (&ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
		|						ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.Валюта = &ВалютаВзаиморасчетов)
		|					И ЗаявкаНаВозвратТоваровОтКлиента.НалогообложениеНДС = &НалогообложениеНДС
		|					И ЗаявкаНаВозвратТоваровОтКлиента.ЦенаВключаетНДС = &ЦенаВключаетНДС
		|					И ЗаявкаНаВозвратТоваровОтКлиента.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
		|					И (НЕ &ИспользоватьНаправленияДеятельности
		|						ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.НаправлениеДеятельности = &НаправлениеДеятельности)
		|		КОНЕЦ
		|	И ВЫБОР
		|			КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
		|				ТОГДА ЗаявкаНаВозвратТоваровОтКлиента.Склад В ИЕРАРХИИ (&СкладРеализации)
		|						ИЛИ ЗаявкаНаВозвратТоваровОтКлиента.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		|			ИНАЧЕ ЗаявкаНаВозвратТоваровОтКлиента.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
		|		КОНЕЦ
		|	И &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	РеализацияТоваровУслуг.Ссылка
		|ИЗ
		|	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
		|ГДЕ
		|	ВЫБОР
		|			КОГДА &ОтобратьПоЗаказу
		|				ТОГДА РеализацияТоваровУслуг.Ссылка В (&МассивЗаказов)
		|						ИЛИ РеализацияТоваровУслуг.Ссылка = &Регистратор
		|			ИНАЧЕ РеализацияТоваровУслуг.Партнер = &Партнер
		|					И РеализацияТоваровУслуг.Контрагент = &Контрагент
		|					И РеализацияТоваровУслуг.Договор = &Договор
		|					И РеализацияТоваровУслуг.Организация = &Организация
		|					И РеализацияТоваровУслуг.ХозяйственнаяОперация В (&ХозяйственныеОперацииРаспоряжений)
		|					И (НЕ &ИспользоватьСоглашенияСКлиентами
		|						ИЛИ РеализацияТоваровУслуг.Соглашение = &Соглашение)
		|					И РеализацияТоваровУслуг.Сделка = &Сделка
		|					И (&ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПередачаНаКомиссию)
		|						ИЛИ РеализацияТоваровУслуг.Валюта = &ВалютаВзаиморасчетов)
		|					И РеализацияТоваровУслуг.НалогообложениеНДС = &НалогообложениеНДС
		|					И РеализацияТоваровУслуг.ЦенаВключаетНДС = &ЦенаВключаетНДС
		|					И РеализацияТоваровУслуг.ВернутьМногооборотнуюТару = &ВернутьМногооборотнуюТару
		|					И (НЕ &ИспользоватьНаправленияДеятельности
		|						ИЛИ РеализацияТоваровУслуг.НаправлениеДеятельности = &НаправлениеДеятельности)
		|		КОНЕЦ
		|	И РеализацияТоваровУслуг.Ссылка = &Регистратор
		|	И ВЫБОР
		|			КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
		|				ТОГДА РеализацияТоваровУслуг.Склад В ИЕРАРХИИ (&СкладРеализации)
		|						ИЛИ РеализацияТоваровУслуг.Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		|			ИНАЧЕ РеализацияТоваровУслуг.Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
		|		КОНЕЦ
		|	И &ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПереходПраваСобственности)
		|
		|ИНДЕКСИРОВАТЬ ПО
		|	Ссылка
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 13
		|ВЫБРАТЬ
		|	Номенклатура.Ссылка КАК Ссылка
		|ПОМЕСТИТЬ НоменклатураСВариантомОформления
		|ИЗ
		|	Справочник.Номенклатура КАК Номенклатура
		|ГДЕ
		|	Номенклатура.ВариантОформленияПродажи В(&МассивВариантовОформления)
		|	И (&НеОтбиратьПоОсобенностямУчета
		|			ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
		|
		|ИНДЕКСИРОВАТЬ ПО
		|	Ссылка
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 14
		|ВЫБРАТЬ
		|	ВТЗаказы.Ссылка КАК Ссылка,
		|	ВТЗаказы.ЭтоЗаказКакСчет КАК ЭтоЗаказКакСчет
		|ПОМЕСТИТЬ ВТЗаказыВсе
		|ИЗ
		|	ВТЗаказы КАК ВТЗаказы
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение КАК Ссылка,
		|	ВЫБОР
		|		КОГДА ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение ССЫЛКА Документ.ЗаказКлиента
		|			ТОГДА ВЫРАЗИТЬ(ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение КАК Документ.ЗаказКлиента).ЭтоЗаказКакСчет
		|		КОГДА ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
		|			ТОГДА ВЫРАЗИТЬ(ВТОтгрузкиТоваровПоРаспоряжениям.Распоряжение КАК Документ.ЗаявкаНаВозвратТоваровОтКлиента).ЭтоЗаказКакСчет
		|		ИНАЧЕ
		|			ЛОЖЬ
		|	КОНЕЦ КАК ЭтоЗаказКакСчет
		|ИЗ
		|	ВТОтгрузкиТоваровПоРаспоряжениям КАК ВТОтгрузкиТоваровПоРаспоряжениям
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 15
		|ВЫБРАТЬ
		|	РаспоряженияОтгруженоОбороты.Регистратор КАК Регистратор,
		|	РаспоряженияОтгруженоОбороты.Распоряжение КАК Распоряжение,
		|	РаспоряженияОтгруженоОбороты.Номенклатура КАК Номенклатура,
		|	РаспоряженияОтгруженоОбороты.Характеристика КАК Характеристика,
		|	РаспоряженияОтгруженоОбороты.КодСтроки КАК КодСтроки,
		|	РаспоряженияОтгруженоОбороты.Склад КАК Склад,
		|	РаспоряженияОтгруженоОбороты.Серия КАК Серия,
		|	РаспоряженияОтгруженоОбороты.ОтгруженоКоличество КАК ОтгруженоКоличество
		|ПОМЕСТИТЬ ВТ_РаспоряженияНаОтгрузкуОтгружено
		|ИЗ
		|	#РаспоряженияНаОтгрузкуДвиженияРазвернутая4 КАК РаспоряженияОтгруженоОбороты
		|;
		|
		|//////////////////////////////////////////////////////////////////////////////// 16
		|ВЫБРАТЬ
		|	ТаблицаЗаказы.ЗаказКлиента КАК ЗаказКлиента,
		|	ТаблицаЗаказы.Номенклатура КАК Номенклатура,
		|	ТаблицаЗаказы.Характеристика КАК Характеристика,
		|	ТаблицаЗаказы.Склад КАК Склад,
		|	ТаблицаЗаказы.ОрдернаяСхемаПриОтгрузке КАК ОрдернаяСхемаПриОтгрузке,
		|	ТаблицаЗаказы.Серия КАК Серия,
		|	ТаблицаЗаказы.Назначение КАК Назначение,
		|	СУММА(ТаблицаЗаказы.КоличествоСобирается) КАК КоличествоСобирается,
		|	СУММА(ТаблицаЗаказы.Количество) КАК Количество
		|ИЗ
		|	(ВЫБРАТЬ
		|		ТоварыКОтгрузкеОстатки.ДокументОтгрузки КАК ЗаказКлиента,
		|		ТоварыКОтгрузкеОстатки.Номенклатура КАК Номенклатура,
		|		ТоварыКОтгрузкеОстатки.Характеристика КАК Характеристика,
		|		ТоварыКОтгрузкеОстатки.Склад КАК Склад,
		|		ВЫБОР
		|			КОГДА ТоварыКОтгрузкеОстатки.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|					И ТоварыКОтгрузкеОстатки.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
		|				ТОГДА ИСТИНА
		|			ИНАЧЕ ЛОЖЬ
		|		КОНЕЦ КАК ОрдернаяСхемаПриОтгрузке,
		|		ТоварыКОтгрузкеОстатки.Серия КАК Серия,
		|		ТоварыКОтгрузкеОстатки.Назначение КАК Назначение,
		|		ТоварыКОтгрузкеОстатки.СобираетсяПриход КАК КоличествоСобирается,
		|		ТоварыКОтгрузкеОстатки.КОтгрузкеРасход + ТоварыКОтгрузкеОстатки.СобраноПриход КАК Количество
		|	ИЗ
		|		РегистрНакопления.ТоварыКОтгрузке.ОстаткиИОбороты(
		|				,
		|				,
		|				,
		|				,
		|				ДокументОтгрузки В
		|						(ВЫБРАТЬ
		|							ДокументыОтгрузки.Ссылка
		|						ИЗ
		|							ДокументыОтгрузки)
		|					И Номенклатура В
		|						(ВЫБРАТЬ
		|							НоменклатураСВариантомОформления.Ссылка
		|						ИЗ
		|							НоменклатураСВариантомОформления)) КАК ТоварыКОтгрузкеОстатки
		|	
		|	ОБЪЕДИНИТЬ ВСЕ
		|	
		|	ВЫБРАТЬ
		|		ТоварыКОтгрузкеОстатки.ДокументОтгрузки,
		|		ТоварыКОтгрузкеОстатки.Номенклатура,
		|		ТоварыКОтгрузкеОстатки.Характеристика,
		|		ТоварыКОтгрузкеОстатки.Склад,
		|		(ТоварыКОтгрузкеОстатки.Склад.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|			И ТоварыКОтгрузкеОстатки.Склад.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата),
		|		ТоварыКОтгрузкеОстатки.Серия,
		|		ТоварыКОтгрузкеОстатки.Назначение,
		|		ТоварыКОтгрузкеОстатки.СобираетсяПриход,
		|		- ТоварыКОтгрузкеОстатки.КОтгрузкеПриход
		|	ИЗ
		|		РегистрНакопления.ТоварыКОтгрузке.ОстаткиИОбороты(
		|				,
		|				,
		|				Регистратор,
		|				,
		|				ДокументОтгрузки В
		|						(ВЫБРАТЬ
		|							ДокументыОтгрузки.Ссылка
		|						ИЗ
		|							ДокументыОтгрузки)
		|					И Номенклатура В
		|						(ВЫБРАТЬ
		|							НоменклатураСВариантомОформления.Ссылка
		|						ИЗ
		|							НоменклатураСВариантомОформления)) КАК ТоварыКОтгрузкеОстатки
		|	ГДЕ ТоварыКОтгрузкеОстатки.Регистратор ССЫЛКА Документ.АктОРасхожденияхПослеОтгрузки
		|	
		|	ОБЪЕДИНИТЬ ВСЕ
		|	
		|	ВЫБРАТЬ
		|		ЗаказыОстатки.Распоряжение,
		|		ЗаказыОстатки.Номенклатура,
		|		ЗаказыОстатки.Характеристика,
		|		ЗаказыОстатки.Склад,
		|		ВЫБОР
		|			КОГДА ТаблицаСкладов.ИспользоватьОрдернуюСхемуПриОтгрузке = ИСТИНА
		|					И ТаблицаСкладов.ДатаНачалаОрдернойСхемыПриОтгрузке <= &ТекущаяДата
		|				ТОГДА ИСТИНА
		|			ИНАЧЕ ЛОЖЬ
		|		КОНЕЦ,
		|		ЗаказыОстатки.Серия,
		|		ВЫБОР
		|			КОГДА ЗаказТовары.Обособленно
		|				ТОГДА ЗаказТовары.Ссылка.Назначение
		|			КОГДА ЗаказТоварыЗамена.Обособленно
		|				ТОГДА ЗаказТоварыЗамена.Ссылка.Назначение
		|			ИНАЧЕ ЗНАЧЕНИЕ(Справочник.Назначения.ПустаяСсылка)
		|		КОНЕЦ,
		|		0,
		|		-ЗаказыОстатки.ОтгруженоКоличество
		|	ИЗ
		|		ВТ_РаспоряженияНаОтгрузкуОтгружено КАК ЗаказыОстатки
		|			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК ТаблицаСкладов
		|			ПО ЗаказыОстатки.Склад = ТаблицаСкладов.Ссылка
		|			ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.Товары КАК ЗаказТовары
		|			ПО ЗаказыОстатки.Номенклатура = ЗаказТовары.Номенклатура
		|				И ЗаказыОстатки.Характеристика = ЗаказТовары.Характеристика
		|				И ЗаказыОстатки.КодСтроки = ЗаказТовары.КодСтроки
		|				И ЗаказыОстатки.Распоряжение = ЗаказТовары.Ссылка
		|			ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявкаНаВозвратТоваровОтКлиента.ЗаменяющиеТовары КАК ЗаказТоварыЗамена
		|			ПО ЗаказыОстатки.Номенклатура = ЗаказТоварыЗамена.Номенклатура
		|				И ЗаказыОстатки.Характеристика = ЗаказТоварыЗамена.Характеристика
		|				И ЗаказыОстатки.КодСтроки = ЗаказТоварыЗамена.КодСтроки
		|				И ЗаказыОстатки.Распоряжение = ЗаказТоварыЗамена.Ссылка
		|	ГДЕ
		|		ЗаказыОстатки.Регистратор <> &Регистратор) КАК ТаблицаЗаказы
		|
		|СГРУППИРОВАТЬ ПО
		|	ТаблицаЗаказы.ЗаказКлиента,
		|	ТаблицаЗаказы.Номенклатура,
		|	ТаблицаЗаказы.Характеристика,
		|	ТаблицаЗаказы.Склад,
		|	ТаблицаЗаказы.ОрдернаяСхемаПриОтгрузке,
		|	ТаблицаЗаказы.Серия,
		|	ТаблицаЗаказы.Назначение
		|
		|ИМЕЮЩИЕ
		|	(СУММА(ТаблицаЗаказы.Количество) > 0
		|		ИЛИ СУММА(ТаблицаЗаказы.КоличествоСобирается) > 0)
		|";
	
	// РаспоряженияНаОтгрузкуОборотыРазвернутая 1
	ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
	ПараметрыФормированияТаблицы.ТекстУсловия =
		"	Распоряжение В
		|		(ВЫБРАТЬ
		|			Распоряжение
		|		ИЗ
		|			ВТОтгрузкиТоваровПоРаспоряжениям)
		|	И Номенклатура.ВариантОформленияПродажи В (&МассивВариантовОформления)
		|	И (&НеОтбиратьПоОсобенностямУчета
		|		ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))";
	ПараметрыФормированияТаблицы.Группировка = "Распоряжение, Номенклатура, Характеристика, КодСтроки";
	ПараметрыФормированияТаблицы.Показатели =
		"Отгружено, ОприходованоДоППС, СписаноДоППС, Оформлено, Принято, ОформленоСчетовФактур";
	ПараметрыФормированияТаблицы.Ресурсы = "Количество, Сумма, СуммаНДСРегл, СуммаНДСУпр";
	
	РаспоряженияНаОтгрузкуОборотыРазвернутая1 =
		РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
			ПараметрыФормированияТаблицы);
	
	Запрос.Текст = СтрЗаменить(Запрос.Текст,
		"#РаспоряженияНаОтгрузкуОборотыРазвернутая1",
		РаспоряженияНаОтгрузкуОборотыРазвернутая1);
	
	// РаспоряженияНаОтгрузкуОборотыРазвернутая 2
	ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
	ПараметрыФормированияТаблицы.ТекстУсловия =
		"(Распоряжение, &ЭтоЗаказКакСчет) В
		|	(ВЫБРАТЬ
		|		ВТЗаказы.Ссылка,
		|		ВТЗаказы.ЭтоЗаказКакСчет
		|	ИЗ
		|		ВТЗаказы)
		|	И Номенклатура.ВариантОформленияПродажи В (&МассивВариантовОформления)
		|	И Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
		|	И (&НеОтбиратьПоОсобенностямУчета
		|		ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))
		|";
	ПараметрыФормированияТаблицы.Группировка = "Распоряжение, Номенклатура, Характеристика, КодСтроки";
	ПараметрыФормированияТаблицы.Показатели =
		"Отгружено, ОприходованоДоППС, СписаноДоППС, Оформлено, КПриемке, Принято, ОформленоСчетовФактур";
	ПараметрыФормированияТаблицы.Ресурсы = "Количество, Сумма, СуммаНДСРегл, СуммаНДСУпр";
	ПараметрыФормированияТаблицы.ФизическаяТаблица = Истина;
	
	РаспоряженияНаОтгрузкуОборотыРазвернутая2 =
		РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
			ПараметрыФормированияТаблицы);
	
	Запрос.Текст = СтрЗаменить(Запрос.Текст,
		"#РаспоряженияНаОтгрузкуОборотыРазвернутая2",
		РаспоряженияНаОтгрузкуОборотыРазвернутая2);
		
	// РаспоряженияНаОтгрузкуДвиженияРазвернутая 3
	ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
	ПараметрыФормированияТаблицы.ТекстУсловия =
		"(Регистратор, Распоряжение) В 
		|		(ВЫБРАТЬ
		|			ОтгрузкаТоваров,
		|			Распоряжение
		|		ИЗ
		|			ВТОтгрузкиТоваровПоРаспоряжениям)
		|	И НЕ Сторно
		|	И Номенклатура.ВариантОформленияПродажи В (&МассивВариантовОформления)
		|	И Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
		|	И (&НеОтбиратьПоОсобенностямУчета
		|		ИЛИ Номенклатура.ОсобенностьУчета В (&ОсобенностиУчетаНоменклатуры))";
	ПараметрыФормированияТаблицы.Группировка = "Распоряжение, Номенклатура, Характеристика, КодСтроки";
	ПараметрыФормированияТаблицы.Показатели = "Отгружено";
	ПараметрыФормированияТаблицы.Ресурсы = "Количество, Сумма";
	ПараметрыФормированияТаблицы.ФизическаяТаблица = Истина;
	
	РаспоряженияНаОтгрузкуДвиженияРазвернутая3 =
		РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
			ПараметрыФормированияТаблицы);
	
	Запрос.Текст = СтрЗаменить(Запрос.Текст,
		"#РаспоряженияНаОтгрузкуДвиженияРазвернутая3",
		РаспоряженияНаОтгрузкуДвиженияРазвернутая3);
	
	// РаспоряженияНаОтгрузкуДвиженияРазвернутая 4
	ПараметрыФормированияТаблицы = РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.НовыйПараметрыФормированияРазвернутойТаблицы();
	ПараметрыФормированияТаблицы.ТекстУсловия =
		"(Распоряжение, &ЭтоЗаказКакСчет) В
		|		(ВЫБРАТЬ
		|			Ссылка,
		|			ЭтоЗаказКакСчет
		|		ИЗ
		|			ВТЗаказыВсе)
		|	И ВЫБОР
		|		КОГДА ВЫРАЗИТЬ(&СкладРеализации КАК Справочник.Склады).ЭтоГруппа
		|			ТОГДА Склад В ИЕРАРХИИ (&СкладРеализации)
		|					ИЛИ Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
		|		ИНАЧЕ Склад В (ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка), &СкладРеализации)
		|	КОНЕЦ
		|	И Номенклатура В
		|		(ВЫБРАТЬ
		|			НоменклатураСВариантомОформления.Ссылка
		|		ИЗ
		|			НоменклатураСВариантомОформления)";
	ПараметрыФормированияТаблицы.Группировка =
		"Регистратор, Распоряжение, Номенклатура, Характеристика, КодСтроки, Склад, Серия";
	ПараметрыФормированияТаблицы.Показатели = "Отгружено";
	ПараметрыФормированияТаблицы.Ресурсы = "Количество";
	ПараметрыФормированияТаблицы.ФизическаяТаблица = Истина;
	
	РаспоряженияНаОтгрузкуДвиженияРазвернутая4 =
		РегистрыНакопления.РаспоряженияНаОтгрузкуИВозврат.ТекстЗапросаРазвернутаяТаблица(
			ПараметрыФормированияТаблицы);

	Запрос.Текст = СтрЗаменить(Запрос.Текст,
		"#РаспоряженияНаОтгрузкуДвиженияРазвернутая4",
		РаспоряженияНаОтгрузкуДвиженияРазвернутая4);
	
	// Текст запроса для получения ставки НДС, если распоряжение Отгрузка товаров клиенту
	Если ЗначениеЗаполнено(ДанныеОтбора.Организация) Тогда
		ОрганизацияДляРасчетаСтавкиНДС = ДанныеОтбора.Организация;
	ИначеЕсли ТипЗнч(МассивЗаказов) = Тип("Массив") И МассивЗаказов.Количество() > 0 Тогда
		ОрганизацияДляРасчетаСтавкиНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(МассивЗаказов[0], "Организация");
	КонецЕсли;
	
	Запрос.Текст = СтрЗаменить(Запрос.Текст,
		"&СтавкаНДСОтгрузкаТоваровБезРаспоряжения",
		УчетНДСУП.ТекстЗапросаСтавкаНДС(
			"ОтгрузкаТовары.Ссылка.НалогообложениеНДС",
			"ОтгрузкаТовары.Номенклатура",
			"&ВернутьМногооборотнуюТару"));
	
	Запрос.Текст = СтрЗаменить(Запрос.Текст,
		"&СтавкаНДСВводОстатковТоваров",
		УчетНДСУП.ТекстЗапросаСтавкаНДС(
			"ВводОстатковТовары.Ссылка.Партия.НалогообложениеНДС",
			"ВводОстатковТовары.Номенклатура",
			"&ВернутьМногооборотнуюТару"));
	
	УчетНДСУП.УстановитьПараметрыЗапросаСтавкиНДС(
		Запрос.Параметры,
		ОрганизацияДляРасчетаСтавкиНДС,
		?(ЗначениеЗаполнено(ДанныеОтбора.Ссылка),
			ДанныеОтбора.Ссылка.Дата,
			НачалоДня(ТекущаяДатаСеанса())));
			
	Запрос.УстановитьПараметр("СтранаРегистрации",
		ЗначениеНастроекКлиентСерверПовтИсп.СтранаРегистрацииОрганизации(ОрганизацияДляРасчетаСтавкиНДС));
	
	// Коэффициенты упаковок
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки1",
		Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
			"НакладнаяТовары.Упаковка",
			"НакладнаяТовары.Номенклатура"));
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки2",
		Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
			"ЗаказТовары.Упаковка",
			"ЗаказТовары.Номенклатура"));
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки3",
		Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
			"ТоварыРеализации.Упаковка",
			"ТоварыРеализации.Номенклатура"));
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки4",
		Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
			"ОтгрузкаТовары.Упаковка",
			"ОтгрузкаТовары.Номенклатура"));
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки5",
		Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
			"ВводОстатковТовары.Упаковка",
			"ВводОстатковТовары.Номенклатура"));

	УстановитьПривилегированныйРежим(Истина);
	Возврат Запрос.ВыполнитьПакет();
	
КонецФункции

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

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

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

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

//++ НЕ УТ
#Область ПодакцизныеТовары

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

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

#Область ТекущиеДела

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

	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьВПути1,", ?(ДоступностьВПути, "КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ДанныеПоДокументам.РеализацииТоваровИУслугВПути) КАК РеализацииТоваровИУслугВПути,", ""));
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьВПути2,", ?(ДоступностьВПути, "NULL КАК РеализацииТоваровИУслугВПути,", ""));
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьВПути3,", ?(ДоступностьВПути, "РеализацияТоваровУслуг.Ссылка,", ""));
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДоступностьВПути4,", ?(ДоступностьВПути, "NULL,", ""));

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

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

#Область ОбновлениеИнформационнойБазы

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

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

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

#Область ФормированиеГиперссылкиВЖурналеПродаж

Функция ТекстЗапросаЗаказыКОформлению(Организация = Неопределено, Склад = Неопределено) Экспорт

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

Функция ЕстьЗаказыКОформлению(Организация = Неопределено, Склад = Неопределено) Экспорт
		
	ТекстЗапроса = ТекстЗапросаЗаказыКОформлению(Организация, Склад);

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

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

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

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

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

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

#КонецЕсли

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