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