Сохранение данных формы

1. Drak0n 187 17.02.12 12:22 Сейчас в теме
Добрый день, подскажите как наименее затратно сохранять данные заполнения полей на управляемых формах.
Хочется что бы пользователю не приходилось перевыбирать значения реквизитов и устанавливать переключатели при каждом открытии формы.
Естественно для каждого пользователя будут свои сохраненные значения.

Заранее спасибо!
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. alwiz3 17.02.12 12:26 Сейчас в теме
Конфигурация какая? Если нетиповая, наверное проще завести регистр сведений и там хранить
alex89marta88; +1 3 Ответить
3. znaher 17.02.12 12:36 Сейчас в теме
гм. Использовать методы в формах:
1) ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
2) ПриСохраненииДанныхВНастройкахНаСервере(Настройки)
Alexwarsis; _7445_; Мах; Alchemist; +4 Ответить
4. Drak0n 187 17.02.12 12:54 Сейчас в теме
znaher, спасибо. то что нужно.
5. znaher 17.02.12 13:08 Сейчас в теме
Разработчик может управлять сохранением данных управляемых форм в настройках. Для этого при разработке формы ему необходимо воспользоваться следующими свойствами формы:
СохранениеДанныхВНастройках – при помощи данного свойства разработчик формы может включить возможность сохранения данных формы (с возможностью выбора настройки, в которую будут сохраняться данные). Если у формы включена необходимость сохранения, то форма предоставляет команды сохранения / загрузки настроек.
АвтоматическоеСохранениеДанныхВНастройках – указывает необходимость автоматического сохранения настроек при закрытии формы и восстановлении при открытии формы. При этом не важно, используется или нет список настроек.
ХранилищеНастроек – ссылка на хранилище настроек, в котором предполагается сохранение настроек. Если не указано, то используется хранилище сохранения настроек данных формы, указанное в конфигурации. А если и в конфигурации не указано хранилище, то настройки сохраняются в стандартное хранилище настроек.
Если для формы установлена возможность сохранения данных, то необходимо указать, какие реквизиты формы должны сохраняться (колонка Сохранение на закладке Реквизиты редактора формы).
При сохранении настроек в качестве ключа объекта используется полное имя формы. В настройках сохраняется объект типа Соответствие, в котором в качестве ключей находятся пути к сохраняемым реквизитам, а в качестве значений – их (реквизитов) значения.
Для дополнительной обработки сохранения и загрузки в форме имеются следующие обработчики:
ПриСохраненииДанныхВНастройкахНаСервере – в данный обработчик передается объект (типа Соответствие), в который будут сохраняться настройки. В объекте уже заполнены значения реквизитов, которые требовалось сохранять. В этом обработчике можно программно добавить в объект настроек дополнительную информацию. Например, поместить в реквизит настроек отбор.
ПриЗагрузкеДанныхИзНастроекНаСервере – в данный обработчик передается объект, из которого уже загружены настройки. Это соответствие, в котором находятся значения реквизитов. В этом обработчике можно будет загрузить собственные свойства из соответствия. Например, восстановить параметры отбора.
Varozh; nboris; marku; gluglugluglu; Rustavelli; veslav; user1033301; bymer; mvl_dimir; swimdog; Aleksandr_prof; criptid; NittenRenegade; alsan; DoReMu; veiuper; bo0s; st4rk; Ziggurat; Andy_NTG; neo-ti; T_Guest; Jeka44; Dragonim; IvanGorbunov; PLAstic; mark_oilbass; _7445_; vit00lya; Evilleo; YaroslavHolovatiy; Mingrel; RomanMartynenko; Teut_Vlad; ilya4; tdml; sim_ph3; COMPER; vvvalera; Lena272; Правдин; Deslime; asp-1c; Alien_job; Mahon83; IVershinin; t.kovrizhnyh; PhoenixAOD; ДАК1; kasper076; YNik; E-rsh-p; kogl208; dmbarchenkov; Srk47; markers; fuel56; Мах; Ганс; _Sedoy; qazwert; kuzyara; Insanity; Vostr; ValeryFT; TreeDogNight; ErrorEd88; adhocprog; rqz; Blind_Guardian; superkuzja; Pervuy; freeek; jmi; bahbah; Vodoley; Valerich; skyman2; Diamond_Angel; AndrewVVS; Froloid; Sottoz; dj_serega; Sanario; Bahyt; maraton1185; TbSasha; sanja; director04; RomanNogovitsin; AzagTot; odniv; Spacer; bird21; sapervodichka; nihfalck; SANILLA; Kom-off; brunen9; Dr_DelProg; ManyakRus; Maliwka; +102 Ответить
6. SANILLA 05.10.13 07:40 Сейчас в теме
(5) znaher, это всё конечно замечательно, а может кто-нибудь показать образец кода, как это всё можно сделать?
7. SANILLA 06.10.13 20:52 Сейчас в теме
(5) znaher, Благодарю. Наконец-то получилось.
Пытался сначала сам сохранять и восстанавливать с помощью:
СохранитьЗначение("ИмяФайлаВCSV", Диалог.ПолноеИмяФайла);
ИмяФайлаВCSV = ВосстановитьЗначение("ИмяФайлаВCSV");

Но эти методы работают только в толстом клиенте.
Потом попробовал Вашими методами:
изменил свойства формы СохранениеДанныхВНастройках, АвтоматическоеСохранениеДанныхВНастройках;
и поставил галочки у нужных реквизитов в колонке Сохранение на закладке Реквизиты редактора формы.
Всё классно отрабатывает :)
nboris; Hogyoku; Rega; irvin12345; SunnyGirl1412; zyama; +6 Ответить
19. victor_k 95 22.05.19 05:39 Сейчас в теме
(5)
При этом не важно, используется или нет список настроек.


"...При этом не важно, используется или нет список настроек. ...", у меня со списком только восстанавливается и НЕ СОХРАНЯЕТСЯ при закрытии формы
20. victor_k 95 22.05.19 05:57 Сейчас в теме
(19) блин передернул "..использовать список..." и заработало)
8. MsDjuice 114 20.11.14 12:16 Сейчас в теме
Для Таблиц сохраняются и загружаются данные стандартным механизмом (простой установкой галочек) или нужно юзать ПриСохраненииДанныхВНастройкахНаСервере и ПриЗагрузкеДанныхИзНастроекНаСервере. Если простой флажок или поле, то сохраняет, таблицу не хочет. Спасибо за ответ.
9. alexusiv 19.12.14 13:07 Сейчас в теме
Создать реквизит с типом таблица значений(поставить галочку сохранять), и уже при сохранении в нее выгружать свою таблицу
adhocprog; Eddy; +2 Ответить
10. fixin 4252 07.05.16 10:09 Сейчас в теме
(9) как вариант мой код для табличных частей отчета:

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    
    СохранитьНастройки(Отказ, СтандартнаяОбработка);
КонецПроцедуры

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


&НаСервере
Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Настройки)
    ДопНастройки = ХранилищеНастроекДанныхФорм.Загрузить("Отчет.ОтчетПоПродажамОстаткамДляЗаказов", "НастройкиТаблицыВидовНоменклатуры");
    Попытка
        ТЗ = ЗначениеИзСтрокиВнутр(ДопНастройки["ТабличнаяЧастьВидыНоменклатуры"]);
        Отчет.ТабличнаяЧастьВидыНоменклатуры.Загрузить(ТЗ)
    Исключение
    КонецПопытки;
КонецПроцедуры
Показать
marku; zqzq; Maindevice; hiduk; nporrep; adhocprog; Lena272; smit1c; myoker; AndrewVVS; +10 Ответить
12. natarezn 18.06.16 15:56 Сейчас в теме
работает вот так :
&НаСервере
Процедура СохранитьНастройки() Экспорт
    Настройки = Новый Соответствие;
    ТЗ = Объект.ТоварыЗаказа.Выгрузить();
    Настройки.Вставить("ЗагрузкаПрайсаТабличнаяЧасть", ЗначениеВСтрокуВнутр(ТЗ));
    ХранилищеНастроекДанныхФорм.Сохранить("Объект.Товары", "ЗагрузкаПрайсаТабличнаяЧасть", Настройки);
	ХранилищеНастроекДанныхФорм.Сохранить("Объект", "НомерПервойСтроки", ЭтаФорма.НомерПервойСтроки);

КонецПроцедуры
Показать
13. natarezn 18.06.16 15:56 Сейчас в теме
&НаСервере
  Процедура ПриЗакрытииНаСервере()
	   СохранитьНастройки();
  КонецПроцедуры
22. DELOVOYDOM 20.01.24 12:18 Сейчас в теме
(13)
СохранитьНастройки();

Это не работает, зачем вы это написали?
23. DELOVOYDOM 20.01.24 12:20 Сейчас в теме
(22) Пардон только прочитал ниже сколько вы кода написали, вместо того, чтобы поставить галочку автосохранения
24. user1880116 20.01.24 21:26 Сейчас в теме
(22)
зачем вы это написали?
С разморозкой! Мы тут 8 лет тебя ждали, а ты всё не приходил.
14. natarezn 18.06.16 16:09 Сейчас в теме
вот окончательный вариант
&НаСервере
Процедура СохранитьНастройки() Экспорт
    Настройки = Новый Соответствие;
    ТЗ = ЭтаФорма.ТоварыЗаказа.Выгрузить();
    Настройки.Вставить("ЗагрузкаПрайсаТабличнаяЧасть", ЗначениеВСтрокуВнутр(ТЗ));
    ОбщегоНазначения.ХранилищеНастроекДанныхФормСохранить("Объект.Товары", "ЗагрузкаПрайсаТабличнаяЧасть", Настройки);
	ОбщегоНазначения.ХранилищеНастроекДанныхФормСохранить("Объект.НомерПервойСтроки", "НомерПервойСтроки", ЭтаФорма.НомерПервойСтроки);
	ОбщегоНазначения.ХранилищеНастроекДанныхФормСохранить("Объект.файл", "файл", ЭтаФорма.файл);

КонецПроцедуры


&НаСервере
Процедура ПередЗагрузкойДанныхИзНастроекНаСервере()
    ДопНастройки = ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить("Объект.Товары", "ЗагрузкаПрайсаТабличнаяЧасть");
    Попытка
        ТЗ = ЗначениеИзСтрокиВнутр(ДопНастройки["ЗагрузкаПрайсаТабличнаяЧасть"]);
         ЭтаФорма.ТоварыЗаказа.Загрузить(ТЗ);
		 ЭтаФорма.НомерПервойСтроки=ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить("Объект.НомерПервойСтроки", "НомерПервойСтроки");
         ЭтаФорма.файл=ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить("Объект.файл", "файл");
 		 ЭтаФорма.НомерПервойСтроки=ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить("Объект.НомерПервойСтроки", "НомерПервойСтроки");

		 
		 

    Исключение
    КонецПопытки;
КонецПроцедуры
Показать
marku; aleksae; nikakoy; +3 Ответить
21. 7OH 69 02.06.23 11:30 Сейчас в теме
(14) а как программно определить - надо сохранять данный реквизит или нет ?
15. natarezn 18.06.16 16:10 Сейчас в теме
вообще это зависит от 1с платформы
16. natarezn 18.06.16 16:10 Сейчас в теме
// Сохраняет настройку в хранилище настроек данных форм.
//
// Параметры:
//   КлючОбъекта       - Строка - Ключ объекта настройки.
//   КлючНастроек      - Строка - Ключ сохраняемых настроек.
//   Значение          - Произвольный     - Настройки, которые нужно сохранить в хранилище. 
//   ОписаниеНастроек  - ОписаниеНастроек - Вспомогательная информация о настройке.
//   ИмяПользователя   - Строка - Имя пользователя, настройки которого сохраняются.
//       Если не указано, то сохраняются настройки текущего пользователя.
//   НужноОбновитьПовторноИспользуемыеЗначения - Булево - Сбросить кэши модулей ПовтИсп.
//
// См. также:
//   "СтандартноеХранилищеНастроекМенеджер.Сохранить" в синтакс-помощнике.
//
Процедура ХранилищеНастроекДанныхФормСохранить(КлючОбъекта, КлючНастроек, Значение,
	ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено, 
	НужноОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт
	
	ХранилищеСохранить(
		ХранилищеНастроекДанныхФорм, 
		КлючОбъекта, 
		КлючНастроек, 
		Значение,
		ОписаниеНастроек, 
		ИмяПользователя, 
		НужноОбновитьПовторноИспользуемыеЗначения);
	
КонецПроцедуры
Показать
YaroslavHolovatiy; nikakoy; jmi; igormiro; +4 Ответить
17. newvideo 27.04.19 15:35 Сейчас в теме
РегистрСведенийНаборЗаписей таблица прямо на форме имеет галку "Сохраняемые данные". При этом у формы нет галки сохранять настройки и у конфигурации нет хранилища. Сам набор записей данные в регистр не пишет, а видимо сохраняет куда-то во временные файлы/хранилище. Как можно вытащить данные от туда?
18. newvideo 27.04.19 18:42 Сейчас в теме
(17) После десятикратного пинка регистр всё же начал писать данные формы, первый раз с таким глюком встретился, короче ребят, перезапускайте конфы, чистите кеш, иначе вот такие глюки, просто пол дня потерял.
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день