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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

	// Приходная накладная
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ПриходнаяНакладная";
	КомандаПечати.Представление = НСтр("ru = 'Приходная накладная'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
	
	// Задание на размещение товаров
	Обработки.ПечатьЗаданияНаОтборРазмещениеТоваров.ДобавитьКомандуПечати(КомандыПечати, "ЗаданиеНаРазмещение");
	
	ПоступлениеТоваровНаСкладЛокализация.ДобавитьКомандыПечати(КомандыПечати);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

Функция ПолноеИмяОбъекта()
	Возврат "Документ.ПоступлениеТоваровНаСклад";
КонецФункции

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

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

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

#КонецЕсли

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