Сохранитьзначение в управляемом приложении

Сохранитьзначение в управляемом приложении

Область применения: управляемое приложение, обычное приложение.

1.1. Для хранения персональных настроек пользователя следует использовать хранилище общих настроек. Например, чтение и запись значения настройки «Задавать вопрос при выходе из программы» для текущего пользователя реализуется на встроенном языке с помощью объекта ХранилищеОбщихНастроек :

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

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

1.2. Для работы с пользовательскими настройками требуется, чтобы для пользователя было доступно право СохранениеДанныхПользователя .

1.3. Для обращения к каждой настройке в хранилище общих настроек необходимо использовать уникальный строковый ключ настройки. Например, значения основной организации и основного склада, с которыми работает текущий пользователь – это две разные настройки, которые хранятся раздельно под ключами «ОсновнаяОрганизация» и «ОсновнойСклад» .

В то же время, некоторые настройки могут быть объединены в структуру, массив или соответствие, если все обращения к ним выполняются одновременно, как к одной настройке. Например, параметры прокси-сервера для доступа к сети Интернет представляют из себя набор из нескольких значений (адрес прокси-сервер, имя и пароль пользователя), однако хранятся все вместе в виде одной структуры как одна самостоятельная настройка.

2.1. В конфигурации должно быть предусмотрено общее место для редактирования всех пользовательских настроек. Как правило, это общая форма персональных настроек пользователя.

Пример реализации формы персональных настроек «Мои настройки» имеется в демонстрационной конфигурации Библиотеки стандартных подсистем .

2.2. В то же время, форма персональных настроек может являться не единственным местом для их редактирования. Для повышения удобства работы пользователя поля с отдельными настройками могут быть размещены непосредственно в тех рабочих местах, к которым эти настройки относятся. Например, флажок «Больше не показывать подсказки при редактировании файла» может быть размещен прямо на форме с самой подсказкой, которая выводится при работе с файлами.

Читайте также:  Как работает антенна наушники

2.3. Форма персональных настроек пользователя, другие формы (рабочие места), а также отдельные элементы форм для работы с персональными настройками должны быть доступны только пользователям с правом СохранениеДанныхПользователя .

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

3.2. Все настройки в хранилище общих настроек сохраняются в разрезе пользователей информационной базы, по строковому имени пользователя. Поэтому в случае переименования пользователя прежние настройки теряются. В частности, если впоследствии будет создан пользователь, имя которого совпадает с именем переименованного пользователя, то для него будут использованы ранее сохраненные настройки.

Для того чтобы этого избежать, рекомендуется переносить настройки при переименовании пользователя, и очищать настройки при удалении.

При использовании в конфигурации Библиотеки стандартных подсистем (БСП) в распоряжении разработчика имеются обработчики записи и удаления пользователя информационной базы (см. процедуры ПриЗаписиПользователяИнформационнойБазы и ПослеУдаленияПользователяИнформационнойБазы в общем модуле ПользователиПереопределяемый ), в которых возможно выполнить перенос и удаление настроек. Пример использования см. в демонстрационной конфигурации БСП.

Для сохранения значений реквизитов управляемой формы в 1С нужно включить свойство управляемой формы СохранениеДанныхВНастройках. После этого в окне реквизитов формы появится дополнительная колонка Сохранять данные в настройках. В этой колонке нужно поставить флаг у тех реквизитов, значения которых нужно сохранять.

После этого на форме появятся стандартные кнопки Сохранить параметры и Восстановить параметры (возможно, они будут скрыты под кнопкой Еще).

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

Читайте также:  Расширение ova что это

Рассмотрим эту процедуру на примере формы с двумя табличными частями: ТипыЦен и ГруппыНоменклатуры. В каждой табличной части по одной колонке.

Для сохранения значений табличной части управляемой формы нам потребуется создать процедуру для события формы ПриСохраненииДанныхВНастройкахНаСервере. Как следует из названия, это событие возникает при сохранении значений реквизитов формы. И тут то мы и сможем добавить к реквизитам нашу табличную часть, предварительно преобразованную в массив.

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

//Создаем массивы из табличных частей
МассивГрупп = новый массив ;
Для каждого Строка из Объект . Группы Цикл
МассивГрупп . Добавить ( Строка . Группа ) ;
КонецЦикла ;

МассивЦен = новый массив ;
Для каждого Строка из Объект . ТипыЦен Цикл
МассивЦен . Добавить ( Строка . ТипЦены ) ;
КонецЦикла ;

//Добавляем полученные массивы в сохраняемые настройки с соответствующими именами
Настройки . Вставить ( "Группа" , МассивГрупп ) ;
Настройки . Вставить ( "ТипыЦен" , МассивЦен ) ;

Теперь осталось восстановить табличные части из массивов при загрузке настроек управляемой формы. Для этого нам потребуется процедура для события ПриЗагрузкеДанныхИзНастроекНаСервере.

Процедура ПриЗагрузкеДанныхИзНастроекНаСервере ( Настройки )

//Очищаем табличные части, чтобы избежать дублей
Объект . Группы . Очистить ( ) ;
Объект . ТипыЦен . Очистить ( ) ;

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

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

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

  • В свойствах формы на закладке Использование параметр АвтоматическоеСохранениеДанныхВНастройках установить в значение Использовать;
  • После этого в списке реквизитов формы появится колонка Сохранение, поставьте флажки в этой колонке напротив тех реквизитов, которые должны сохраняться.
Ссылка на основную публикацию
Сообщение на тему жесткий диск по информатике
Информатика Основным устройством хранения информации в компьютерной системе является жесткий диск. Большой объем и энергонезависимость сделали его наиболее пригодным для...
Слова содержащие приставку корень суффикс и окончание
Примеры разборов слов, у которых есть все основные морфемы: приставка, корень, суффикс, окончание. у бор к а у дивл ени...
Словарь для it специалистов
ykaneva 2018-04-09T16:54:33+00:00 September 13th, 2017 | Практика английского | 7 Comments 7 142,973 Сегодня день программиста. По этому поводу в...
Сообщение о выигрыше айфона
Да, почти всегда это обман и развод на деньги. Те, кто проводит ВКонтакте, Инстаграме и других соцсетях «конкурсы», «розыгрыши айфонов»,...
Adblock detector