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