Хранилище настроек в 1С 8.3

Курс

Виды хранилищ настроек

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

В платформе существуют следующие виды хранилищ настроек:

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

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

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

Хранилище настроек

Хранилище системных настроек

Чтобы получить содержимое хранилища системных настроек можно воспользоваться методом Выбрать менеджера ХранилищеСистемныхНастроек, перебрать выборку и заполнить таблицу значений:

В результате будет получена следующая таблица:

Хранилище системных настроек

В поле Пользователь указан пользователь, для которого были сохранены настройки. В поле КлючОбъекта — объект настройки. У одного объекта может быть несколько настроек, имя настройки хранится в поле КлючНастроек. В поле Настройки хранятся сами настройки, тип зависит от вида настройки, это могут быть НастройкиОкна, НастройкиФормы, Соответствие и т.п. В поле Представление указано представление настройки.

Параметром можно передать структуру с отбором и получить только нужные настройки:

Чтобы записать что-то в хранилище системных настроек используется метод Сохранить. Первым параметром указывается ключ объекта, вторым — ключ настройки для этого объекта, третьим — сами настройки:

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

Можно перезаписать системные настройки, которые сохраняет платформа. Например, скопировать все настройки от одного пользователя другому:

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

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

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

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

Чтобы удалить все настройки пользователя нужно первыми двумя параметрами указать Неопределено:

Чтобы удалить одну настройку для всех пользователей нужно вместо имени пользователя передать Неопределено:

С помощью метода ПолучитьСписок можно получить список всех имен настроек одного объекта для текущего пользователя:

Для получения списка настроек другого пользователя нужно указать его имя вторым параметром:

Для сохраненных настроек можно указать произвольное текстовое описание. Это делается с помощью объекта ОписаниеНастроек:

Описание настройки можно добавить и получить отдельно от основной настройки с помощью методов УстановитьОписание и ПолучитьОписание:

Хранилище общих настроек

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

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

Остальные приемы работы аналогичны приемам работы с хранилищем системных настроек.

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

Хранилище настроек

Можно создать свое хранилище настроек. Они находятся в дереве метаданных в узле Общие -> Хранилища настроек. Например, добавим новое хранилище:

Хранилище настроек

Чтобы обратиться к такому хранилищу нужно указать ХранилищаНастроек.ИмяХранилища:

У хранилища тоже есть методы Сохранить и Загрузить. Но если их вызвать, то настройки никуда не будут записаны. Запись и чтение настроек нужно выполнить вручную в модуле менеджера хранилища в обработчиках ОбработкаСохранения и ОбработкаЗагрузки:

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

В обработке загрузки также к ключу добавляется «ХранилищеНастроекПользователя\», читаются настройки из хранилища общих настроек и присваиваются параметру Настройки.

Если не указано имя пользователя, то данному параметра присваивается имя текущего пользователя ИБ.

Пример записи и чтения настроек пользователя:

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

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

И потом вызывать через менеджер хранилища:

Хранение настроек в регистре сведений

Настройки можно хранить в регистре сведений, справочнике и других объектах базы. Рассмотрим пример хранения настроек пользователя в регистре. Создадим регистр сведений следующей структуры:

Хранилище настроек

Тип всех измерений Строка(100). Ресурс Настройки — Хранилище значения, ресурс Описание — Строка(1024).

В модуль менеджера хранилища настроек добавим следующий код:

Сохранение и загрузка настроек выполняется как обычно:

Переопределение хранилища общих настроек

Если созданное хранилище указать в свойстве конфигурации Хранилище общих настроек:

Хранилище общих настроек

То при записи в хранилище общих настроек будет использоваться созданное хранилище. Сохранение и загрузка настроек будет выполняться в соответствии с алгоритмами описанными в модуле менеджера.


Подписывайтесь на группу ВКонтакте , где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok