Цены (прайс-лист) / Форма применения цен / Модуль формы

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

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

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

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

&НаКлиенте
Процедура ДатаЦенПриИзменении(Элемент)
	
	ЭтотОбъект.Заголовок = ТекстЗаголовка(ЭтотОбъект);
	
КонецПроцедуры

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

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

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

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


&НаКлиентеНаСервереБезКонтекста
Процедура УстановливатьВременныеЦеныПриИзмененииНаСервере(Форма)
	
	//Форма.Элементы.УстанавливатьВременныеЦены.Ширина 			= ?(Форма.ЭтоЦеныСПериодомДействия, 18, 11);	
	
	Форма.Элементы.ГруппаВыборДатыДействияЦен.Видимость 	= НЕ Форма.ЭтоЦеныСПериодомДействия;
	Форма.Элементы.ГруппаВыборПериодаДействияЦен.Видимость 	= Форма.ЭтоЦеныСПериодомДействия;
	Форма.Элементы.МаркетинговоеМероприятие.Видимость 		= Форма.ЭтоЦеныСПериодомДействия;

	Форма.Заголовок = ТекстЗаголовка(Форма);
	
КонецПроцедуры

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

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

&НаКлиентеНаСервереБезКонтекста
Функция ТекстЗаголовка(Форма)

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

КонецФункции // ТекстЗаголовка()
 

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

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