Добрый день, подскажите как наименее затратно сохранять данные заполнения полей на управляемых формах.
Хочется что бы пользователю не приходилось перевыбирать значения реквизитов и устанавливать переключатели при каждом открытии формы.
Естественно для каждого пользователя будут свои сохраненные значения.
Заранее спасибо!
Хочется что бы пользователю не приходилось перевыбирать значения реквизитов и устанавливать переключатели при каждом открытии формы.
Естественно для каждого пользователя будут свои сохраненные значения.
Заранее спасибо!
По теме из базы знаний
- Native компонента сканирования для обычных форм (Beta версия)
- Сохранение данных в файл, загрузка данных из файла, групповая обработка данных, перенос данных между идентичными конфигурациями
- Сохранение печатной формы в файл для нескольких документов с заданным именем файла
- Сохранение данных печатных форм
- Сохранение данных табличных частей форм в Excel
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Разработчик может управлять сохранением данных управляемых форм в настройках. Для этого при разработке формы ему необходимо воспользоваться следующими свойствами формы:
СохранениеДанныхВНастройках – при помощи данного свойства разработчик формы может включить возможность сохранения данных формы (с возможностью выбора настройки, в которую будут сохраняться данные). Если у формы включена необходимость сохранения, то форма предоставляет команды сохранения / загрузки настроек.
АвтоматическоеСохранениеДанныхВНастройках – указывает необходимость автоматического сохранения настроек при закрытии формы и восстановлении при открытии формы. При этом не важно, используется или нет список настроек.
ХранилищеНастроек – ссылка на хранилище настроек, в котором предполагается сохранение настроек. Если не указано, то используется хранилище сохранения настроек данных формы, указанное в конфигурации. А если и в конфигурации не указано хранилище, то настройки сохраняются в стандартное хранилище настроек.
Если для формы установлена возможность сохранения данных, то необходимо указать, какие реквизиты формы должны сохраняться (колонка Сохранение на закладке Реквизиты редактора формы).
При сохранении настроек в качестве ключа объекта используется полное имя формы. В настройках сохраняется объект типа Соответствие, в котором в качестве ключей находятся пути к сохраняемым реквизитам, а в качестве значений – их (реквизитов) значения.
Для дополнительной обработки сохранения и загрузки в форме имеются следующие обработчики:
ПриСохраненииДанныхВНастройкахНаСервере – в данный обработчик передается объект (типа Соответствие), в который будут сохраняться настройки. В объекте уже заполнены значения реквизитов, которые требовалось сохранять. В этом обработчике можно программно добавить в объект настроек дополнительную информацию. Например, поместить в реквизит настроек отбор.
ПриЗагрузкеДанныхИзНастроекНаСервере – в данный обработчик передается объект, из которого уже загружены настройки. Это соответствие, в котором находятся значения реквизитов. В этом обработчике можно будет загрузить собственные свойства из соответствия. Например, восстановить параметры отбора.
СохранениеДанныхВНастройках – при помощи данного свойства разработчик формы может включить возможность сохранения данных формы (с возможностью выбора настройки, в которую будут сохраняться данные). Если у формы включена необходимость сохранения, то форма предоставляет команды сохранения / загрузки настроек.
АвтоматическоеСохранениеДанныхВНастройках – указывает необходимость автоматического сохранения настроек при закрытии формы и восстановлении при открытии формы. При этом не важно, используется или нет список настроек.
ХранилищеНастроек – ссылка на хранилище настроек, в котором предполагается сохранение настроек. Если не указано, то используется хранилище сохранения настроек данных формы, указанное в конфигурации. А если и в конфигурации не указано хранилище, то настройки сохраняются в стандартное хранилище настроек.
Если для формы установлена возможность сохранения данных, то необходимо указать, какие реквизиты формы должны сохраняться (колонка Сохранение на закладке Реквизиты редактора формы).
При сохранении настроек в качестве ключа объекта используется полное имя формы. В настройках сохраняется объект типа Соответствие, в котором в качестве ключей находятся пути к сохраняемым реквизитам, а в качестве значений – их (реквизитов) значения.
Для дополнительной обработки сохранения и загрузки в форме имеются следующие обработчики:
ПриСохраненииДанныхВНастройкахНаСервере – в данный обработчик передается объект (типа Соответствие), в который будут сохраняться настройки. В объекте уже заполнены значения реквизитов, которые требовалось сохранять. В этом обработчике можно программно добавить в объект настроек дополнительную информацию. Например, поместить в реквизит настроек отбор.
ПриЗагрузкеДанныхИзНастроекНаСервере – в данный обработчик передается объект, из которого уже загружены настройки. Это соответствие, в котором находятся значения реквизитов. В этом обработчике можно будет загрузить собственные свойства из соответствия. Например, восстановить параметры отбора.
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
–
Ответить
(5) znaher, Благодарю. Наконец-то получилось.
Пытался сначала сам сохранять и восстанавливать с помощью:
Но эти методы работают только в толстом клиенте.
Потом попробовал Вашими методами:
изменил свойства формы СохранениеДанныхВНастройках, АвтоматическоеСохранениеДанныхВНастройках;
и поставил галочки у нужных реквизитов в колонке Сохранение на закладке Реквизиты редактора формы.
Всё классно отрабатывает :)
Пытался сначала сам сохранять и восстанавливать с помощью:
СохранитьЗначение("ИмяФайлаВCSV", Диалог.ПолноеИмяФайла);
ИмяФайлаВCSV = ВосстановитьЗначение("ИмяФайлаВCSV");
Но эти методы работают только в толстом клиенте.
Потом попробовал Вашими методами:
изменил свойства формы СохранениеДанныхВНастройках, АвтоматическоеСохранениеДанныхВНастройках;
и поставил галочки у нужных реквизитов в колонке Сохранение на закладке Реквизиты редактора формы.
Всё классно отрабатывает :)
Для Таблиц сохраняются и загружаются данные стандартным механизмом (простой установкой галочек) или нужно юзать ПриСохраненииДанныхВНастройкахНаСервере и ПриЗагрузкеДанныхИзНастроекНаСервере. Если простой флажок или поле, то сохраняет, таблицу не хочет. Спасибо за ответ.
(9) как вариант мой код для табличных частей отчета:
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
СохранитьНастройки(Отказ, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура СохранитьНастройки(Отказ, СтандартнаяОбработка) Экспорт
Настройки = Новый Соответствие;
ТЗ = Отчет.ТабличнаяЧастьВидыНоменклатуры.Выгрузить();
Настройки.Вставить("ТабличнаяЧастьВидыНоменклатуры", ЗначениеВСтрокуВнутр(ТЗ));
ХранилищеНастроекДанныхФорм.Сохранить("Отчет.ОтчетПоПродажамОстаткамДляЗаказов", "НастройкиТаблицыВидовНоменклатуры", Настройки);
КонецПроцедуры
&НаСервере
Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Настройки)
ДопНастройки = ХранилищеНастроекДанныхФорм.Загрузить("Отчет.ОтчетПоПродажамОстаткамДляЗаказов", "НастройкиТаблицыВидовНоменклатуры");
Попытка
ТЗ = ЗначениеИзСтрокиВнутр(ДопНастройки["ТабличнаяЧастьВидыНоменклатуры"]);
Отчет.ТабличнаяЧастьВидыНоменклатуры.Загрузить(ТЗ)
Исключение
КонецПопытки;
КонецПроцедуры
Показать
работает вот так :
&НаСервере
Процедура СохранитьНастройки() Экспорт
Настройки = Новый Соответствие;
ТЗ = Объект.ТоварыЗаказа.Выгрузить();
Настройки.Вставить("ЗагрузкаПрайсаТабличнаяЧасть", ЗначениеВСтрокуВнутр(ТЗ));
ХранилищеНастроекДанныхФорм.Сохранить("Объект.Товары", "ЗагрузкаПрайсаТабличнаяЧасть", Настройки);
ХранилищеНастроекДанныхФорм.Сохранить("Объект", "НомерПервойСтроки", ЭтаФорма.НомерПервойСтроки);
КонецПроцедуры
Показать
вот окончательный вариант
&НаСервере
Процедура СохранитьНастройки() Экспорт
Настройки = Новый Соответствие;
ТЗ = ЭтаФорма.ТоварыЗаказа.Выгрузить();
Настройки.Вставить("ЗагрузкаПрайсаТабличнаяЧасть", ЗначениеВСтрокуВнутр(ТЗ));
ОбщегоНазначения.ХранилищеНастроекДанныхФормСохранить("Объект.Товары", "ЗагрузкаПрайсаТабличнаяЧасть", Настройки);
ОбщегоНазначения.ХранилищеНастроекДанныхФормСохранить("Объект.НомерПервойСтроки", "НомерПервойСтроки", ЭтаФорма.НомерПервойСтроки);
ОбщегоНазначения.ХранилищеНастроекДанныхФормСохранить("Объект.файл", "файл", ЭтаФорма.файл);
КонецПроцедуры
&НаСервере
Процедура ПередЗагрузкойДанныхИзНастроекНаСервере()
ДопНастройки = ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить("Объект.Товары", "ЗагрузкаПрайсаТабличнаяЧасть");
Попытка
ТЗ = ЗначениеИзСтрокиВнутр(ДопНастройки["ЗагрузкаПрайсаТабличнаяЧасть"]);
ЭтаФорма.ТоварыЗаказа.Загрузить(ТЗ);
ЭтаФорма.НомерПервойСтроки=ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить("Объект.НомерПервойСтроки", "НомерПервойСтроки");
ЭтаФорма.файл=ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить("Объект.файл", "файл");
ЭтаФорма.НомерПервойСтроки=ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить("Объект.НомерПервойСтроки", "НомерПервойСтроки");
Исключение
КонецПопытки;
КонецПроцедуры
Показать// Сохраняет настройку в хранилище настроек данных форм.
//
// Параметры:
// КлючОбъекта - Строка - Ключ объекта настройки.
// КлючНастроек - Строка - Ключ сохраняемых настроек.
// Значение - Произвольный - Настройки, которые нужно сохранить в хранилище.
// ОписаниеНастроек - ОписаниеНастроек - Вспомогательная информация о настройке.
// ИмяПользователя - Строка - Имя пользователя, настройки которого сохраняются.
// Если не указано, то сохраняются настройки текущего пользователя.
// НужноОбновитьПовторноИспользуемыеЗначения - Булево - Сбросить кэши модулей ПовтИсп.
//
// См. также:
// "СтандартноеХранилищеНастроекМенеджер.Сохранить" в синтакс-помощнике.
//
Процедура ХранилищеНастроекДанныхФормСохранить(КлючОбъекта, КлючНастроек, Значение,
ОписаниеНастроек = Неопределено, ИмяПользователя = Неопределено,
НужноОбновитьПовторноИспользуемыеЗначения = Ложь) Экспорт
ХранилищеСохранить(
ХранилищеНастроекДанныхФорм,
КлючОбъекта,
КлючНастроек,
Значение,
ОписаниеНастроек,
ИмяПользователя,
НужноОбновитьПовторноИспользуемыеЗначения);
КонецПроцедуры
Показать
РегистрСведенийНаборЗаписей таблица прямо на форме имеет галку "Сохраняемые данные". При этом у формы нет галки сохранять настройки и у конфигурации нет хранилища. Сам набор записей данные в регистр не пишет, а видимо сохраняет куда-то во временные файлы/хранилище. Как можно вытащить данные от туда?
Автосохранение табличной части
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
Выборка = ХранилищеНастроекДанныхФорм.Выбрать(Новый Структура("КлючОбъекта", "Автосохранение"));
Если Выборка.Следующий() Тогда
ТЗ = Выборка.Настройки["ТаблицаРасхождений"];
Если ТЗ <> Неопределено Тогда
Объект.ТаблицаРасхождений.Загрузить(ТЗ);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗакрытииНаСервере()
Настройки = Новый Соответствие;
Настройки.Вставить("ТаблицаРасхождений", Объект.ТаблицаРасхождений.Выгрузить());
ХранилищеНастроекДанныхФорм.Сохранить("Автосохранение", "", Настройки);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
ПриЗакрытииНаСервере();
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот