Сезонные коэффициенты / Выбор периода / Модуль формы

файл

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

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

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

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

&НаКлиенте
Процедура КоличествоЛетПриИзменении(Элемент)
	
	ДатаНачала = ДатаОкончания - 86400 * 365 * КоличествоЛет;
	
КонецПроцедуры

&НаКлиенте
Процедура ДатаОкончанияПриИзменении(Элемент)
	
	ДатаНачала = ДатаОкончания - 86400 * 365 * КоличествоЛет;
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантРасчетаПриИзменении(Элемент)
	
	КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "ВариантРасчета", ВариантРасчета);
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура ОткрытьОтбор(Команда)
	
	ПараметрыФормы = Новый Структура("КомпоновщикНастроек", КомпоновщикНастроек);
	ОткрытьФорму("РегистрСведений.СезонныеКоэффициенты.Форма.ФормаОтбора", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор);
	
КонецПроцедуры

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

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