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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

		ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям =
			ВозможенУчетСерийВЭксплуатации 
			ИЛИ ПараметрыСерийПолучатель.УчитыватьСебестоимостьПоСериям;
		
	Иначе
		
		ПараметрыУказанияСерий.ИспользоватьСерииНоменклатуры = 
			ПараметрыСерийПолучатель.ИспользоватьСерииНоменклатуры
			И (Не СкладыСервер.ИспользоватьОрдернуюСхемуПриПоступлении(Объект.Склад, Объект.Дата))
				ИЛИ ПараметрыСерийПолучатель.УчитыватьСебестоимостьПоСериям;

		ПараметрыУказанияСерий.УчитыватьСебестоимостьПоСериям = ПараметрыСерийПолучатель.УчитыватьСебестоимостьПоСериям;
		
	КонецЕсли;
	
	
	ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ПриемкаПоПрочемуОприходованию);
	Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратИзЭксплуатации Тогда
		ПараметрыУказанияСерий.СкладскиеОперации.Добавить(Перечисления.СкладскиеОперации.ВыбытиеТМЦИзЭксплуатации);
	КонецЕсли;

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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

Функция ОперацииПриКоторыхМожноНеЗаполнятьПодразделение() Экспорт

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

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


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

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

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

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

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

	СформироватьТаблицуВтСписокДокументов(Запрос);
	ПолучитьДанныеДокумента(Запрос);

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

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

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

Функция ЗначенияПараметровПроведения(Реквизиты = Неопределено)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


	//-- Локализация
	|	0
	//++ Локализация


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

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

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

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

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

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

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

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

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

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

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

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

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

	Запрос = Новый Запрос;
	ТекстЗапроса =
	"ВЫБРАТЬ
	|	Документ.Ссылка КАК Ссылка,
	|	Документ.Номер КАК Номер,
	|	Документ.Дата КАК Дата,
	|	Документ.ИсправляемыйДокумент.Номер КАК НомерИсправляемогоДокумента,
	|	Документ.ИсправляемыйДокумент.Дата КАК ДатаИсправляемогоДокумента,
	|	Документ.Склад КАК Склад,
	|	Документ.Валюта КАК Валюта,
	|	Документ.Подразделение КАК Подразделение,
	|	Документ.Организация КАК Организация,
	|	ПРЕДСТАВЛЕНИЕ(Документ.Склад) КАК СкладПредставление,
	|	ПРЕДСТАВЛЕНИЕ(Документ.Подразделение) КАК ПодразделениеПредставление
	|ИЗ
	|	Документ.ПрочееОприходованиеТоваров КАК Документ
	|ГДЕ
	|	Документ.Ссылка В(&МассивОбъектов)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Ссылка
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ТаблицаТовары.Номенклатура КАК Номенклатура,
	|	ТаблицаТовары.Номенклатура.Код КАК ДопКолонка,
	|	ТаблицаТовары.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
	|	ТаблицаТовары.Характеристика.НаименованиеПолное КАК ХарактеристикаПредставление,
	|	&ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ЕдиницаИзмеренияПредставление,
	|	ТаблицаТовары.КоличествоУпаковок КАК КоличествоУпаковок,
	|	ТаблицаТовары.НомерСтроки Как НомерСтроки,
	|	ТаблицаТовары.Цена КАК Цена,
	|	ТаблицаТовары.Сумма КАК Сумма,
	|	ТаблицаТовары.Ссылка КАК Ссылка,
	|	ТаблицаТовары.Количество КАК Количество,
	|	ВЫБОР
	|		КОГДА ТаблицаТовары.СтатусУказанияСерий = 14
	|			ТОГДА ТаблицаТовары.Серия
	|		ИНАЧЕ ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)
	|	КОНЕЦ КАК Серия,
	|	ТаблицаТовары.Серия.Представление
	|ИЗ
	|	Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаТовары
	|ГДЕ
	|	НЕ ТаблицаТовары.СтатусУказанияСерий В (4, 6, 8, 10)
	|	И ТаблицаТовары.Ссылка В(&МассивОбъектов)
	|	И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ТаблицаТовары.Номенклатура,
	|	ТаблицаТовары.Номенклатура.Код,
	|	ТаблицаТовары.Номенклатура.НаименованиеПолное,
	|	ТаблицаТовары.Характеристика.НаименованиеПолное,
	|	ПРЕДСТАВЛЕНИЕ(ТаблицаТовары.Номенклатура.ЕдиницаИзмерения),
	|	МАКСИМУМ(ТаблицаСерии.Количество),
	|	ТаблицаТовары.НомерСтроки Как НомерСтроки,
	|	ТаблицаТовары.Цена,
	|	ТаблицаТовары.Сумма,
	|	ТаблицаТовары.Ссылка,
	|	МАКСИМУМ(ТаблицаСерии.Количество),
	|	ТаблицаСерии.Серия,
	|	ТаблицаСерии.Серия.Представление
	|ИЗ
	|	Документ.ПрочееОприходованиеТоваров.Товары КАК ТаблицаТовары
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПрочееОприходованиеТоваров.Серии КАК ТаблицаСерии
	|		ПО ТаблицаТовары.Номенклатура = ТаблицаСерии.Номенклатура
	|			И ТаблицаТовары.Характеристика = ТаблицаСерии.Характеристика
	|			И ТаблицаТовары.Назначение = ТаблицаСерии.Назначение
	|			И ТаблицаТовары.Ссылка = ТаблицаСерии.Ссылка
	|ГДЕ
	|	ТаблицаТовары.Ссылка В(&МассивОбъектов)
	|	И ТаблицаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
	|
	|СГРУППИРОВАТЬ ПО
	|	ТаблицаТовары.Номенклатура,
	|	ТаблицаТовары.Номенклатура.Код,
	|	ТаблицаТовары.Номенклатура.НаименованиеПолное,
	|	ТаблицаТовары.Характеристика.НаименованиеПолное,
	|	ТаблицаТовары.НомерСтроки,
	|	ТаблицаТовары.Цена,
	|	ТаблицаТовары.Ссылка,
	|	ТаблицаСерии.НомерСтроки,
	|	ТаблицаТовары.Сумма,
	|	ТаблицаСерии.Серия,
	|	ТаблицаСерии.Серия.Представление,
	|	ПРЕДСТАВЛЕНИЕ(ТаблицаТовары.Номенклатура.ЕдиницаИзмерения)
	|
	|ИМЕЮЩИЕ
	|	МАКСИМУМ(ТаблицаТовары.СтатусУказанияСерий) В (4, 6, 8, 10)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Ссылка,
	|	НомерСтроки
	|ИТОГИ ПО
	|	Ссылка";
	
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстЗапросаНаименованиеЕдиницыИзмерения",
		Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
			"Наименование",
			"ТаблицаТовары.Упаковка",
			"ТаблицаТовары.Номенклатура"));
	
	Если ВыводитьДопКолонку И ДопКолонка <> "Код" Тогда 
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Номенклатура.Код", "Номенклатура." + ДопКолонка);
	КонецЕсли;
	
	Запрос.Текст = ТекстЗапроса;
	
	РеквизитыДокумента = Новый Структура("Номер, Дата, НомерИсправляемогоДокумента, ДатаИсправляемогоДокумента");
	СинонимДокумента = НСтр("ru='Оприходование товаров'", ОбщегоНазначения.КодОсновногоЯзыка());

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

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

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

#Область НаправленияДеятельности

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

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


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

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

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

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

#КонецЕсли

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