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