#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
Запрос = Новый Запрос;
Запрос.Текст =
СкладыСервер.ТекстЗапросаСкладскаяОперацияТипДокумента() +
"ВЫБРАТЬ
| Остатки.ДокументОтгрузки,
| СУММА(Остатки.КОтгрузкеОстаток - Остатки.СобираетсяОстаток - Остатки.СобраноОстаток) КАК КОтгрузке
|ПОМЕСТИТЬ ДокументыОтгрузки
|ИЗ
| (ВЫБРАТЬ
| ТоварыКОтгрузкеОстатки.ДокументОтгрузки КАК ДокументОтгрузки,
| ТоварыКОтгрузкеОстатки.КОтгрузкеОстаток КАК КОтгрузкеОстаток,
| ТоварыКОтгрузкеОстатки.СобираетсяОстаток КАК СобираетсяОстаток,
| ТоварыКОтгрузкеОстатки.СобраноОстаток КАК СобраноОстаток
| ИЗ
| РегистрНакопления.ТоварыКОтгрузке.Остатки(
| ,
| Номенклатура = &Номенклатура
| И Характеристика = &Характеристика
| И Назначение = &Назначение
| И Серия = &Серия
| И Склад = &Склад
| И Получатель = &Получатель) КАК ТоварыКОтгрузкеОстатки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ТоварыКОтгрузке.ДокументОтгрузки,
| ВЫБОР
| КОГДА ТоварыКОтгрузке.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА -ТоварыКОтгрузке.КОтгрузке
| ИНАЧЕ ТоварыКОтгрузке.КОтгрузке
| КОНЕЦ,
| ВЫБОР
| КОГДА ТоварыКОтгрузке.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА -ТоварыКОтгрузке.Собирается
| ИНАЧЕ ТоварыКОтгрузке.Собирается
| КОНЕЦ,
| ВЫБОР
| КОГДА ТоварыКОтгрузке.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА -ТоварыКОтгрузке.Собрано
| ИНАЧЕ ТоварыКОтгрузке.Собрано
| КОНЕЦ
| ИЗ
| РегистрНакопления.ТоварыКОтгрузке КАК ТоварыКОтгрузке
| ГДЕ
| ТоварыКОтгрузке.Номенклатура = &Номенклатура
| И ТоварыКОтгрузке.Характеристика = &Характеристика
| И ТоварыКОтгрузке.Назначение = &Назначение
| И ТоварыКОтгрузке.Серия = &Серия
| И ТоварыКОтгрузке.Склад = &Склад
| И ТоварыКОтгрузке.Получатель = &Получатель
| И ТоварыКОтгрузке.Регистратор = &Регистратор) КАК Остатки
|
|СГРУППИРОВАТЬ ПО
| Остатки.ДокументОтгрузки
|
|;
|
|
|ВЫБРАТЬ
| ДокументыОтгрузки.ДокументОтгрузки КАК Распоряжение,
| ДокументыОтгрузки.КОтгрузке КАК КОтгрузке,
| ВЫБОР
| КОГДА ДокументыОтгрузки.КОтгрузке = 0
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЕстьКОтгрузке
|ИЗ
| ДокументыОтгрузки КАК ДокументыОтгрузки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СкладскаяОперацияТипДокумента КАК СкладскаяОперацияТипДокумента
| ПО (ТИПЗНАЧЕНИЯ(ДокументыОтгрузки.ДокументОтгрузки) = СкладскаяОперацияТипДокумента.Тип)
| И (СкладскаяОперацияТипДокумента.СкладскаяОперация = &СкладскаяОперация)
| И (ВЫБОР
| КОГДА ДокументыОтгрузки.ДокументОтгрузки ССЫЛКА Документ.ЗаказНаСборку
| ТОГДА ВЫРАЗИТЬ(ДокументыОтгрузки.ДокументОтгрузки КАК Документ.ЗаказНаСборку).ХозяйственнаяОперация
| КОГДА ДокументыОтгрузки.ДокументОтгрузки ССЫЛКА Документ.СборкаТоваров
| ТОГДА ВЫРАЗИТЬ(ДокументыОтгрузки.ДокументОтгрузки КАК Документ.СборкаТоваров).ХозяйственнаяОперация
| ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ = СкладскаяОперацияТипДокумента.ХозяйственнаяОперация)
|
|УПОРЯДОЧИТЬ ПО
| КОтгрузке УБЫВ";
ПараметрыЗапроса = Запрос.НайтиПараметры();
Для Каждого СтрМас Из ПараметрыЗапроса Цикл
Запрос.УстановитьПараметр(СтрМас.Имя, Параметры[СтрМас.Имя]);
КонецЦикла;
Распоряжения.Загрузить(Запрос.Выполнить().Выгрузить());
ОтборПоОстатку = "ТолькоСОстатками";
УстановитьОтборПоОстатку();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ОтборПоОстаткуПриИзменении(Элемент)
УстановитьОтборПоОстатку()
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРаспоряжения
&НаКлиенте
Процедура РаспоряженияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ТекущиеДанные = Элементы.Распоряжения.ТекущиеДанные;
ОповеститьОВыборе(ТекущиеДанные.Распоряжение);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Выбрать(Команда)
ТекущиеДанные = Элементы.Распоряжения.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
ТекстПредупрежедения = НСтр("ru = 'Выберите распоряжение.'");
ПоказатьПредупреждение(,ТекстПредупрежедения);
Возврат;
КонецЕсли;
ОповеститьОВыборе(ТекущиеДанные.Распоряжение);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьОтборПоОстатку()
Если ОтборПоОстатку = "Все" Тогда
Элементы.Распоряжения.ОтборСтрок = Неопределено;
Иначе
Элементы.Распоряжения.ОтборСтрок = Новый ФиксированнаяСтруктура("ЕстьКОтгрузке", Истина);
КонецЕсли;
КонецПроцедуры
#КонецОбласти