Как сохранить/восстановить значения из табличной части формы

1. fromon 18.04.13 18:04 Сейчас в теме
Есть внешняя обработка. В форме есть табличная часть.
Как сохранить значения введенные пользователем в данную ТЧ?
Чтобы при следующем открытии данной обработки ТЧ была заполнена.
По теме из базы знаний
Найденные решения
4. DmitriyMos 27.03.15 11:55 Сейчас в теме
&НаСервере
Процедура СохранитьНастройки()
	
	КлючНастроек = "ОтчетВасиПупкина";	
	Настройки = Новый Соответствие;
	
	Настройки.Вставить("ТЧКоторуюХотетьСохранить", Отчет.ТЧКоторуюХотетьСохранить.Выгрузить());
	
	ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ОтчетВасиПупкина", КлючНастроек, Настройки);
	
КонецПроцедуры

&НаСервере
Процедура ВосстановитьНастройки()

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

КонецПроцедуры
Показать
user1636219; tatoshka0403; maksa2005; AlexKoso; continental; CnupT; Somebody1; surr; Elf77; yushka; malev; Areal; magdeevik; NotGear; shetill; info1ctart; yulok; Arenk; houpl; AndrewKop; namazi74; Nikos; YNik; MaiorovYury; olo_lo4; ixijixi; cezarj; Zachem_mne_nik; Programmer-1C; limonen; AndKovalchuk; Johney20; vat-74; Razved4ik; AtPups000; Dicc; Demic; owson; viktor_and_ko; Nordvip; +40 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. zulus100 18.04.13 18:21 Сейчас в теме
(1) fromon, через свойство формы "сохранять значения", например...
3. sacred 173 19.04.13 00:54 Сейчас в теме
Вопрос поставлен крайне невнятно.
У формы не может быть никакой табличной части.
У формы может быть реквизит - таблица значений, а НА форме может быть табличное поле.
Табличная часть может быть у самой обработки.
Учитывая, что по тексту вопроса непонятно что же на самом деле расположено на форме и с какими данными связано, а также каким образом производится первое заполнение (ведь колонки могут создаваться и программно) - определённый ответ дать невозможно.
4. DmitriyMos 27.03.15 11:55 Сейчас в теме
&НаСервере
Процедура СохранитьНастройки()
	
	КлючНастроек = "ОтчетВасиПупкина";	
	Настройки = Новый Соответствие;
	
	Настройки.Вставить("ТЧКоторуюХотетьСохранить", Отчет.ТЧКоторуюХотетьСохранить.Выгрузить());
	
	ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ОтчетВасиПупкина", КлючНастроек, Настройки);
	
КонецПроцедуры

&НаСервере
Процедура ВосстановитьНастройки()

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

КонецПроцедуры
Показать
user1636219; tatoshka0403; maksa2005; AlexKoso; continental; CnupT; Somebody1; surr; Elf77; yushka; malev; Areal; magdeevik; NotGear; shetill; info1ctart; yulok; Arenk; houpl; AndrewKop; namazi74; Nikos; YNik; MaiorovYury; olo_lo4; ixijixi; cezarj; Zachem_mne_nik; Programmer-1C; limonen; AndKovalchuk; Johney20; vat-74; Razved4ik; AtPups000; Dicc; Demic; owson; viktor_and_ko; Nordvip; +40 Ответить
9. Serg_F1 27.05.15 17:34 Сейчас в теме
(4) DmitriyMos,

Смешно конечно написал, в плане стиля повествования,
но спасибо за дельный совет. Воспользовался, вставив текст в обработчики при открытии и закрытии, все работает как надо!!!
11. Johney20 20.03.18 09:18 Сейчас в теме
(4) Дмитрий, добрый день! У меня ровно такой же вопрос, как и в этой теме) Вы все подробно расписали, единственное, не совсем пойму, что должно быть в ключе настроек?? И "Отчет.ТЧКоторуюХотетьСохранить.Выгрузить()" - почему отчет??
14. namazi74 4 26.11.19 09:57 Сейчас в теме
(4) какой же вы офигенный!))
15. SashaSashaSashka 09.12.22 16:01 Сейчас в теме
(4) Настройки сохраняемые через ОбщегоНазначения.ХранилищеОбщихНастроекСохранить сохраняются только для текущего пользователя.
16. SashaSashaSashka 13.12.22 09:35 Сейчас в теме
(4) и (15) Разобрался. Чтобы сохранить настройку для всех пользователей нужно в пятый параметр(ИмяПользователя) процедуры ОбщегоНазначения.ХранилищеОбщихНастроекСохранить передать какую-либо строку и при загрузке настройки использовать её же. Например:
    КлючНастроек = "ОтчетВасиПупкина";    
    Настройки = Новый Соответствие; 
    Настройки.Вставить("ТЧКоторуюХотетьСохранить", Отчет.ТЧКоторуюХотетьСохранить.Выгрузить());   
    ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ОтчетВасиПупкина", КлючНастроек, Настройки, , КлючНастроек);

и
    КлючНастроек = "ОтчетВасиПупкина";    
    ЗначениеНастроек = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ОтчетВасиПупкина", КлючНастроек, , , КлючНастроек);    
    Если ТипЗнч(ЗначениеНастроек) = Тип("Соответствие") Тогда
        Отчет.ТЧКоторуюХотетьСохранить.Загрузить(ЗначениеНастроек.Получить("ТЧКоторуюХотетьСохранить"));    
    КонецЕсли;
17. Kovekh 15.03.23 10:08 Сейчас в теме
(16)А как вы обходите вот это ограничение, интересно?) Или у вас у всех пользователей есть право АдминистрированиеДанных?
Прикрепленные файлы:
5. vx_gas 26 28.03.15 07:02 Сейчас в теме
Я бы загуглил типовые механизмы, например в универсальном отчете (для конфы упп или ут), там в регистр настройки засыпаются.... И собственно весь механизм есть: положить в настройки, взять из настроек, остается только использовать
6. R_G_B 28.03.15 17:56 Сейчас в теме
Вопрос действительно сформулирован не точно.
Если нет каких-то противопоказаний, то лучше использовать стандартные платформенные механизмы.
У управляемых форм есть свойства: АвтоматическоеСохранениеДанныхВНастройках, СохранениеДанныхВНастройках. Ну и на закладке "Реквизиты" формы есть колонка "Сохранение". Обработчики событий есть, в общем все что нужно. С некоторых пор и настройки динамических списков сохраняются.

У обычных форм есть свойства: "Сохранять значения", "Сохраняемые значения", "ВосстанавливатьЗначенияПриОткрытии". Действия формы и обработчики событий тоже есть.
7. volga23rus 28.03.15 20:15 Сейчас в теме
Есть справочник сохраненные настройки, вот в них все и сохраняется. Только необходимо учесть что табличную часть можно хранить ввиде хранилища значений.
8. DolPew 22 31.03.15 13:49 Сейчас в теме
Можно через "ЗначениеВФайл", с привязкой к каталогу на данном компе "Мои доки" например, а при открытии "ЗначениеИзФайла"

Если ТаблицаЗаданийОбщая.Количество() > 0 Тогда	
		WshShell = Новый COMОбъект("Wscript.Shell"); 
		WshFolder = WshShell.SpecialFolders.Item("MyDocuments");
	
		ПолноеИмяФайла 		= WshFolder + "\AutoSaveWorks1C.sel";
		ВыбранныйФайл 	= Новый Файл(ПолноеИмяФайла);
		
		Если Не ВыбранныйФайл.Существует() Тогда
			НовыйДокумент = Новый ТекстовыйДокумент;
			НовыйДокумент.Записать(ПолноеИмяФайла,"windows-1251");
		КонецЕсли;	

	    ДанныеДляСохранения = ТаблицаЗаданийОбщая.Выгрузить();
		
		ЗначениеВФайл(ПолноеИмяФайла, ДанныеДляСохранения);
			
	КонецЕсли;
Показать
10. kudim 22.06.16 09:42 Сейчас в теме
У себя сделал через использование пары функций "ЗначениеВСтрокуВнутр" и "ЗначениеИзСтрокиВнутр". Табличное поле выгружаем в Таблицу значений.
Получаем строку и записываем в реквизит Строка неограниченной длины. Где будет этот реквизит в справочнике или в регистре сведений это уже на выбор.
В отличие от Хранилища значений две строки можно сравнивать! Если отличаются сохраняем, если нет, то ничего не делаем.
12. IvSchekin 20.03.18 10:07 Сейчас в теме
При сохранении надо в разрезе пользователей данные хранить.
Т.е.. зашел пупкин с любого компа ему его данные заполненные в прошлый раз загрузились, зашла маня ее последние, и т..д.
Поэтому когда формируется КлючНастроек он должен быть составным ИМЯ_ОБРАБОТКИ + ИМЯ_ПОЛЬЗОВАТЕЛЯ.
13. ValeriyZ 19 18.07.19 13:46 Сейчас в теме
Как вариант использовать методы формы. Так кода меньше.
Сохраняем и восстанавливаем табличную часть обработки "товары"

&НаСервере
Процедура ПриСохраненииДанныхВНастройкахНаСервере(Настройки)
	Настройки.Вставить("Товары",Объект.Товары.Выгрузить());
КонецПроцедуры

&НаСервере
Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Настройки)
       // попытка нужна для первого входа, пока значения "товары" в сохраненных настройках нет
	Попытка
		Объект.Товары.Загрузить(Настройки.Получить("Товары"));
	Исключение
	КонецПопытки
КонецПроцедуры

&НаКлиенте
Процедура ТоварыПриИзменении(Элемент) 
       //нужно взвести флаг модификации данных при изменении в табличном поле
	СохраняемыеВНастройкахДанныеМодифицированы = Истина;
КонецПроцедуры
Показать
imaster; dvsidelnikov; ASV085; Синицын; AlexKoso; BatiskaDa; Cthulhu; slax; epsilon; sdaf; kholkin; Jekka84; paxan; buy_sale; druny; +15 Ответить
Оставьте свое сообщение

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