Сохранение/восстановление настроек на форме обработки.

1. Johney20 04.03.19 09:19 Сейчас в теме
Добрый день. Написала сохранение настроек по текущему пользователю. При открытии обработки должны восстановиться значения 4х полей. 3 из них отлично восстанавливаются, одна - никак. В чем может быть проблема?


Код на сохранение настроек:
Процедура СохранитьНастройки()
	
	ПараметрыПредварительнойФормы = Новый Структура;
	ПараметрыПредварительнойФормы.Вставить("СвойствоТипСтруктурногоПодразделения", СвойствоТипСтруктурногоПодразделения);
	ПараметрыПредварительнойФормы.Вставить("ЗначениеТипСтруктурногоПодразделения", ЗначениеТипСтруктурногоПодразделения);
	ПараметрыПредварительнойФормы.Вставить("ЧерезКого" , ЧерезКого);
	ПараметрыПредварительнойФормы.Вставить("Затребовал", Затребовал);
	ПараметрыПредварительнойФормы.Вставить("Отпустил"  , Отпустил);
	ПараметрыПредварительнойФормы.Вставить("Получил"   , Получил);

	
	//ВладелецНастройки = Справочники.Пользователи.ПустаяСсылка();
	ВладелецНастройки = ПараметрыСеанса.ТекущийПользователь;
	
	СтруктураНастройки = Новый Структура;
	СтруктураНастройки.Вставить("Пользователь",				ВладелецНастройки);
	СтруктураНастройки.Вставить("ИмяОбъекта",				"МАГНИТ_ВнешняяПечатнаяФорма_ВнешняяПечатнаяФормаМ11");
	СтруктураНастройки.Вставить("НаименованиеНастройки",	"Основная");
	СтруктураНастройки.Вставить("СохраненнаяНастройка",		ПараметрыПредварительнойФормы);
	
	Результат = СохранитьНастройку(СтруктураНастройки);
	
КонецПроцедуры


Функция СохранитьНастройку(СтруктураНастройки) Экспорт
	
	Если ТипЗнч(СтруктураНастройки) <> Тип("Структура") Тогда
		
		Возврат Ложь;
		
	КонецЕсли;
		
	НаборЗаписей =  РегистрыСведений.СохраненныеНастройки.СоздатьНаборЗаписей();
	
	НаборЗаписей.Отбор.Пользователь.Значение = СтруктураНастройки.Пользователь;
	НаборЗаписей.Отбор.Пользователь.Использование = Истина;
	
	НаборЗаписей.Отбор.ИмяОбъекта.Значение = СтруктураНастройки.ИмяОбъекта;
	НаборЗаписей.Отбор.ИмяОбъекта.Использование = Истина;
	
	НаборЗаписей.Отбор.НаименованиеНастройки.Значение = СтруктураНастройки.НаименованиеНастройки;
	НаборЗаписей.Отбор.НаименованиеНастройки.Использование = Истина;
		
	ЗаписьНабора = НаборЗаписей.Добавить();
	
	ЗаписьНабора.Пользователь = СтруктураНастройки.Пользователь;
	ЗаписьНабора.ИмяОбъекта = СтруктураНастройки.ИмяОбъекта;
	ЗаписьНабора.НаименованиеНастройки = СтруктураНастройки.НаименованиеНастройки;
	ЗаписьНабора.СохраненнаяНастройка = Новый ХранилищеЗначения(СтруктураНастройки.СохраненнаяНастройка, Новый СжатиеДанных(9));
	
	НаборЗаписей.ОбменДанными.Получатели.АвтоЗаполнение = Ложь;
	НаборЗаписей.ОбменДанными.Получатели.Очистить();
	
	Попытка
		НаборЗаписей.Записать();
	Исключение
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(СтрШаблон("Ошибка при сохранении настройки. %1", ОписаниеОшибки()));
		Возврат Ложь;
	Конецпопытки;
	
	Возврат Истина;
	
КонецФункции 

Показать



код на восстановление настроек:

Процедура ВосстановитьНастройки()
	
	//ВладелецНастройки = Справочники.Пользователи.ПустаяСсылка();
	
	ВладелецНастройки = ПараметрыСеанса.ТекущийПользователь;
	
	СтруктураНастройки = Новый Структура;
	СтруктураНастройки.Вставить("Пользователь", 			ВладелецНастройки);
	СтруктураНастройки.Вставить("ИмяОбъекта", 				"МАГНИТ_ВнешняяПечатнаяФорма_ВнешняяПечатнаяФормаМ11");
	СтруктураНастройки.Вставить("НаименованиеНастройки", 	"Основная");
	
	Результат = УниверсальныеМеханизмы.ПолучитьНастройку(СтруктураНастройки);
	
	Если Результат Тогда
		ПараметрыПредварительнойФормы = Неопределено;
		Если СтруктураНастройки.Свойство("СохраненнаяНастройка", ПараметрыПредварительнойФормы) Тогда
			Если ТипЗнч(ПараметрыПредварительнойФормы) = Тип("Структура") Тогда
				ПараметрыПредварительнойФормы.Свойство("СвойствоТипСтруктурногоПодразделения", СвойствоТипСтруктурногоПодразделения);
				ПараметрыПредварительнойФормы.Свойство("ЗначениеТипСтруктурногоПодразделения", ЗначениеТипСтруктурногоПодразделения);
				ПараметрыПредварительнойФормы.Свойство("ЧерезКого" , ЧерезКого);
				ПараметрыПредварительнойФормы.Свойство("Затребовал", Затребовал);
				ПараметрыПредварительнойФормы.Свойство("Отпустил"  , Отпустил);
				ПараметрыПредварительнойФормы.Свойство("Получил"   , Получил);
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

Показать


Проблема с полем "Отпустил".
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SedovSU@mail.ru 298 04.03.19 10:11 Сейчас в теме
А если отладкой пройти, что будет показывать в этом месте

ПараметрыПредварительнойФормы.Свойство("Отпустил"  , Отпустил);


Какое значение в ПараметрыПредварительнойФормы.Отпустил?Пустое?
3. ImPenguin 35 04.03.19 10:20 Сейчас в теме
А не проще использовать АвтоматическоеСохранениеДанныхВНастройках и указать реквизиты которые сохранять? Работает индивидуально для пользователей.
zarankony; +1 Ответить
4. N0t_F0und 10 05.03.19 14:16 Сейчас в теме
При открытии в поле пустое значение или одно какое-то? Здесь вопрос: не сохраняет или не восстанавливает. Надо проверить, что сохраняет, затем, что восстанавливает
Оставьте свое сообщение

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