1С8 Пример СКД передача параметров между компоновщиком настроек и формой

1С8 Пример СКД: передаем значения параметров между формой и компановщиком настроек.

Скачать пример (skd_parameters_template.rar ).

.


Процедура ВыбПериодНажатие(Элемент)
			
	НастройкаПериода = Новый НастройкаПериода;
	НастройкаПериода.РедактироватьКакИнтервал = Истина;
	НастройкаПериода.РедактироватьКакПериод = Истина;
	НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
	НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
	Если НастройкаПериода.Редактировать() Тогда
		НачПериода = НастройкаПериода.ПолучитьДатуНачала();		
		КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение = НачПериода;
				
		КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
		КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода").Значение = КонПериода;
	КонецЕсли;
	
	
КонецПроцедуры


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

		Исключение


   		КонецПопытки;

	КонецЕсли;	 
		
	ОбновлениеОтображенияПериода();
	УстановитьЗаголовокФормы();

КонецПроцедуры  // ПриОткрытии()


Процедура ПриЗакрытии()
		
	//СохранитьЗначение("КомпоновщикНастроек",ЭтотОбъект.КомпоновщикНастроек);
	
КонецПроцедуры


Функция УстановитьЗаголовокФормы() 
		
	Если мСтруктураТекущаяНастройка <> Неопределено 		
		И мСтруктураТекущаяНастройка.Свойство("ИмяОбъекта") 
		И мСтруктураТекущаяНастройка.Свойство("НаименованиеНастройки") 		
		Тогда
				
		ЭтаФорма.Заголовок = мСтруктураТекущаяНастройка.ИмяОбъекта + ". Настройка: " + СокрЛП(мСтруктураТекущаяНастройка.НаименованиеНастройки);
		
	ИначеЕсли мСтруктураТекущаяНастройка = Неопределено тогда
		
		Метаданные = ЭтотОбъект.Метаданные();
		НазваниеОтчета = "";
		
		ЭтаФорма.Заголовок = "мСтруктураТекущаяНастройка = Неопределено";
	Иначе
		
		ЭтаФорма.Заголовок = "Пусто....";
		
	КонецЕсли;
	
КонецФункции // УстановитьЗаголовокФормы() 



Процедура КнопкаВосстановитьНастройкиНажатие(Элемент)	
	
		
	ВосстановитьНастройкиОтчета(ЭтотОбъект);
	
	ОбновлениеОтображенияПериода();
	УстановитьЗаголовокФормы();
	
КонецПроцедуры

Процедура КнопкаСохранитьЗначенияНажатие(Элемент)	
	
		
	СохранитьНастройкиОтчета(ЭтотОбъект);

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

Процедура НачПериодаПриИзменении(Элемент)	
	
	
	КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение = НачПериода;	
	
КонецПроцедуры

Процедура КонПериодаПриИзменении(Элемент)
		
	КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода").Значение = КонПериода;
	
КонецПроцедуры


Процедура ДействияФормыНастройка(Кнопка)	
	
	ФормаНастроек = ЭтотОбъект.ПолучитьФормуНастроек();	
		
 	рез = ФормаНастроек.ОткрытьМодально();  	
	
	ОбновлениеОтображенияПериода();
		
КонецПроцедуры


Процедура ОбновлениеОтображенияПериода()	
		
	НачПериода = ПолучитьПараметрСКД("НачалоПериода",КомпоновщикНастроек);
	КонПериода = ПолучитьПараметрСКД("КонецПериода",КомпоновщикНастроек);
	
КонецПроцедуры


Функция ПолучитьПараметрСКД(стрИмяПараметра,КомпоновщикНастроек)
	
	ПараметрСКД_НачалоПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(стрИмяПараметра).Значение;
	
	Если ТипЗнч(ПараметрСКД_НачалоПериода) = Тип("СтандартнаяДатаНачала") тогда
		ПараметрДата = ПараметрСКД_НачалоПериода.Дата; 
	ИначеЕсли	ТипЗнч(ПараметрСКД_НачалоПериода) = Тип("Дата") тогда
		ПараметрДата = ПараметрСКД_НачалоПериода; 
	иначе
		ПараметрДата = '0001-01-01';
	КонецЕсли;	
	Возврат ПараметрДата;
КонецФункции	






Рекламный блок:

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

Доработка и сопровождение 1С:

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Пишите: j008@j008.ru

Звоните: 8 916 710 83 51 Ольга