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

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем КэшированныеЗначения; //используется механизмом обработки изменения реквизитов ТЧ

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

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

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

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

	// СтандартныеПодсистемы.ВерсионированиеОбъектов
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтаФорма);
	// Конец ИнтеграцияС1СДокументооборотом
	
	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаДокумента();
	ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
	ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
	ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
	ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
	ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
	
	ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	
	Элементы.ДекорацияСостояниеЭДО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");
	
	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

	// СтандартныеПодсистемы.РаботаСФайлами
	ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
	ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
	РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
	// Конец СтандартныеПодсистемы.РаботаСФайлами

	// СтандартныеПодсистемы.УчетОригиналовПервчиныхДокументов
	УчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.УчетОригиналовПервчиныхДокументов 

	УстановитьВидимостьКомандыЗаполнитьСтавкуНДС();

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	ОтключитьОтметкуНезаполненного();
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
	// Конец СтандартныеПодсистемы.РаботаСФайлами
	
	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	
КонецПроцедуры

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

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

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

	// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов	
	УчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия,ЭтотОбъект);
	// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
		
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

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

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

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
	
	ОчиститьСообщения();
	
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	// Обработчик механизма "Свойства"
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);

	МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);

	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
	// Конец ИнтеграцияС1СДокументооборотом
	
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

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

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

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

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

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура КлиентПриИзменении(Элемент)
	
	КлиентПриИзмененииНаСервере();
	РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура КонтактноеЛицоПриИзменении(Элемент)
	
	Если Объект.КонтактноеЛицо.Пустая() Тогда
		Возврат;
	ИначеЕсли Не Объект.Партнер.Пустая() Тогда
		Возврат;
	КонецЕсли;
	
	КонтактноеЛицоПриИзмененииСервер();
	
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
	
	КонтрагентПриИзмененииСервер();
	РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	
	ОрганизацияПриИзмененииСервер();
	РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
	
	ДоговорПриИзмененииСервер();
	РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
	
	ДатаПриИзмененииСервер();
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзменении(Элемент)
	
	ПриИзмененииХозяйственнойОперацииСервер();
	РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура НалогообложениеНДСПриИзменении(Элемент)
	
	ПриИзмененииНалогообложенияНДССервер();
	РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ЦенаВключаетНДСПриИзменении(Элемент)
	
	ЦенаВключаетНДСПриИзмененииСервер();
	РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
	
КонецПроцедуры

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

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

&НаСервере
Процедура СформироватьСпособОтраженияРасхожденией()

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

&НаКлиенте
Процедура ВалютаПриИзменении(Элемент)
	ВалютаДокумента = Объект.Валюта;
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
	
	Если ЗначениеЗаполнено(Объект.Менеджер) Тогда
		Объект.Подразделение = ПодразделениеМенеджера(Объект.Менеджер);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ДекорацияЭДОНажатие(Элемент, СтандартнаяОбработка)
	
	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ОбменСКонтрагентамиКлиент.СостояниеЭДОНажатие_ФормаДокумента(ЭтотОбъект, СтандартнаяОбработка);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()

	// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
	УчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект,Элементы.ДекорацияСостояниеОригинала);
	//Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов

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

&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
	
	ЗаполнитьНалогообложениеНДСНаСервере();
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыТовары

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

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

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

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

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

	СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
		ЭтаФорма.ИмяФормы, "Товары"));

	СтруктураДействий.Вставить("ЗаполнитьПодразделениеВСтрокеТЧ", Новый Структура("Подразделение", Объект.Подразделение));

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

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

&НаКлиенте
Процедура ТоварыКоличествоУпаковокПриИзменении(Элемент)
	
	РасхожденияКлиент.ТоварыКоличествоУпаковокПриИзменении(ЭтаФорма, КэшированныеЗначения);
	РасхожденияКлиентСервер.УправлениеДоступностью(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыУпаковкаПриИзменении(Элемент)
	
	РасхожденияКлиент.ТоварыУпаковкаПриИзменении(ЭтаФорма, КэшированныеЗначения);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
	
	РасхожденияКлиент.ТоварыЦенаПриИзменении(ЭтотОбъект, Элемент, КэшированныеЗначения);
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыСуммаПриИзменении(Элемент)
	
	РасхожденияКлиент.ТоварыСуммаПриИзменении(ЭтотОбъект, Элемент, КэшированныеЗначения);
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыСуммаНДСПриИзменении(Элемент)
	
	РасхожденияКлиент.ТоварыСуммаНДСПриИзменении(ЭтотОбъект, Элемент, КэшированныеЗначения);
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыСтавкаНДСПриИзменении(Элемент)
	
	РасхожденияКлиент.ТоварыСтавкаНДСПриИзменении(ЭтотОбъект, Элемент, КэшированныеЗначения);
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыСкладПриИзменении(Элемент)
	
	ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
	
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", Новый Структура("Склад, ПараметрыУказанияСерий", ТекущаяСтрока.Склад, ПараметрыУказанияСерий));
	
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыЗаказКлиентаПриИзменении(Элемент)
	
	
	Возврат; // в УТКА обработчик пустой
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыНазначениеПриИзменении(Элемент)
	
	
	Возврат; // в УТКА обработчик пустой
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
	
	Если Копирование Тогда 
		
		НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
				Элемент,КэшированныеЗначения,ПараметрыУказанияСерий, Копирование);
		
	КонецЕсли;

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

&НаКлиенте
Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
	
	ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
	
	НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
				Элемент,КэшированныеЗначения,ПараметрыУказанияСерий, Копирование);

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

&НаКлиенте
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	
	Если НоменклатураКлиент.НеобходимоОбновитьСтатусыСерий(Элемент,КэшированныеЗначения,ПараметрыУказанияСерий) Тогда
		
		ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Элементы.Товары.ТекущаяСтрока, КэшированныеЗначения);
		НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элемент, КэшированныеЗначения, ПараметрыУказанияСерий);
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ТоварыПриАктивизацииСтроки(Элемент)
	
	СобытияФормКлиент.ПриАктивизацииСтроки(ЭтотОбъект, Элемент);
	
КонецПроцедуры


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

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

&НаКлиенте
Процедура ТоварыКомментарийМенеджераПодвалПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
	ТекущиеДанные.ЕстьКомментарийМенеджера = Не ПустаяСтрока(ТекущиеДанные.КомментарийМенеджера);
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыКомментарийМенеджераПодвалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	КомментарийМенеджераНачалоВыбора();
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыКомментарийКлиентаПодвалНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	КомментарийКлиентаНачалоВыбора();
	
КонецПроцедуры

&НаКлиенте
Процедура ТоварыКомментарийКлиентаПодвалПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
	ТекущиеДанные.ЕстьКомментарийКлиента = Не ПустаяСтрока(ТекущиеДанные.КомментарийКлиента);
	
КонецПроцедуры

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

#Область ОбработчикиКомандФормы

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды


// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
	ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды


// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
	 РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ЗаполнитьПоРеализациямВыполнитьЗавершение(Результат, ДополнительныеПараметры) Экспорт 
	
	ЗаполнитьПоОснованиям();
	
КонецПроцедуры

&НаКлиенте
Процедура РеквизитыПечати(Команда)
	
	ОткрытьФорму("Обработка.РаботаСАктамиРасхождений.Форма.РеквизитыПечати",
	             Новый Структура("ДокументОбъект", Объект),
	             ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура УказатьСерии(Команда)
	
	ОткрытьПодборСерий();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ЗагрузитьИзВнешнегоФайлаЗавершение(АдресЗагруженныхДанных, ДополнительныеПараметры) Экспорт
	
	Если ЗначениеЗаполнено(АдресЗагруженныхДанных) Тогда
		ПолучитьЗагруженныеТоварыИзХранилища(АдресЗагруженныхДанных, КэшированныеЗначения);
	КонецЕсли;
	
КонецПроцедуры

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

&НаКлиенте
Процедура ТолькоРасхожденияВыполнить(Команда)
	
	РасхожденияКлиент.ТолькоРасхожденияВыполнить(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ПровестиДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
	
	ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ЗаполнитьСтавкуНДС(Команда)

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

	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ЗаполнитьСтавкуНДСЗавершение", ЭтотОбъект);
	ПараметрыФормы = Новый Структура();
	ПараметрыФормы.Вставить("ТипНалогообложенияНДС", Объект.НалогообложениеНДС);
	ПараметрыФормы.Вставить("ДатаАктуальности", Объект.Дата);
	ОткрытьФорму("Справочник.СтавкиНДС.ФормаВыбора", ПараметрыФормы,,,,, ОповещениеОЗакрытии);

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

&НаКлиенте
Процедура ЗаполнитьСтавкуНДСЗавершение(СтавкаНДС, ДополнительныеПараметры) Экспорт

	Если СтавкаНДС = Неопределено Тогда
		Возврат;
	КонецЕсли;

	ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения);

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

&НаСервере
Процедура ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения)

	СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);

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

	РасхожденияКлиентСервер.РассчитатьИтоговыеПоказателиФормы(ЭтотОбъект);

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

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

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

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

// СтандартныеПодсистемы.Свойства
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
	УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Свойства

// ИнтеграцияС1СДокументооборотом
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
	
	ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтаФорма, Объект);
	
КонецПроцедуры
// Конец ИнтеграцияС1СДокументооборотом

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

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

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

// СтандартныеПодсистемы.Свойства

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

&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

// Конец СтандартныеПодсистемы.Свойства

&НаКлиенте
Процедура КомментарийМенеджераНачалоВыбора()

	РасхожденияКлиент.КомментарийНачалоВыбора(ЭтотОбъект, 
	                                         "КомментарийМенеджера",
	                                         "ЕстьКомментарийМенеджера",
	                                         "ТоварыКомментарийМенеджераПодвал");

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

&НаКлиенте
Процедура КомментарийКлиентаНачалоВыбора()

	РасхожденияКлиент.КомментарийНачалоВыбора(ЭтотОбъект, 
	                                          "КомментарийКлиента", 
	                                          "ЕстьКомментарийКлиента", 
	                                          "ТоварыКомментарийКлиентаПодвал");

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

&НаСервере
Процедура УстановитьУсловноеОформление()

	УсловноеОформление.Элементы.Очистить();
	
	РасхожденияСервер.АктОРасхожденияхУстановитьУсловноеОформлениеФормыДокумента(ЭтотОбъект);
	
	// ТоварыТекстовоеОписание отметка незаполненного

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыТекстовоеОписание.Имя);
	
	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;

	ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Номенклатура");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;

	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
	
	// ТоварыТекстовоеОписание только просмотр
	
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыТекстовоеОписание.Имя);

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

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

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодСтроки.Имя);

	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

	ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ЗаказКлиента");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;

	ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КодСтроки");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
	
	// ТоварыКодСтрокиСверхЗаказа видимость

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказКлиента.Имя);

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

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодСтроки.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КодСтроки");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = 0;

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗаказКлиента");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<сверх заказа>'"));
	
	// ТоварыДокументПоступления только просмотр

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДокументПоступления.Имя);

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

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказКлиента.Имя);
	
	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;

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

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДокументОснование.Имя);
	
	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;

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

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказКлиента.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКодСтроки.Имя);

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

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаказКлиента.Имя);
	
	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;

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

	// Реализация отметка незаполненного

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДокументОснование.Имя);

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

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);

	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
	
		ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Подразделение");
		ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
		
		ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
		ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
		ОтборЭлемента.ПравоеЗначение = ПродажиСервер.ТипыНоменклатурыСАналитикойПодразделение();

		Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);

	// отключение видимости подразделения, если товар или тара или операция комиссии

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);

	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

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

	ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;

	ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
	ОтборЭлемента.ПравоеЗначение = ПродажиСервер.ТипыНоменклатурыСАналитикойПодразделение();

	Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);

	// поясняющая надпись для подразделения, если склады не в табличной части

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПодразделение.Имя);

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

	Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<для работ>'"));
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
	
	// Склад отметка незаполненного

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСклад.Имя);

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

	ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеВидовЦен(ЭтаФорма);

	// Серии номенклатуры
	
	РасхожденияСервер.УстановитьУсловноеОформлениеСерий(ЭтаФорма, "СерииПриПланированииОтгрузкиУказываютсяВТЧТовары");

	// Сумма

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСумма.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Сумма");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;

	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

	ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ТипНоменклатуры");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
	СписокЗначений = Новый СписокЗначений;
	СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Товар);
	СписокЗначений.Добавить(Перечисления.ТипыНоменклатуры.Работа);
	ОтборЭлемента.ПравоеЗначение = СписокЗначений;

	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
	
	// Недоступность элементов таблицы товары по реализациям
	
	Элемент = УсловноеОформление.Элементы.Добавить();

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

	ПараметрыУстановки = МногооборотнаяТараСервер.ПараметрыУстановкиУсловногоОформленияДляСтрокСМногооборотнойТарой();
	
	ПараметрыУстановки.Форма                 = ЭтаФорма;
	ПараметрыУстановки.ЭтоПоступление        = Истина;
	ПараметрыУстановки.ПутьКПолюОтбораВернутьМногооборотнуюТару	= "Объект.Товары.ВернутьМногооборотнуюТару";
	ПараметрыУстановки.ПутьКПолюОтбораТребуетсяЗалогЗаТару		= "Объект.Товары.ТребуетсяЗалогЗаТару";
	
	МногооборотнаяТараСервер.УстановитьУсловноеОформлениеДляСтрокСМногооборотнойТарой(ПараметрыУстановки);

	// Недоступность цены, если вид цены не произвольная количество
	
	Элемент = УсловноеОформление.Элементы.Добавить();

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

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

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

	// Расхождение количество

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКоличествоРасхождения.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.КоличествоУпаковокРасхождения");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
	ОтборЭлемента.ПравоеЗначение = 0;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Кирпичный);
	
	// НеДоступность документов оснований

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ДокументыОснованиеПредставление.Имя);

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

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаРасхождения.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СуммаРасхождения");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
	ОтборЭлемента.ПравоеЗначение = 0;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Кирпичный);
	
	// Расхождение сумма НДС

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаНДСРасхождения.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.СуммаНДСРасхождения");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
	ОтборЭлемента.ПравоеЗначение = 0;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Кирпичный);
	
	// Расхождение сумма с НДС

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаСНДСРасхождения.Имя);

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

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

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

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

	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
	
	// ТоварыСумма только просмотр
	
	ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСумма.Имя);

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

&НаСервере
Процедура УстановитьПредставлениеТоварыДействие()
	
	// 1. ХО = Отгрузка товаров клиенту
	
	// Недостачи
	
	// 1.1. Вариант действий = ДопоставкаНеТребуется
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить отгрузку товаров клиенту'"));

	// 1.2. Вариант действий = ТребуетсяДопоставка
	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить отгрузку товаров клиенту и допоставить'"));

	// 1.3. Вариант действий = ТребуетсяСписание
	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Списать за наш счет'"));

	// 1.4. Вариант действий = ТребуетсяСписаниеДопоставка
	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Списать за наш счет и допоставить'"));

	// 1.5. Вариант действий = НедостачаНеПризнана
	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст",
		НСтр("ru = 'Не признавать и не учитывать расхождения в реализации'"));

	// Излишки

	// 1.1. Вариант действий = ПокупкаПерепоставленного
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить отгрузку товаров клиенту'"));

	// 1.2. Вариант действий = ВозвратПерепоставленного
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить отгрузку товаров клиенту и вернуть'"));

	// 1.3. Вариант действий = ТребуетсяОприходование
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Отнести на доходы'"));

	// 1.4. Вариант действий = ТребуетсяОприходованиеВозврат
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Отнести на доходы и вернуть'"));

	// 1.5. Вариант действий = ПерепоставленноеДарится
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст",
		НСтр("ru = 'Не признавать и не учитывать расхождения в реализации'"));

	// 2. ХО = Переход права собственности
	
	// Недостачи

	// 2.1. Вариант действий = УменьшитьПереходПраваСобственности
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить переход права собственности'"));

	// 2.2. Вариант действий = ДопоставкаНеТребуется
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить все документы'"));

	// 2.3. Вариант действий = ТребуетсяДопоставка и Способ отражения = ИсправлениеПервичныхДокументов
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить все документы и допоставить'"));

	// 2.4. Вариант действий = ТребуетсяДопоставка и Способ отражения <> ИсправлениеПервичныхДокументов
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить переход права собственности и допоставить'"));

	// 2.5. Вариант действий = ТребуетсяСписание
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Списать за наш счет'"));

	// 2.6. Вариант действий = ТребуетсяСписаниеДопоставка
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Списать за наш счет и допоставить'"));

	// Излишки

	// 2.1. Вариант действий = УвеличитьПереходПраваСобственности
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить переход права собственности'"));
	
	// 2.2. Вариант действий = ПокупкаПерепоставленного
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить все документы'"));

	// 2.3. Вариант действий = ВозвратПерепоставленного и Способ отражения = ИсправлениеПервичныхДокументов
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить все документы и вернуть'"));

	// 2.4. Вариант действий = ВозвратПерепоставленного и Способ отражения <> ИсправлениеПервичныхДокументов
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Переоформить переход права собственности и вернуть'"));

	// 2.5. Вариант действий = ТребуетсяОприходование
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Отнести на доходы'"));

	// 2.6. Вариант действий = ТребуетсяОприходованиеВозврат
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДействие.Имя);

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Отнести на доходы и вернуть'"));

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

&НаСервере
Процедура УстановитьВидимостьКомандыЗаполнитьСтавкуНДС()

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

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

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

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

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

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

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

		Элементы.ТоварыЗаполнитьПоОснованиям.Заголовок = НСтр("ru = 'По отгрузке товаров клиенту'");
		Элементы.ТоварыДокументОснование.Заголовок     = НСтр("ru = 'Отгрузка товаров клиенту'");
		Элементы.ПоРеализациямБезНДС.Заголовок         = НСтр("ru = 'По отгрузке товаров клиенту'");
		Элементы.ПоРеализациямСНДС.Заголовок           = НСтр("ru = 'По отгрузке товаров клиенту'");
		
		Элементы.ТоварыДокументПоступления.Видимость = Ложь;

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

&НаСервере
Процедура ЗаполнитьНалогообложениеНДСНаСервере()
	
	ЗаполнитьНалогообложениеНДС(Истина, Ложь);
	ПриИзмененииНалогообложенияНДССервер();
	
КонецПроцедуры

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

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

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

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

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

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

&НаСервере
Процедура ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(ТекущаяСтрокаИдентификатор, КэшированныеЗначения)
	
	НоменклатураСервер.ЗаполнитьСтатусыУказанияСерийПриОкончанииРедактированияСтрокиТЧ(Объект, 
		ПараметрыУказанияСерий, ТекущаяСтрокаИдентификатор, КэшированныеЗначения);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ОбработкаВыбораПодборНаКлиенте(ВыбранноеЗначение)
	
	ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение, КэшированныеЗначения);
	
КонецПроцедуры

&НаСервере
Процедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение, КэшированныеЗначения)
	
	РасхожденияСервер.ОбработкаВыбораПодборНаСервере(ЭтаФорма, КэшированныеЗначения, ВыбранноеЗначение, Истина);
	
КонецПроцедуры

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

&НаСервере
Процедура КонтактноеЛицоПриИзмененииСервер()
	
	ВладелецКонтактногоЛица = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.КонтактноеЛицо, "Владелец");
	Если ВладелецКонтактногоЛица <> Объект.Партнер Тогда
		Объект.Партнер = ВладелецКонтактногоЛица;
		КлиентПриИзмененииНаСервере();
	КонецЕсли;
	
КонецПроцедуры

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

&НаСервере
Процедура ЦенаВключаетНДСПриИзмененииСервер()
	
	РасхожденияСервер.УправлениеВидимостьюНДС(ЭтаФорма);
	
КонецПроцедуры

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

	УстановитьВидимостьКомандыЗаполнитьСтавкуНДС();

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

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

&НаСервере
Процедура ДоговорПриИзмененииСервер()
	
	ЗаполнитьНалогообложениеНДС();
	ПриИзмененииНалогообложенияНДССервер();
	
	ПриИзмененииКлючевыхРеквизитовСостояниеЭДО();
	
	ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
	
КонецПроцедуры

&НаСервере
Процедура ДатаПриИзмененииСервер()
	
	ЗаполнитьНалогообложениеНДС(Истина, Ложь);
	ПриИзмененииНалогообложенияНДССервер();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура УстановитьВидимостьЭлементовПоОперацииСервер()

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

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

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

&НаСервере
Процедура ПолучитьЗагруженныеТоварыИзХранилища(АдресТоваровВХранилище, КэшированныеЗначения)
	
	СамообслуживаниеСервер.ПолучитьЗагруженныеТоварыИзХранилища(ЭтаФорма, КэшированныеЗначения ,АдресТоваровВХранилище, Истина);
	
КонецПроцедуры

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

&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
	
	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
	
КонецПроцедуры

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

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
	
	ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтаФорма, Объект);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
	
	ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
	
КонецПроцедуры
// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ИзменитьДействие(Команда)

	РасхожденияКлиент.ИзменитьДействиеВыделенныхСтрок(
		Объект,
		ЭтотОбъект,
		Объект.ТипОснованияАктаОРасхождении,
		ПоказыватьПояснение);

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

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

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

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

&НаКлиенте
Процедура ОформитьДокументыНажатие(Элемент)
	
	РасхожденияКлиент.ОформитьДокументыНажатие(ЭтотОбъект);
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПодразделениеМенеджера(Менеджер)
	
	Возврат ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Менеджер);
	
КонецФункции

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

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

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