Каталог решений - Сохранение настроек управляемой формы в файл и восстановление обратно

Сохранение настроек управляемой формы в файл и восстановление обратно

Сохранение настроек управляемой формы в файл и восстановление обратно

В наличии

Вариант возможного сохранения настроек между одинаковыми базами для обработки и не только.

Категория:

Описание

 

Данная обработка предназначена для переноса настроек формы из продуктовой среды на тестовую и наоборот.

Для использования можно создать обработку и добавить код ниже. Так же можно адаптировать под свои нужды. 

 

#Область СохранениеНастроек

&НаСервере
Функция ПолучитьСписокНастроек()
	
	Возврат ХранилищеНастроекДанныхФорм.ПолучитьСписок(ПолеВыбораФормы);
	
КонецФункции

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

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

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

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

&НаКлиенте
Процедура ВосстановитьНастройкиИзФайла(Команда)
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	//каталог по-умолчанию, можно не указывать
	Диалог.Фильтр = "Текстовый файл (*.txt)|*.txt|";
	
	//Если пользователь не нажал кнопку ОТМЕНА в диалоге
	Если Диалог.Выбрать() Тогда
		//Полное имя файла - с учетом «пути к нему» (имени каталога к нему)
		ИмяФайла = Диалог.ПолноеИмяФайла;
		ТекстовыйДокумент = Новый ТекстовыйДокумент;
		ТекстовыйДокумент.Прочитать(ИмяФайла);
		Текст = ТекстовыйДокумент.ПолучитьТекст();
		ДополнительныеПараметры = Новый Структура("ТекстНастроек", Текст);
		
		ОписаниеОповещенияОЗавершенииВвода = Новый ОписаниеОповещения(
				"ВводНаименованияНастройки",
				ЭтаФорма,
				ДополнительныеПараметры);
		
		ПоказатьВводСтроки(ОписаниеОповещенияОЗавершенииВвода, , "Введите наименование настроек");
		
	КонецЕсли;
КонецПроцедуры

&НаСервере
Функция ПолучитьЗаначениеИзСтрокиВнутр(СписокНастроек)
	Возврат ЗначениеИзСтрокиВнутр(СписокНастроек);
КонецФункции

&НаКлиенте
Процедура ВводНаименованияНастройки(НаименованиеНастроек, ДопПараметры) Экспорт
	// Процедура  обработки оповещений должна быть экспортной, должна иметь как минимум 2 параметра
	//Открываем стандартный диалог Windows выбора каталога/файла в режиме выбора файла на сохранение - ДиалогВыбораФайла 1С
	Если НЕ ЗначениеЗаполнено(НаименованиеНастроек) Тогда
		ПоказатьОповещениеПользователя("Не задано имя настройки");
		Возврат;
	КонецЕсли;
	СохранитьНастройку(ДопПараметры.ТекстНастроек, НаименованиеНастроек);
	
КонецПроцедуры

&НаСервере
Процедура СохранитьНастройку(ЗначениеВыбора, НаименованиеНастроек)
	
	ОписаниеНастроек = Новый ОписаниеНастроек;
	ОписаниеНастроек.КлючНастроек = НаименованиеНастроек;
	ОписаниеНастроек.Представление = НаименованиеНастроек;
	ОписаниеНастроек.КлючОбъекта = ПолеВыбораФормы;
	
	Настройки = ПолучитьЗаначениеИзСтрокиВнутр(ЗначениеВыбора);
	ХранилищеНастроекДанныхФорм.Сохранить(ПолеВыбораФормы, НаименованиеНастроек, Настройки, ОписаниеНастроек);
	
КонецПроцедуры


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

 

Данный код не претендует на чистоту и если есть какие пожелания, прошу под кат.

has been added to your cart:
Оформление заказа