План закупок / Перезаполнение цен / Модуль формы

файл

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

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

	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

КонецПроцедуры

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

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

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

&НаКлиенте
Процедура ВариантЗаполненияЦенСоглашениеПриИзменении(Элемент)
	
	ПриИзмененииВариантаЦен(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантЗаполненияЦенПартнерПриИзменении(Элемент)
	
	ПриИзмененииВариантаЦен(ЭтаФорма);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ЗаполнитьИЗакрыть(Команда)
	
	ВсеЗаполнено = ПроверитьЗаполнение();
	
	Если ВсеЗаполнено Тогда
		ЗаполнитьЗначенияСвойств(СтруктураНастроек, ЭтотОбъект);
		Закрыть(СтруктураНастроек);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Отмена(Команда)
	
	Закрыть(Неопределено);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура ПриИзмененииВариантаЦен(Форма)
	
	Если Форма.ВариантЗаполненияЦен = "ЦеныНоменклатуры" Тогда
		Форма.Элементы.ВидЦеныПартнер.Доступность 	= Истина;
		Форма.Элементы.ВидЦеныСоглашение.Доступность= Истина;
		Форма.ИспользоватьВидЦены = Истина;
	Иначе
		Форма.Элементы.ВидЦеныПартнер.Доступность 	= Ложь;
		Форма.Элементы.ВидЦеныСоглашение.Доступность= Ложь;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура СкорректироватьВариантЗаполненияЦен(Форма)

	Если Форма.ЗаполнятьПартнера И Форма.ВариантЗаполненияЦен = "ЦеныНоменклатурыПоставщиков" И НЕ Форма.ЗаполнятьСоглашение Тогда
		Форма.ВариантЗаполненияЦен = "МинимальнаяЦенаПоставщика";
	ИначеЕсли Форма.ЗаполнятьСоглашение И Форма.ВариантЗаполненияЦен = "МинимальнаяЦенаПоставщика" Тогда
		Форма.ВариантЗаполненияЦен = "ЦеныНоменклатурыПоставщиков";
	ИначеЕсли Не Форма.ВариантЗаполненияЦен = "ЦеныНоменклатуры" И НЕ Форма.ЗаполнятьПартнера И НЕ Форма.ЗаполнятьСоглашение Тогда
		Форма.ВариантЗаполненияЦен = "ЦеныНоменклатуры";
	КонецЕсли;
	
	Если Форма.ВариантЗаполненияЦен = "ЦеныНоменклатуры" И (Форма.ЗаполнятьПартнера ИЛИ Форма.ЗаполнятьСоглашение) Тогда
		Форма.ИспользоватьВидЦены = Истина;
	КонецЕсли; 

КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьСтраницФормыИДоступностьЭлементов()
	
	Если ЗаполнятьПартнера Тогда
		Если ЗаполнятьСоглашение Тогда
			Элементы.ГруппаЦеныЗакупки.ТекущаяСтраница = Элементы.ГруппаЦеныСоглашение;
		Иначе
			Элементы.ГруппаЦеныЗакупки.ТекущаяСтраница = Элементы.ГруппаЦеныПартнер;
		КонецЕсли;
	Иначе
		Элементы.ГруппаЦеныЗакупки.ТекущаяСтраница = Элементы.ГруппаВидЦеныЗакупки;
		ИспользоватьВидЦены = Истина;
	КонецЕсли;
	
	ПриИзмененииВариантаЦен(ЭтаФорма);
	
КонецПроцедуры

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

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