Ордер на отражение пересортицы товаров / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область Назначения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ДатаЦенообразования = ОбщегоНазначенияУТ.ПолучитьМаксимальнуюДатуДокументов(МассивДокументов);
	ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25(ДатаЦенообразования);

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

// Функция формирует данные для печати ценников на основании данных табличной части 'Товары' документов
// ордеров на отражение пересортицы товаров.
//
// Параметры:
//	МассивДокументов - Массив - массив ссылок на документы ордеров на отражение пересортицы товаров.
//
// Возвращаемое значение:
//	Структура - данные для печати этикеток:
//		* Товары            - ТаблицаЗначений - таблица товаров документа ордера на отражение пересортицы товаров,
//		* СтруктураДействий - Структура - структура действий, которые необходимо выполнить перед печатью ценников.
//
Функция ДанныеДляПечатиЦенников(МассивДокументов) Экспорт

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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