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