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

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

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

Процедура ПриКопировании(ОбъектКопирования)
	
	ИнициализироватьДокумент();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

	ИначеЕсли ТипОснованияАктаОРасхождении = Перечисления.ТипыОснованияАктаОРасхождении.ОтгрузкаТоваровКлиенту Тогда

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

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

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

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

Процедура ОбработкаУдаленияПроведения(Отказ)
	
	ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
	
	АктОРасхожденияхПослеОтгрузкиЛокализация.ОбработкаУдаленияПроведения(ЭтотОбъект, Отказ);
	
КонецПроцедуры

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

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

#Область ИнициализацияИЗаполнение

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

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

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

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

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

Функция ТекстЗапросаПоОснованиюОтгрузкиТоваровКлиенту()

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

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

Функция ТекстЗапросаПоОснованиюВозврату()

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

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

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

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

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

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

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

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

#Область УсловияПродаж

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

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

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

// Заполняет условия продаж по соглашению в документе
//
Процедура ЗаполнитьУсловияПродажПоСоглашению(СегментНоменклатуры) Экспорт
	
	УсловияПродаж = ПродажиСервер.ПолучитьУсловияПродаж(Соглашение, Истина, Истина);
	ЗаполнитьУсловияПродаж(УсловияПродаж, СегментНоменклатуры);
	ЗаполнитьНалогообложениеНДС();
	
КонецПроцедуры

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

#Область УсловияЗакупок

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

// Заполняет условия продаж по соглашению в возврате товаров поставщику
//
Процедура ЗаполнитьУсловияЗакупокПоСоглашению() Экспорт
	
	УсловияЗакупок = ЗакупкиСервер.ПолучитьУсловияЗакупок(Соглашение);
	ЗаполнитьУсловияЗакупок(УсловияЗакупок);
	ЗаполнитьНалогообложениеНДС();
	ПартнерыИКонтрагенты.ЗаполнитьКонтрагентаПартнераПоУмолчанию(Партнер, Контрагент);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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