Сохранить настройки в файл и восстановить настройки из файла
Здравствуйте ! Нужна помощь, мне необходимо во внешней обработке сохранять значения в файл . Пользователь может сохранить несколько файлов с настройками. Затем при регламентированому задании последовательно брал файлы и выгружал данные в excel.
Сохранение и востановление пытаюсь делать таким образом (пока только на одном файле)
Он вроде как сохраняет файл, а вот при загрузке у меня косяк. Большая просьба помогите разобраться с данным вопросом. Спасибо большое
Сохранение и востановление пытаюсь делать таким образом (пока только на одном файле)
Процедура КоманднаяПанельФормаСохранитьНастройки(Кнопка)
//СохранитьНастройкиФормы();
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
СтруктураРеквизитов = Новый Структура;
Для Каждого текРеквизит из ЭтотОбъект.Метаданные().Реквизиты Цикл
СтруктураРеквизитов.Вставить(текРеквизит.Имя, ЭтотОбъект[текРеквизит.Имя]);
КонецЦикла;
ЗначениеВФайл(ДиалогОткрытияФайла.Каталог+"\Родители.csv",СтруктураРеквизитов);
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанельЗагрузить(Кнопка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
СтруктураРеквизитов = Новый Структура;
СтруктураЭлементов = ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители.csv");
Для Каждого текРеквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[текРеквизит.Имя] = ЗначениеИзСтрокиВнутр(СтруктураЭлементов[текРеквизит.Имя]);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
ПоказатьОн вроде как сохраняет файл, а вот при загрузке у меня косяк. Большая просьба помогите разобраться с данным вопросом. Спасибо большое
По теме из базы знаний
- Файловые базы *.1CD. Физическая структура. Восстановление.
- Загрузка из Excel в документы (4 вида) для УТ 11.4, УТ 11.5
- Загрузка банковской выписки для 1С 7.7 любой конфигурации
- Обмен данными с Web-сервисами
- Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика
Найденные решения
(0)
Процедура КоманднаяПанельЗагрузить(Кнопка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
СтруктураРеквизитов = Новый Структура;
СтруктураЭлементов = ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители.csv");
Для Каждого текРеквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[текРеквизит.Имя] = СтруктураЭлементов[текРеквизит.Имя];
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанельЗагрузить(Кнопка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
СтруктураРеквизитов = Новый Структура;
СтруктураЭлементов = ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители.csv");
Для Каждого текРеквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[текРеквизит.Имя] = СтруктураЭлементов[текРеквизит.Имя];
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(0)
Процедура КоманднаяПанельЗагрузить(Кнопка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
СтруктураРеквизитов = Новый Структура;
СтруктураЭлементов = ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители.csv");
Для Каждого текРеквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[текРеквизит.Имя] = СтруктураЭлементов[текРеквизит.Имя];
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанельЗагрузить(Кнопка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
Если ДиалогОткрытияФайла.Выбрать()Тогда
СтруктураРеквизитов = Новый Структура;
СтруктураЭлементов = ЗначениеИзФайла(ДиалогОткрытияФайла.Каталог+"\Родители.csv");
Для Каждого текРеквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[текРеквизит.Имя] = СтруктураЭлементов[текРеквизит.Имя];
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Добрый день! Я сохраняю настройки в файл, но мне надо ещё , чтобы при восстановлении настроек , они прописались в построителе для дальнейшего формирования. Подскажите, пожалуйста, каким образом, мне сохранить эти настройки в построитель, а потом загрузить...
Процедура СохранитьНастройкиПользователя(Кнопка)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок = "Выберите имя файла для сохранения";
Диалог.МножественныйВыбор = Ложь;
Диалог.Фильтр = "Прайс(*.CSV)|*.CSV";
Если Диалог.Выбрать() Тогда
ИмяФайла = Диалог.ПолноеИмяФайла;
СохраненныеНастройки = Новый Структура;
Для Каждого текРеквизит из ЭтотОбъект.Метаданные().Реквизиты Цикл
СохраненныеНастройки.Вставить(текРеквизит.Имя, ЭтотОбъект[текРеквизит.Имя]);
КонецЦикла;
СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеНастройкиНоменклатура.Имя,ЭлементыФормы.ПолеНастройкиНоменклатура.Значение);
СохраненныеНастройки.Вставить(ЭлементыФормы.ФлажокНастройкиНоменклатура.Имя,ЭлементыФормы.ФлажокНастройкиНоменклатура.Значение);
СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеВидаСравненияНоменклатура.Имя,ЭлементыФормы.ПолеВидаСравненияНоменклатура.Значение);
СохраненныеНастройки.Вставить(ЭлементыФормы.ФлажокНастройкиЦеноваяГруппа.Имя,ЭлементыФормы.ФлажокНастройкиЦеноваяГруппа.Значение);
СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеВидаСравненияЦеноваяГруппа.Имя,ЭлементыФормы.ПолеВидаСравненияЦеноваяГруппа.Значение);
СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеНастройкиЦеноваяГруппа.Имя,ЭлементыФормы.ПолеНастройкиЦеноваяГруппа.Значение);
СохраненныеНастройки.Вставить(ЭлементыФормы.ФлажокНастройкиТипЦен.Имя,ЭлементыФормы.ФлажокНастройкиТипЦен.Значение);
СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеВидаСравненияТипЦен.Имя,ЭлементыФормы.ПолеВидаСравненияТипЦен.Значение);
СохраненныеНастройки.Вставить(ЭлементыФормы.ПолеНастройкиТипЦен.Имя,ЭлементыФормы.ПолеНастройкиТипЦен.Значение);
СохраненныеНастройки.Вставить("НастройкиПостроителя", ПостроительОтчета.ПолучитьНастройки());
ЗначениеВФайл(ИмяФайла,СохраненныеНастройки);
КонецЕсли;
КонецПроцедуры
//BS_Анастасия_20022018
Процедура ВосстановитьНастройки() Экспорт
СписокФайлов = Новый СписокЗначений;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (РежимДиалогаВыбораФайла.ВыборКаталога);
ДиалогОткрытияФайла.Каталог= "\\tsclient\E\1С\Прайс";
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "**.xls");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.xlsx");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.xlsm");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.ODS");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
НайденныеФайлы = НайтиФайлы(ДиалогОткрытияФайла.Каталог, "*.CSV");
Для Каждого ИмяФайла Из НайденныеФайлы Цикл
СписокФайлов.Добавить(ИмяФайла.ПолноеИмя);
КонецЦикла;
Для Каждого ИмяФайла Из СписокФайлов Цикл
ФайлПутьКФайлу = ИмяФайла.Значение;
//ПРОВЕРКА НОВОГО ФАЙЛА
ФайлНаДиске = Новый Файл(ФайлПутьКФайлу);
ВремяИзмененияФайла = ФайлНаДиске.ПолучитьВремяИзменения();
РазмерФайла = ФайлНаДиске.Размер();
ИдентификаторПрайса = ""+РазмерФайла+"/"+ВремяИзмененияФайла;
СохраненныеНастройки = Новый Структура;
СтруктураЭлементов = ЗначениеИзФайла(ФайлПутьКФайлу);
Для Каждого текРеквизит из Метаданные().Реквизиты Цикл
ЭтотОбъект[текРеквизит.Имя] = СтруктураЭлементов[текРеквизит.Имя];
КонецЦикла;
ЭлементыФормы.ПолеНастройкиНоменклатура.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеНастройкиНоменклатура.Имя];
ЭлементыФормы.ПолеНастройкиНоменклатура.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеНастройкиНоменклатура.Имя];
ЭлементыФормы.ФлажокНастройкиНоменклатура.Значение = СтруктураЭлементов[ЭлементыФормы.ФлажокНастройкиНоменклатура.Имя];
ЭлементыФормы.ПолеВидаСравненияНоменклатура.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеВидаСравненияНоменклатура.Имя];
ЭлементыФормы.ФлажокНастройкиЦеноваяГруппа.Значение = СтруктураЭлементов[ЭлементыФормы.ФлажокНастройкиЦеноваяГруппа.Имя];
ЭлементыФормы.ПолеВидаСравненияЦеноваяГруппа.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеВидаСравненияЦеноваяГруппа.Имя];
ЭлементыФормы.ПолеНастройкиЦеноваяГруппа.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеНастройкиЦеноваяГруппа.Имя];
ЭлементыФормы.ФлажокНастройкиТипЦен.Значение = СтруктураЭлементов[ЭлементыФормы.ФлажокНастройкиТипЦен.Имя];
ЭлементыФормы.ПолеВидаСравненияТипЦен.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеВидаСравненияТипЦен.Имя];
ЭлементыФормы.ПолеНастройкиТипЦен.Значение = СтруктураЭлементов[ЭлементыФормы.ПолеНастройкиТипЦен.Имя];
Если ТипЗнч(СохраненныеНастройки) = Тип("Структура") Тогда
ЗаполнитьПостроительОтчетаПоЦенамНоменклатуры();
ПостроительОтчета.УстановитьНастройки(СохраненныеНастройки.НастройкиПостроителя);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот