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