Реквизит ~ Как сохранять и восстанавливать значения Объектов и Реквизитов на форме УП? У управляемой формы реквизиты заведенные как реквизиты формы, при закрытии и открытии ее заново могут сохраняться и восстанавливаться, достаточно только поставить напротив галочку сохранять и в свойствах формы выбрать "АвтоматическоеСохранениеДанныхВНастройках" - Использовать.
Подробнее в этой статье Как сохранять и восстанавливать значения реквизитов на форме? и там же пример для обычных форм.
А что же делать с реквизитами, которые выступают в роли реквизитов объектов ?
у них такой настройки нет нет - напишем:
Код 1C v 8.3 &НаСервере
Процедура ВосстановитьНастройки()
КлючОбъекта = "ЗагрузкаИЗPDF_All4CF.ru";
КлючНастроек = "ЗагрузкаИЗPDF_All4CF.ru";
ОписаниеНастроек = "ЗагрузкаИЗPDF_All4CF.ru";
ИмяПользователя = "";
ЗначениеНастроек = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастроек, ОписаниеНастроек, ИмяПользователя);
Если ТипЗнч(ЗначениеНастроек) = Тип("Соответствие") Тогда
Объект.Склад = ЗначениеНастроек.Получить("Склад");
Объект.Организация = ЗначениеНастроек.Получить("Организация");
Объект.ПутьКPDF2TXT = ЗначениеНастроек.Получить("ПутьКPDF2TXT");
Объект.ПутьКPDF = ЗначениеНастроек.Получить("ПутьКPDF");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ВосстановитьНастройки();
КонецПроцедуры
&НаСервере
Процедура СохранитьНастройки()
КлючОбъекта = "ЗагрузкаИЗPDF_All4CF.ru";
КлючНастроек = "ЗагрузкаИЗPDF_All4CF.ru";
ОписаниеНастроек = "ЗагрузкаИЗPDF_All4CF.ru";
ИмяПользователя = "";
Настройки = Новый Соответствие;
Настройки.Вставить("ПутьКPDF2TXT", Объект.ПутьКPDF2TXT);
Настройки.Вставить("ПутьКPDF", Объект.ПутьКPDF);
Настройки.Вставить("Склад", Объект.Склад);
Настройки.Вставить("Организация", Объект.Организация);
ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек, ИмяПользователя);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
СохранитьНастройки();
КонецПроцедуры
Открыв обработку и заполним поля закрываем ее, при следующем открытии все поля заполнены из сохраненных настроек:
Категория:
Работа с Формой (Диалог) и её элементами Реквизит ~ Как сохранить, восстановить значения всех элементов формы? Как сохранить Значения элементов при закрытии формы и восстановить их при открытии формы?
Это можно сделать через
СохранитьЗначения(), ВосстановитьЗначение() :
Код 1C v 8.х СохранитьЗначение("СрокИсполненияЗаказа", СрокИсполнения);
СохранитьЗначение("СкладПоУмолчанию", МестоХранения);
СрокИсполнения = ВосстановитьЗначение("СрокИсполненияЗаказа"));
Но у этого способа, одно НО - Сохраненые значения будут доступны только на там компьютере, на котором их сохранили!
А чтобы эти значения были доступны с любого компьютера, их нужно хранить в базе, например в константах с типом Хранилище значения:
Перебирая все элементы формы, выбрать только поля ввода и записать их значения в структуру.
Потом структуры записываем в константу:
Код 1C v 8.х Процедура КнопкаСохранитьНажатие(Кнопка)
ЭлСтр = Новый Структура;
Для Каждого Элем Из ЭлементыФормы Цикл
//Сохранаем только те элементы, у которых можно получить Значение
//Попытка
// ЭлСтр.Вставить(Элем.Имя, Элем.Значение);
//Исключение КонецПопытки; //у элемента нет Значения
//Так лучше
Если ТипЗнч(Элем) = Тип("ПолеВвода") Тогда
ЭлСтр.Вставить(Элем.Имя, Элем.Значение);
КонецЕсли;
КонецЦикла;
Константы.MES_ДопСоглашения.Установить(Новый ХранилищеЗначения(ЭлСтр));
КонецПроцедуры
Процедура ПриОткрытии()
//Заполним значения на форме из структуры полученной из хранилища значений
Попытка
ЭлСтрХранЗнач=Константы.MES_ДопСоглашения.Получить();
ЭлСтр=ЭлСтрХранЗнач.Получить();
Для Каждого Элем из ЭлСтр Цикл
ЭлементыФормы[Элем.Ключ] = Элем.Значение;
КонецЦикла;
Исключение КонецПопытки;
КонецПроцедуры
Как сохранять и восстанавливать значения реквизитов на форме? Категория:
Работа с Формой (Диалог) и её элементами