Сохранение настроек
У клиента форма загрузки номенклатуры из Excel с большим количеством галочек и таблицей настроек. От разных поставщиков приходят разные файлы, поэтому решил сделать кнопки сохранения и восстановления настроек.
Поискал готовое, нашел: https://infostart.ru/public/378879.
Попробовал, оказалось там сохраняются настройки из объекта внешней обработки, а у меня все находится в форме, а не в объекте. Но не боги горшки обжигают, написал свой код.
Не стал усложнять с сохранением во временное хранилище, использую сериализацию в строку:
&НаСервере Функция ЭкспортНастроекВСтрокуНаСервере() //https://infostart.ru/public/378879/ Настройки = Новый Структура; //Для Каждого Реквизит Из ЭтаФорма.ПолучитьРеквизиты("Объект") Цикл Для Каждого Реквизит Из ЭтаФорма.ПолучитьРеквизиты() Цикл ЗначениеРеквизита = ЭтаФорма[Реквизит.Имя]; Если Реквизит.Имя = "Объект" Тогда Продолжить; КонецЕсли; Если ТипЗнч(ЗначениеРеквизита) = Тип("ДанныеФормыКоллекция") Тогда Настройки.Вставить(Реквизит.Имя, ЗначениеРеквизита.Выгрузить()); Продолжить; КонецЕсли; Настройки.Вставить(Реквизит.Имя, ЗначениеРеквизита); КонецЦикла; Возврат ЗначениеВСтрокуВнутр(Настройки); КонецФункции // Заполняет значения всех реквизитов формы из временого хранилища, адрес которого указан в АдресВременногоХранилища Процедура ИмпортНастроекИзСтроки(Строка) Попытка Настройки = ЗначениеИзСтрокиВнутр(Строка); Исключение Сообщить("Ошибка при загрузке настроек на сервере: " + ОписаниеОшибки()); Возврат; КонецПопытки; Для Каждого ЭлементНастройки Из Настройки Цикл Попытка Если ТипЗнч(ЭтаФорма[ЭлементНастройки.Ключ]) = Тип("ДанныеФормыКоллекция") Тогда ЭтаФорма[ЭлементНастройки.Ключ].Загрузить(ЭлементНастройки.Значение); Продолжить; КонецЕсли; ЭтаФорма[ЭлементНастройки.Ключ] = ЭлементНастройки.Значение; Исключение Сообщить("Ошибка при импорте настроек: " + ОписаниеОшибки()); КонецПопытки; КонецЦикла; КонецПроцедуры
Создал кнопки сохранения-восстановления настроек в сворачиваемой группе:
&НаКлиенте Процедура ЗагрузитьНастройки(Команда) Т = Новый ТекстовыйДокумент(); Т.Прочитать(ВыбИмяФайлаНастроек); ИмпортНастроекИзСтроки(Т.ПолучитьТекст()); КонецПроцедуры &НаКлиенте Процедура СохранитьНастройки(Команда) Т = Новый ТекстовыйДокумент(); Т.УстановитьТекст(ЭкспортНастроекВСтрокуНаСервере()); Т.Записать(ВыбИмяФайлаНастроек); КонецПроцедуры
Свежие комментарии