Акт о расхождениях после перемещения / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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