Поступление от переработчика / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ПараметрыУказанияСерий = Новый Структура;
	ПараметрыУказанияСерий.Вставить("Товары", Новый ФиксированнаяСтруктура(ТоварыСерии));
	ПараметрыУказанияСерий.Вставить("ВозвратныеОтходы", Новый ФиксированнаяСтруктура(ВозвратныеОтходыСерии));

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

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

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

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

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

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

#Область Округление

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

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

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

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

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

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

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

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

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

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

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

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

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

	ДатаДокумента = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
	
	ПродукцияИОтходыПриПоступленииВОднойТЧ = 
		Объект.ВозвратныеОтходы.Количество() = 0
		И РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22(ДатаДокумента);

	Возврат ПродукцияИОтходыПриПоступленииВОднойТЧ;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функция ТекстЗапросаТаблицаДвиженияСерийТоваров(Запрос, ТекстыЗапроса, Регистры)
	
	ИмяРегистра = "ДвиженияСерийТоваров";

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

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

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

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

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

Функция ТекстЗапросаТаблицаПартииТоваровОрганизаций(Запрос, ТекстыЗапроса, Регистры)
	
	ИмяРегистра = "ПартииТоваровОрганизаций";

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

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

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

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

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

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

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

Функция ТекстЗапросаТаблицаПартииПроизводственныхЗатрат(Запрос, ТекстыЗапроса, Регистры)
	
	ИмяРегистра = "ПартииПроизводственныхЗатрат";

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	// Задание на размещение товаров
	Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(КомандыПечати, "ЗаданиеНаРазмещение");

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

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

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

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

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

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

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

Функция ЕстьДокументыКОформлению(Параметры)
	
	Возврат Обработки.ЖурналДокументовПереработки.ЕстьДокументыКОформлению(
		Параметры, Перечисления.ХозяйственныеОперации.ПоступлениеОтПереработчика);
	
КонецФункции

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

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

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

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

#Область ЗаполнениеДокументов

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

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

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

#КонецЕсли

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