Приходный ордер на товары / Выбор распоряжения / Модуль формы

файл

#Область ОбработчикиСобытийФормы

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

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапки

&НаКлиенте
Процедура ОтправительПриИзменении(Элемент)
	УстановитьПараметрыСписка();
КонецПроцедуры

&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзменении(Элемент)
	УстановитьПараметрыСписка();
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	ОбработатьВыбор(Элемент.ТекущиеДанные);
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Выбрать(Команда)
	
	Если ОбщегоНазначенияУТКлиент.ПроверитьНаличиеВыделенныхВСпискеСтрок(Элементы.Список) Тогда
		ОбработатьВыбор(Элементы.Список.ТекущиеДанные);
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура УстановитьУсловноеОформление()

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокНомер.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Номер");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не указан>'"));
	

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокДата.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Дата");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не указан>'"));
	

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокНомерПервичногоДокумента.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.НомерПервичногоДокумента");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не указан>'"));
	

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокДатаПервичногоДокумента.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ДатаПервичногоДокумента");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.НезаполненноеПолеТаблицы);
	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не указан>'"));
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьВыбор(ТекущаяСтрока)
	
	ВыбранноеЗначение = Новый Структура;
	ВыбранноеЗначение.Вставить("Распоряжение", 		     ТекущаяСтрока.ДокументПоступления);
	ВыбранноеЗначение.Вставить("Отправитель", 		    ТекущаяСтрока.Отправитель);
	ВыбранноеЗначение.Вставить("ХозяйственнаяОперация", ТекущаяСтрока.ХозяйственнаяОперация);
	
	Закрыть(ВыбранноеЗначение);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьПараметрыСписка()
	
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,
																		"Склад",
																		Склад);
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,
																		"Отправитель",
																		Отправитель);
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,
																		"ХозяйственнаяОперация",
																		ХозяйственнаяОперация);
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,
																		"ПоВсемОтправителям",
																		Не ЗначениеЗаполнено(Отправитель));
	ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список,
																		"ПоВсемХозяйственнымОперациям",
																		Не ЗначениеЗаполнено(ХозяйственнаяОперация));
	
КонецПроцедуры

#КонецОбласти

Связанные материалы