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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ПараметрыЗаполнения = УчетНДСУПКлиентСервер.ПараметрыЗаполненияНалогообложенияНДСЗакупки();
	
	ПараметрыЗаполнения.Контрагент = Объект.Контрагент;
	ПараметрыЗаполнения.Договор = Объект.Договор;
	ПараметрыЗаполнения.Период =  Объект.Дата;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область ИзменениеСтатуса

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

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

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

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

#КонецЕсли

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