Сохранить настройки в файл и восстановить настройки из файла

1. Nastya-chajkovskaya 20.07.18 16:44 Сейчас в теме +0.3 $m
Здравствуйте ! Нужна помощь, мне необходимо во внешней обработке сохранять значения в файл . Пользователь может сохранить несколько файлов с настройками. Затем при регламентированому задании последовательно брал файлы и выгружал данные в excel.

Сохранение и востановление пытаюсь делать таким образом (пока только на одном файле)
Процедура КоманднаяПанельФормаСохранитьНастройки(Кнопка)
	
	//СохранитьНастройкиФормы();
	ДиалогОткрытияФайла  = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
	ДиалогОткрытияФайла.ПолноеИмяФайла     = "";
	ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
	ДиалогОткрытияФайла.Заголовок          = "Выберите каталог";
	Если ДиалогОткрытияФайла.Выбрать()Тогда
		
		СтруктураРеквизитов = Новый  Структура;
		Для Каждого текРеквизит из ЭтотОбъект.Метаданные().Реквизиты Цикл 
			СтруктураРеквизитов.Вставить(текРеквизит.Имя, ЭтотОбъект[текРеквизит.Имя]);
		КонецЦикла;    
		
		ЗначениеВФайл(ДиалогОткрытияФайла.Каталог+"\Родители.csv",СтруктураРеквизитов);
	КонецЕсли;    
	
КонецПроцедуры

Процедура КоманднаяПанельЗагрузить(Кнопка)
	 ДиалогОткрытияФайла  = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
    ДиалогОткрытияФайла.ПолноеИмяФайла     = "";
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
    ДиалогОткрытияФайла.Заголовок          = "Выберите каталог";
    Если ДиалогОткрытияФайла.Выбрать()Тогда
		СтруктураРеквизитов = Новый  Структура;
		СтруктураЭлементов = ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители.csv");
		Для Каждого текРеквизит из Метаданные().Реквизиты Цикл 
			ЭтотОбъект[текРеквизит.Имя] = ЗначениеИзСтрокиВнутр(СтруктураЭлементов[текРеквизит.Имя]); 
		КонецЦикла;  
				
    КонецЕсли;    
КонецПроцедуры
Показать


Он вроде как сохраняет файл, а вот при загрузке у меня косяк. Большая просьба помогите разобраться с данным вопросом. Спасибо большое
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
3. ice-net 19 20.07.18 16:51 Сейчас в теме +0.4 $m
(0)

Процедура КоманднаяПанельЗагрузить(Кнопка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
СтруктураРеквизитов = Новый Структура;
СтруктураЭлементов = ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители.csv");
Для Каждого текРеквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[текРеквизит.Имя] = СтруктураЭлементов[текРеквизит.Имя];
КонецЦикла;

КонецЕсли;
КонецПроцедуры
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 298 20.07.18 16:50 Сейчас в теме
(1) А зачем у вас ЗначениеИзСтрокиВнутр ?


ЗначениеВФайл и ЗначениеИзФайла - это прямая и обратная операция, никаких дополнительных преобразований не нужно
3. ice-net 19 20.07.18 16:51 Сейчас в теме +0.4 $m
(0)

Процедура КоманднаяПанельЗагрузить(Кнопка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
СтруктураРеквизитов = Новый Структура;
СтруктураЭлементов = ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители.csv");
Для Каждого текРеквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[текРеквизит.Имя] = СтруктураЭлементов[текРеквизит.Имя];
КонецЦикла;

КонецЕсли;
КонецПроцедуры
4. Nastya-chajkovskaya 21.07.18 15:37 Сейчас в теме
Добрый день! Я сохраняю настройки в файл, но мне надо ещё , чтобы при восстановлении настроек , они прописались в построителе для дальнейшего формирования. Подскажите, пожалуйста, каким образом, мне сохранить эти настройки в построитель, а потом загрузить...

Процедура СохранитьНастройкиПользователя(Кнопка)
	
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
	Диалог.Заголовок = "Выберите имя файла для сохранения";
	Диалог.МножественныйВыбор = Ложь;	
	Диалог.Фильтр = "Прайс(*.CSV)|*.CSV";
	Если Диалог.Выбрать() Тогда 
		ИмяФайла = Диалог.ПолноеИмяФайла;
		СохраненныеНастройки = Новый  Структура;
		Для Каждого текРеквизит из ЭтотОбъект.Метаданные().Реквизиты Цикл 
			СохраненныеНастройки.Вставить(текРеквизит.Имя, ЭтотОбъект[текРеквизит.Имя]);
		КонецЦикла;    
		СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеНастройкиНоменклатура.Имя,ЭлементыФормы.ПолеНастройкиНоменклатура.Значение);
		СохраненныеНастройки.Вставить(ЭлементыФормы.ФлажокНастройкиНоменклатура.Имя,ЭлементыФормы.ФлажокНастройкиНоменклатура.Значение);
		СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеВидаСравненияНоменклатура.Имя,ЭлементыФормы.ПолеВидаСравненияНоменклатура.Значение);
		СохраненныеНастройки.Вставить(ЭлементыФормы.ФлажокНастройкиЦеноваяГруппа.Имя,ЭлементыФормы.ФлажокНастройкиЦеноваяГруппа.Значение);
		СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеВидаСравненияЦеноваяГруппа.Имя,ЭлементыФормы.ПолеВидаСравненияЦеноваяГруппа.Значение);
		СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеНастройкиЦеноваяГруппа.Имя,ЭлементыФормы.ПолеНастройкиЦеноваяГруппа.Значение);
		СохраненныеНастройки.Вставить(ЭлементыФормы.ФлажокНастройкиТипЦен.Имя,ЭлементыФормы.ФлажокНастройкиТипЦен.Значение);
		СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеВидаСравненияТипЦен.Имя,ЭлементыФормы.ПолеВидаСравненияТипЦен.Значение);
		СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеНастройкиТипЦен.Имя,ЭлементыФормы.ПолеНастройкиТипЦен.Значение);
		СохраненныеНастройки.Вставить("НастройкиПостроителя", ПостроительОтчета.ПолучитьНастройки());

		ЗначениеВФайл(ИмяФайла,СохраненныеНастройки); 
	КонецЕсли;
КонецПроцедуры

//BS_Анастасия_20022018
Процедура ВосстановитьНастройки() Экспорт
	
	СписокФайлов = Новый СписокЗначений;
	ДиалогОткрытияФайла  = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
	ДиалогОткрытияФайла.Каталог= "\\tsclient\E\1С\Прайс";
	
		НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "**.xls"); 	
		Для Каждого ИмяФайла Из НайденныеФайлы Цикл
			СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
		КонецЦикла;
		НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.xlsx"); 	
		Для Каждого ИмяФайла Из НайденныеФайлы Цикл
			СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
		КонецЦикла;
		НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.xlsm"); 	
		Для Каждого ИмяФайла Из НайденныеФайлы Цикл
			СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
		КонецЦикла;
		НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.ODS"); 	
		Для Каждого ИмяФайла Из НайденныеФайлы Цикл
			СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
		КонецЦикла;
		НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.CSV"); 	
		Для Каждого ИмяФайла Из НайденныеФайлы Цикл
			СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
		КонецЦикла;	
		
		Для Каждого ИмяФайла Из СписокФайлов Цикл
		ФайлПутьКФайлу = ИмяФайла.Значение;
			
		//ПРОВЕРКА НОВОГО ФАЙЛА
		ФайлНаДиске = Новый Файл(ФайлПутьКФайлу);
		ВремяИзмененияФайла = ФайлНаДиске.ПолучитьВремяИзменения();
		РазмерФайла = ФайлНаДиске.Размер();
		ИдентификаторПрайса = ""+РазмерФайла+"/"+ВремяИзмененияФайла;

		
		СохраненныеНастройки = Новый  Структура;
		СтруктураЭлементов = ЗначениеИзФайла(ФайлПутьКФайлу);
		Для Каждого текРеквизит из Метаданные().Реквизиты Цикл 
			ЭтотОбъект[текРеквизит.Имя] = СтруктураЭлементов[текРеквизит.Имя]; 
		КонецЦикла;
		ЭлементыФормы.ПолеНастройкиНоменклатура.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеНастройкиНоменклатура.Имя];
		ЭлементыФормы.ПолеНастройкиНоменклатура.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеНастройкиНоменклатура.Имя];
		ЭлементыФормы.ФлажокНастройкиНоменклатура.Значение = СтруктураЭлементов[ЭлементыФормы.ФлажокНастройкиНоменклатура.Имя];
		ЭлементыФормы.ПолеВидаСравненияНоменклатура.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеВидаСравненияНоменклатура.Имя];
		ЭлементыФормы.ФлажокНастройкиЦеноваяГруппа.Значение = СтруктураЭлементов[ЭлементыФормы.ФлажокНастройкиЦеноваяГруппа.Имя];
		ЭлементыФормы.ПолеВидаСравненияЦеноваяГруппа.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеВидаСравненияЦеноваяГруппа.Имя];
		ЭлементыФормы.ПолеНастройкиЦеноваяГруппа.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеНастройкиЦеноваяГруппа.Имя];
		ЭлементыФормы.ФлажокНастройкиТипЦен.Значение = СтруктураЭлементов[ЭлементыФормы.ФлажокНастройкиТипЦен.Имя];
		ЭлементыФормы.ПолеВидаСравненияТипЦен.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеВидаСравненияТипЦен.Имя];
		ЭлементыФормы.ПолеНастройкиТипЦен.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеНастройкиТипЦен.Имя];
		
		Если ТипЗнч(СохраненныеНастройки) = Тип("Структура") Тогда
		ЗаполнитьПостроительОтчетаПоЦенамНоменклатуры();

		ПостроительОтчета.УстановитьНастройки(СохраненныеНастройки.НастройкиПостроителя);

	КонецЕсли;

	КонецЦикла;  
	
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот