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