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