1с сохранить значения реквизитов формы

Обновлено: 07.07.2024

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

Конфигурация какая? Если нетиповая, наверное проще завести регистр сведений и там хранить

гм. Использовать методы в формах:
1) ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
2) ПриСохраненииДанныхВНастройкахНаСервере(Настройки)

Разработчик может управлять сохранением данных управляемых форм в настройках. Для этого при разработке формы ему необходимо воспользоваться следующими свойствами формы:
СохранениеДанныхВНастройках – при помощи данного свойства разработчик формы может включить возможность сохранения данных формы (с возможностью выбора настройки, в которую будут сохраняться данные). Если у формы включена необходимость сохранения, то форма предоставляет команды сохранения / загрузки настроек.
АвтоматическоеСохранениеДанныхВНастройках – указывает необходимость автоматического сохранения настроек при закрытии формы и восстановлении при открытии формы. При этом не важно, используется или нет список настроек.
ХранилищеНастроек – ссылка на хранилище настроек, в котором предполагается сохранение настроек. Если не указано, то используется хранилище сохранения настроек данных формы, указанное в конфигурации. А если и в конфигурации не указано хранилище, то настройки сохраняются в стандартное хранилище настроек.
Если для формы установлена возможность сохранения данных, то необходимо указать, какие реквизиты формы должны сохраняться (колонка Сохранение на закладке Реквизиты редактора формы).
При сохранении настроек в качестве ключа объекта используется полное имя формы. В настройках сохраняется объект типа Соответствие, в котором в качестве ключей находятся пути к сохраняемым реквизитам, а в качестве значений – их (реквизитов) значения.
Для дополнительной обработки сохранения и загрузки в форме имеются следующие обработчики:
ПриСохраненииДанныхВНастройкахНаСервере – в данный обработчик передается объект (типа Соответствие), в который будут сохраняться настройки. В объекте уже заполнены значения реквизитов, которые требовалось сохранять. В этом обработчике можно программно добавить в объект настроек дополнительную информацию. Например, поместить в реквизит настроек отбор.
ПриЗагрузкеДанныхИзНастроекНаСервере – в данный обработчик передается объект, из которого уже загружены настройки. Это соответствие, в котором находятся значения реквизитов. В этом обработчике можно будет загрузить собственные свойства из соответствия. Например, восстановить параметры отбора.

Как в Управляемом Приложении настроить автосохранение значений полей формы?
Заходим в свойства формы и для значения АвтоматическоеСохранениеДанныхВНастройках устанавливаем значение "Использовать":

Затем переходим к реквизитам формы и устанавливаем флажки напротив реквизитов, которые необходимо сохранять:

Разместил: E_Migachev  Версии: | 8.x | 8.2 УП |  Дата: 18.04.2010   Прочитано: 62541

Распечатать

Похожие FAQ

Как заполнить табличную часть формы программно?  6
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C: Enterprise Development Tools  50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем 1С Предприятие что это?  11
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Посмотреть все результаты поиска похожих

Еще в этой же категории

Как обновить динамический список или реквизит на форме клиента?  19
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список

Как на управляемой форме разместить список регистра сведений с отбором?  18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка?  14
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма

Программное создание таблицы значений с условным оформлением  12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора

Заполнение списка значений в элементе поле выбора на форме  10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Как сохранить Значения элементов при закрытии формы и восстановить их при открытии формы?

Это можно сделать через СохранитьЗначения(), ВосстановитьЗначение():
Код 1C v 8.х

Но у этого способа, одно НО - Сохраненые значения будут доступны только на там компьютере, на котором их сохранили!

А чтобы эти значения были доступны с любого компьютера, их нужно хранить в базе, например в константах с типом Хранилище значения:
Перебирая все элементы формы, выбрать только поля ввода и записать их значения в структуру.
Потом структуры записываем в константу:
Код 1C v 8.х

Как сохранять и восстанавливать значения реквизитов на форме?

Разместил: E_Migachev  Версии: | 8.x | 8.2 УП |  Дата: 06.07.2010   Прочитано: 29275

Распечатать

Похожие FAQ

Как заполнить табличную часть формы программно?  6
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 10060 (0x0000274C): Попытка установить соединение была безуспешной  18
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C медленно работает по сети с базой на SQL Server  20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П Посмотреть все результаты поиска похожих

Еще в этой же категории

Как обновить динамический список или реквизит на форме клиента?  19
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список

Как на управляемой форме разместить список регистра сведений с отбором?  18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка?  14
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма

Программное создание таблицы значений с условным оформлением  12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора

Заполнение списка значений в элементе поле выбора на форме  10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Совсем недавно передо мной встала задача, сделать внешнюю обработку в УТ11, которая как известно работает полностью на управляемых формах. Какое же было мое удивление, когда я обнаружил, что у управляемой формы реквизиты заведенные как реквизиты формы, при закрытии и открытии ее заново могут сохраняться и восстанавливаться, точно так же как это было в 8.1, достаточно только поставить напротив галочку сохраненять и в свойствах формы выбрать "АвтоматическоеСохранениеДанныхВНастройках" - Использовать. А что же делать с реквизитами, которые выступают в роли реквизитов объектов ? Погуглив и так ничего толком не найдя, я приступил к экспериментам. Делюсь полученнными результатами.

Поскольку в платформе (8.2.16.362) механизим сохранения реквизитов объектов так и не был найден, осталось только одно - это програмное сохранение настроек при закрытии обработки и программное восстановление при открытии.

За основу примера была взята обработка с конкурса БиТа отсюда Результаты конкурса для участников INFOSTART EVENT 2012 от Первого Бита. за что им кстати огромное спасибо.

К обработке, для наглядности, я еще добавил 2 реквизита. Реквизит1 - тип строка и Реквизит2 -тип "Произвольный", чтобы было еще что-то, кроме "таблицы значений".

Итак, обо всем по порядку:

I. Было создано две процедуры:

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

КлючНастроек = "Обработка.ЗадачаПоУТ_11_шаблон" ;
Настройки = Новый Соответствие ;

Настройки . Вставить ( "ТаблицаЗначений" , Объект . Свойства . Выгрузить ());

Настройки . Вставить ( "Реквизит1" , Объект . Реквизит1 );
Настройки . Вставить ( "Реквизит2" , Объект . Реквизит2 );

ОбщегоНазначения . ХранилищеОбщихНастроекСохранить ( "Обработка.ЗадачаПоУТ_11_шаблон" , КлючНастроек , Настройки );

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

ЗначениеНастроек = ОбщегоНазначения . ХранилищеОбщихНастроекЗагрузить ( "Обработка.ЗадачаПоУТ_11_шаблон" , КлючНастроек );

Если ТипЗнч ( ЗначениеНастроек ) = Тип ( "Соответствие" ) Тогда

ЗначениеИзНастройки = ЗначениеНастроек . Получить ( "ТаблицаЗначений" );

Объект . Реквизит1 = ЗначениеНастроек . Получить ( "Реквизит1" );
Объект . Реквизит2 = ЗначениеНастроек . Получить ( "Реквизит2" );

Объект . Свойства . Загрузить ( ЗначениеИзНастройки );

II. Затем эти процедуры были прописаны в соответствующих процедурах, выполняющихся при открытии и закрытии формы

&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )

&НаКлиенте
Процедура ПриЗакрытии ()

Если же по каким то причинам планируется использовать не типовую или не основанную на БСП конфигурацию, то можно заменить текст процедур ВосстановитьНастройки () и СохранитьНастройки () так :

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

КлючОбъекта = "Обработка.ЗадачаПоУТ_11_шаблон" ;
КлючНастроек = "Обработка.ЗадачаПоУТ_11_шаблон" ;
ОписаниеНастроек = "Обработка.ЗадачаПоУТ_11_шаблон" ;
Значение = "" ;
ИмяПользователя = "" ;

//ЗначениеНастроек = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("Обработка.ЗадачаПоУТ_11_шаблон", КлючНастроек);
ЗначениеНастроек = ХранилищеОбщихНастроек . Загрузить ( КлючОбъекта , КлючНастроек , ОписаниеНастроек , ИмяПользователя );

Если ТипЗнч ( ЗначениеНастроек ) = Тип ( "Соответствие" ) Тогда

ЗначениеИзНастройки = ЗначениеНастроек . Получить ( "ТаблицаЗначений" );

Объект . Реквизит1 = ЗначениеНастроек . Получить ( "Реквизит1" );
Объект . Реквизит2 = ЗначениеНастроек . Получить ( "Реквизит2" );

Объект . Свойства . Загрузить ( ЗначениеИзНастройки );


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

КлючОбъекта = "Обработка.ЗадачаПоУТ_11_шаблон" ;
КлючНастроек = "Обработка.ЗадачаПоУТ_11_шаблон" ;
ОписаниеНастроек = "Обработка.ЗадачаПоУТ_11_шаблон" ;
Значение = "" ;
ИмяПользователя = "" ;

Настройки = Новый Соответствие ;

Настройки . Вставить ( "ТаблицаЗначений" , Объект . Свойства . Выгрузить ());

Настройки . Вставить ( "Реквизит1" , Объект . Реквизит1 );
Настройки . Вставить ( "Реквизит2" , Объект . Реквизит2 );

//ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Обработка.ЗадачаПоУТ_11_шаблон", КлючНастроек, Настройки);
ХранилищеОбщихНастроек . Сохранить ( КлючОбъекта , КлючНастроек , Настройки , ОписаниеНастроек , ИмяПользователя );

Как это все работает, можно посмотреть скачав приложенную к статье обработку.

Читайте также: