Заявление о ввозе товаров из ЕАЭС / Форма документа / Модуль формы

файл

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	УстановитьУсловноеОформление();
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
	
	УстановитьФункциональныеОпцииФормы();

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

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

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

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

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

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

	ТекущийОбъект.СтруктураРеквизитовВыгрузки = Новый ХранилищеЗначения(СтруктураРеквизитовВыгрузки);

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

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

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

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

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)

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

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

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если ЗавершениеРаботы Тогда
		Возврат;
	КонецЕсли;
	
	ОповеститьОВыборе(Объект.Ссылка);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ОрганизацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	ОбработкаВыбораОрганизацииКонтрагента("Организация", ВыбранноеЗначение, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
	
	УправлениеФормой(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	ОбработкаВыбораОрганизацииКонтрагента("Контрагент", ВыбранноеЗначение, СтандартнаяОбработка);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ДоговорОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.ДоговорыКонтрагентов") 
		//++ НЕ УТ
		ИЛИ ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.ДоговорыАренды")
		//-- НЕ УТ
		Тогда
		ОбработкаВыбораОрганизацииКонтрагента("Договор", ВыбранноеЗначение, СтандартнаяОбработка);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ТоварыНалоговаяБазаАкцизыПриИзменении(Элемент)

	ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
	РассчитатьСуммуАкцизов(ТекущиеДанные);
	
	ДанныеОбъекта = Новый Структура(
			"ВалютаРегламентированногоУчета, ВалютаДолларыСША, Валюта",
			ВалютаРегламентированногоУчета, ВалютаДолларыСША, ТекущиеДанные.Валюта);
	РасcчитатьСуммыВТабличнойЧасти(ТекущиеДанные.НомерСтроки, ДанныеОбъекта);

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

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

	ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
	РассчитатьСуммуАкцизов(ТекущиеДанные);
	
	ДанныеОбъекта = Новый Структура(
			"ВалютаРегламентированногоУчета, ВалютаДолларыСША, Валюта",
			ВалютаРегламентированногоУчета, ВалютаДолларыСША, ТекущиеДанные.Валюта);
	РасcчитатьСуммыВТабличнойЧасти(ТекущиеДанные.НомерСтроки, ДанныеОбъекта);

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

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

	ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
	РассчитатьСуммуАкцизов(ТекущиеДанные);
	
	ДанныеОбъекта = Новый Структура(
			"ВалютаРегламентированногоУчета, ВалютаДолларыСША, Валюта",
			ВалютаРегламентированногоУчета, ВалютаДолларыСША, ТекущиеДанные.Валюта);
	РасcчитатьСуммыВТабличнойЧасти(ТекущиеДанные.НомерСтроки, ДанныеОбъекта);

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

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

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

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

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

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

	// Рассчитаем по налоговой базе в рублях статистическую стоимость в долларах на дату принятия на учет.
	Если ДанныеОбъекта.ВалютаДолларыСША <> Справочники.Валюты.ПустаяСсылка() Тогда
		СтруктураКурса = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(ДанныеОбъекта.ВалютаДолларыСША, СтрокаТабличнойЧасти.ДатаПринятияНаУчет, ДанныеОбъекта.ВалютаРегламентированногоУчета);
		СтрокаТабличнойЧасти.СтатСтоимостьДолларыСША = СтрокаТабличнойЧасти.НалоговаяБазаНДС * (СтруктураКурса.КурсЗнаменатель/СтруктураКурса.КурсЧислитель);
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ОбработкаВыбораРеквизитыПечатиНаСервере(ВыбранноеЗначение)

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

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

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

&НаКлиенте
Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	
	ОбновитьИтоги(ЭтотОбъект);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ДобавитьСтрокиВручную(Команда)
	
	НоваяСтрока = Объект.Товары.Добавить();
	НоваяСтрока.Валюта = ВалютаРегламентированногоУчета;
	НоваяСтрока.ВалютаРегл = ВалютаРегламентированногоУчета;
	НоваяСтрока.ВалютаЕдиницаСтавкиАкциза = ВалютаРегламентированногоУчета;

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

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

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

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

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

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

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

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

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

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

#Область ПриИзмененииРеквизитов

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

	УправлениеФормой(ЭтотОбъект);
	
	// ++ НЕ УТ
	СтруктураРеквизитовЗаявления = РеквизитыЗаявления();
	СтруктураРеквизитовВыгрузки = ЗаявлениеОВвозеЛокализация.ОбновитьДанныеРеквизитовВыгрузки(СтруктураРеквизитовЗаявления);
	// -- НЕ УТ
	
КонецПроцедуры

&НаСервере
Процедура ДоговорПриИзмененииНаСервере()

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

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

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

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

#Область ГиперссылкиПодвалаФормы

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

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

//++ Локализация

&НаСервере
Функция ПоместитьДопРеквизитыВоВременноеХранилищеНаСервере()

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

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

//-- Локализация

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

#Область ОтправкаВФНС

&НаКлиенте
Процедура ОтправитьВКонтролирующийОрган(Команда)
	
	// ++ Локализация
	
	// ++ НЕ УТ
	
	РегламентированнаяОтчетностьКлиент.ПриНажатииНаКнопкуОтправкиВКонтролирующийОрган(ЭтаФорма);
	
	// -- НЕ УТ
	
	// -- Локализация
	
	Возврат; // Не требуется в УТ
	
КонецПроцедуры

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

#Область ПанельОтправкиВКонтролирующиеОрганы

&НаКлиенте
Процедура ПараметрыВыгрузкиЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	Если Результат <> Неопределено Тогда
		
		СтруктураРеквизитовВыгрузки = Результат;
		
		Модифицированность = Истина;
				
	КонецЕсли;

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

//++ Локализация

&НаКлиенте
Процедура ДопРеквизитыЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	Если Результат <> Неопределено Тогда
		
		ПолучитьРеквизитыПечатиИзВременногоХранилища(Результат);
		
		Модифицированность = Истина;
				
	КонецЕсли;
	
КонецПроцедуры

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

//-- Локализация

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

#Область ПодачаСтатформыВФТС

&НаКлиенте
Процедура СоздатьСтатформуВФТСНажатие(Элемент)
	
	// ++ НЕ УТ
	
	ЗаявлениеОВвозеКлиентЛокализация.СоздатьСтатформуВФТС(ЭтотОбъект);
	
	// -- НЕ УТ
	
	Возврат; // Не требуется в УТ
	
КонецПроцедуры

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

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

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

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

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

	// НомерСчетаФактуры
	Элемент = УсловноеОформление.Элементы.Добавить();

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

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

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

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

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

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

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

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

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

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

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

	// КодТНВЭДЕдиницаИзмерения 
	Элемент = УсловноеОформление.Элементы.Добавить();

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

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

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыГруппаНалоговаяБазаАкциза.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыНалоговаяБазаАкцизы.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЕдиницаИзмеренияАкциза.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыГруппаТвердаяСтавкаАкциза.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыТвердаяСтавкаАкциза.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыВалютаЕдиницаСтавкиАкциза.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыАдвалорнаяСтавкаАкциза.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыГруппаСуммаАкциза.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаАкциза.Имя);
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыВалютаРеглАкциз.Имя);

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

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

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

	Объект = Форма.Объект;
	Форма.ИтогиВсегоНДС = Окр(Объект.Товары.Итог("СуммаНДС"));

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

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

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

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()

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

	УстановитьВидимостьЭлементовФормы();
	ЗаполнитьДополнительныеПризнакиТоваров();
	УправлениеФормой(ЭтотОбъект);
	ОбновитьИтоги(ЭтотОбъект);
	
КонецПроцедуры

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

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьСуммуАкцизов(ТекущаяСтрока)
	
	Если ТекущаяСтрока = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ТвердаяСтавкаАкциза = ТекущаяСтрока.ТвердаяСтавкаАкциза; 
	Если ЗначениеЗаполнено(ТекущаяСтрока.ВалютаАкциза)
		И ТекущаяСтрока.ВалютаАкциза <> ТекущаяСтрока.ВалютаРегл Тогда
		ТвердаяСтавкаАкциза = Окр(ТекущаяСтрока.ТвердаяСтавкаАкциза
			* КоэффициентПересчетаВВалютуАкциза(
				ТекущаяСтрока.ВалютаАкциза,
				ТекущаяСтрока.ВалютаРегл,
				ТекущаяСтрока.ДатаПринятияНаУчет), 2);
	КонецЕсли;
	
	ТекущаяСтрока.СуммаАкциза = ТекущаяСтрока.НалоговаяБазаАкцизы * ТвердаяСтавкаАкциза 
									+ ТекущаяСтрока.НалоговаяБазаАкцизы * ТекущаяСтрока.АдвалорнаяСтавкаАкциза / 100;

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

&НаСервере
Процедура РасcчитатьСуммыВТабличнойЧасти(НомерСтрокиТабличнойЧасти, ДанныеОбъекта)
	
	РасчитатьСуммыВТабличнойЧастиНаСервере(Объект.Товары[НомерСтрокиТабличнойЧасти-1], ДанныеОбъекта);
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура ПроверитьВыгрузку(Команда)
	
	// ++ НЕ УТ
	ЗаявлениеОВвозеКлиентЛокализация.ПроверитьВыгрузку(ЭтотОбъект);
	// -- НЕ УТ
	
	Возврат; // В УТ не требуется
	
КонецПроцедуры

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

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

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

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

// ++ НЕ УТ
&НаСервере
Функция РеквизитыЗаявления()
	
	СтруктураРеквизитов = Новый Структура();
	СтруктураРеквизитов.Вставить("Ссылка", 						Объект.Ссылка);
	СтруктураРеквизитов.Вставить("Дата", 						Объект.Дата);
	СтруктураРеквизитов.Вставить("Организация", 				Объект.Организация);
	СтруктураРеквизитов.Вставить("СтруктураРеквизитовВыгрузки", СтруктураРеквизитовВыгрузки);
	
	Возврат СтруктураРеквизитов;
	
КонецФункции
// -- НЕ УТ

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

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

&НаСервереБезКонтекста
Функция КоэффициентПересчетаВВалютуАкциза(ВалютаАкциза, БазоваяВалюта, Период)
	
	СтруктураКурса = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(ВалютаАкциза, Период, БазоваяВалюта);
	КоэффициентПересчета = СтруктураКурса.КурсЧислитель / СтруктураКурса.КурсЗнаменатель;
	
	Возврат КоэффициентПересчета;
	
КонецФункции

#Область ПанельОтправкиВКонтролирующиеОрганы

&НаКлиенте
Процедура ОбновитьОтправку(Команда)
	
	// ++ НЕ УТ
	ЗаявлениеОВвозеКлиентЛокализация.ОбновитьОтправку(ЭтаФорма);
	// -- НЕ УТ
	
	Возврат; // Не требуется в УТ
	
КонецПроцедуры

&НаКлиенте
Процедура ГиперссылкаПротоколНажатие(Элемент)
	
	// ++ НЕ УТ
	ЗаявлениеОВвозеКлиентЛокализация.ГиперссылкаПротоколНажатие(ЭтаФорма);
	// -- НЕ УТ
	
	Возврат; // Не требуется в УТ
	
КонецПроцедуры

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

&НаКлиенте
Процедура ЭтапыОтправкиНажатие(Элемент)
	
	// ++ НЕ УТ
	ЗаявлениеОВвозеКлиентЛокализация.ЭтапыОтправкиНажатие(ЭтаФорма);
	// -- НЕ УТ
	
	Возврат; // Не требуется в УТ
	
КонецПроцедуры

&НаКлиенте
Процедура КритическиеОшибкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	// ++ НЕ УТ
	ЗаявлениеОВвозеКлиентЛокализация.КритическиеОшибкиОбработкаНавигационнойСсылки(ЭтаФорма, СтандартнаяОбработка);
	// -- НЕ УТ
	
	Возврат; // Не требуется в УТ
	
КонецПроцедуры

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

&НаКлиенте
Процедура ДатаПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	ПерезаполнитьТовары = Ложь;
	
	Если РезультатВопроса = Истина Тогда
		ПерезаполнитьТовары = Истина;
	КонецЕсли;
	
	Если ПерезаполнитьТовары Тогда 
		ПерезаполнитьТоварыПриИзмененииДаты();
	КонецЕсли;
	
	ДатаПриИзмененииНаСервере();
	
КонецПроцедуры

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

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

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

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

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