Столкнулся с необходимостью сохранить настройки внешней обработки. В интеренете, в основном, есть варианты с использованием СохранитьЗначение. Так как мне нужно было в обработке сохранить несколько значений настроек, а потом их в определенной последовательности загрузить и выполнить обработку (пакетное задание), то данный вариант мне не совсем подходил. Сделал следующий вариант:
Процедура ОсновныеДействияФормыСохранитьВФайл(Кнопка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
Для каждого Реквизит из Метаданные().Реквизиты Цикл
ЗначениеВФайл(ДиалогОткрытияФайла.Каталог+"\"+Реквизит.Имя+".dat",ЭтотОбъект[Реквизит.Имя]);
КонецЦикла;
ТабЗнач=Новый ТаблицаЗначений;
ТабЧасть=ЭтотОбъект.Родители.Выгрузить();
ЗначениеВФайл(ДиалогОткрытияФайла.Каталог+"\Родители.dat",ТабЧасть);
ТабЧасть=ЭтотОбъект.Родители1.Выгрузить();
ЗначениеВФайл(ДиалогОткрытияФайла.Каталог+"\Родители1.dat",ТабЧасть);
ТабЧасть=ЭтотОбъект.Товары.Выгрузить();
ЗначениеВФайл(ДиалогОткрытияФайла.Каталог+"\Товары.dat",ТабЧасть);
КонецЕсли;
КонецПроцедуры
Процедура ОсновныеДействияФормыЗагрузитьИзФайла(Кнопка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
Для каждого Реквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[Реквизит.Имя]=ЗначениеИЗФайла(ДиалогОткрытияФайла.Каталог+"\"+Реквизит.Имя+".dat");
КонецЦикла;
ТабЗнач=Новый ТаблицаЗначений;
ТабЧасть=ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители.dat");
ЭтотОбъект.Родители.Загрузить(ТабЧасть);
ТабЧасть=ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители1.dat");
ЭтотОбъект.Родители1.Загрузить(ТабЧасть);
ТабЧасть=ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Товары.dat");
ЭтотОбъект.Товары.Загрузить(ТабЧасть);
КонецЕсли;
КонецПроцедуры
Родители, Родители1 и Товары это табличные части обработки. Может их тоже можно не отдельно сохранять, а перебором как реквизиты (быстро не нашел как и сделал с именами табличных частей. Уверен, что должен быть вариан с получением списка табличных частей. Если кто знает такой вариант, - напишите в комментариях. Позже тоже хочу поискать, чтобы получить универсальных механизм для сохранения.).
Пользователь у меня сохраняет настройки обработки в определенную папку (C:\set\Х), где Х цифра от 1 до 30. Настройки перебираются последовательно с папки 1 до папки 30, если встречается папка где нет настроек, то обработка останавливается.
Процедура ОсновныеДействияФормыПакетнаяОбрабока(Кнопка)
Для х=1 По 30 Цикл
ИмяПапки="C:\set\"+Строка(х)+"\";
Файл = Новый Файл (ИмяПапки+"Родители.dat");
Если Файл.Существует() Тогда
ЗаполнитьНастройки(ИмяПапки);
Обработать();
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ЗаполнитьНастройки(ИмяКаталога)
Для каждого Реквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[Реквизит.Имя]=ЗначениеИЗФайла(ИмяКаталога+Реквизит.Имя+".dat");
КонецЦикла;
ТабЗнач=Новый ТаблицаЗначений;
ТабЧасть=ЗначениеИзФайла(ИмяКаталога+"Родители.dat");
ЭтотОбъект.Родители.Загрузить(ТабЧасть);
ТабЧасть=ЗначениеИзФайла(ИмяКаталога+"Родители1.dat");
ЭтотОбъект.Родители1.Загрузить(ТабЧасть);
ТабЧасть=ЗначениеИзФайла(ИмяКаталога+"Товары.dat");
ЭтотОбъект.Товары.Загрузить(ТабЧасть);
КонецПроцедуры