Работа с пользовательскими настройками
Область применения: управляемое приложение, обычное приложение.
1.1. Для хранения персональных настроек пользователя следует использовать хранилище общих настроек. Например, чтение и запись значения настройки «Задавать вопрос при выходе из программы» для текущего пользователя реализуется на встроенном языке с помощью объекта ХранилищеОбщихНастроек :
ЗначениеНастройки = ХранилищеОбщихНастроек.Загрузить(«НастройкиПрограммы», «ЗадаватьВопросПриВыходе»);
ХранилищеОбщихНастроек.Сохранить(«НастройкиПрограммы», «ЗадаватьВопросПриВыходе», ЗначениеНастройки);
При этом для хранения настроек пользователя не следует использовать какие-либо другие способы, в частности, другие объекты метаданных (регистры, реквизиты и табличные части справочников и др.), внешние файлы и пр.
1.2. Для работы с пользовательскими настройками требуется, чтобы для пользователя было доступно право СохранениеДанныхПользователя .
1.3. Для обращения к каждой настройке в хранилище общих настроек необходимо использовать уникальный строковый ключ настройки. Например, значения основной организации и основного склада, с которыми работает текущий пользователь – это две разные настройки, которые хранятся раздельно под ключами «ОсновнаяОрганизация» и «ОсновнойСклад» .
В то же время, некоторые настройки могут быть объединены в структуру, массив или соответствие, если все обращения к ним выполняются одновременно, как к одной настройке. Например, параметры прокси-сервера для доступа к сети Интернет представляют из себя набор из нескольких значений (адрес прокси-сервер, имя и пароль пользователя), однако хранятся все вместе в виде одной структуры как одна самостоятельная настройка.
2.1. В конфигурации должно быть предусмотрено общее место для редактирования всех пользовательских настроек. Как правило, это общая форма персональных настроек пользователя.
Пример реализации формы персональных настроек «Мои настройки» имеется в демонстрационной конфигурации Библиотеки стандартных подсистем .

2.2. В то же время, форма персональных настроек может являться не единственным местом для их редактирования. Для повышения удобства работы пользователя поля с отдельными настройками могут быть размещены непосредственно в тех рабочих местах, к которым эти настройки относятся. Например, флажок «Больше не показывать подсказки при редактировании файла» может быть размещен прямо на форме с самой подсказкой, которая выводится при работе с файлами.
2.3. Форма персональных настроек пользователя, другие формы (рабочие места), а также отдельные элементы форм для работы с персональными настройками должны быть доступны только пользователям с правом СохранениеДанныхПользователя .
3.1. При работе с хранилищем общих настроек следует иметь в виду, что настройки не мигрируют между узлами информационной базы, а специфичны для определенного узла. При необходимости, передача настроек пользователей между узлами может быть реализована дополнительно средствами встроенного языка.
3.2. Все настройки в хранилище общих настроек сохраняются в разрезе пользователей информационной базы, по строковому имени пользователя. Поэтому в случае переименования пользователя прежние настройки теряются. В частности, если впоследствии будет создан пользователь, имя которого совпадает с именем переименованного пользователя, то для него будут использованы ранее сохраненные настройки.
Для того чтобы этого избежать, рекомендуется переносить настройки при переименовании пользователя, и очищать настройки при удалении.
При использовании в конфигурации Библиотеки стандартных подсистем (БСП) в распоряжении разработчика имеются обработчики записи и удаления пользователя информационной базы (см. процедуры ПриЗаписиПользователяИнформационнойБазы и ПослеУдаленияПользователяИнформационнойБазы в общем модуле ПользователиПереопределяемый ), в которых возможно выполнить перенос и удаление настроек. Пример использования см. в демонстрационной конфигурации БСП.
Хранилище настроек в 1С 8.3

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

Существуют хранилища двух видов. Рассмотрим их использование на примере программы «1С:Бухгалтерия предприятия 3.0».
Стандартное хранилище настроек пользователя 1С
В решениях 1С:Предприятие предусмотрено стандартное хранение, предустановленное на уровне разработки. При таком варианте сделанные установки хранятся в таблицах ИБ.
Администратор может это изменить, задав новые места хранения и определив их в свойствах конфигурации. Это актуально при необходимости контроля ссылочной целостности, перемещении настроек между информационными базами, когда необходима определенная структура хранения настроек и другие ситуации. Если вы не уверены в своих знаниях, наши специалисты с радостью помогут вам в рамках услуг по доработке типовой конфигурации 1С.
Если поля хранилищ оставить пустыми, то система будет использовать стандартное хранилище.

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

ХранилищеПользовательскихНастроекОтчетов – ориентирован на организацию доступа к сохраненным настройкам отчетов пользователя.
Пример использования в коде.

ХранилищеНастроекДанныхФорм – хранит пользовательские установки данных форм.
Пример использования в коде.

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

ХранилищеСистемныхНастроек – для организации хранения системных установок программы и доступа к ним.

ХранилищеПользовательскихНастроекДинамическихСписков – с его помощью осуществляется хранение пользовательских установок динамических списков.

Механизм работы
Механизм «Хранилища настроек» как объект метаданных описывает порядок хранения настроек некоторых объектов. Откроем для примера программу «1С:Бухгалтерия предприятия 3.0» в конфигурационном режиме и развернем дерево метаданных. Нас интересует узел в разделе «Общие-Хранилища настроек».

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

В управляемых формах имеется два варианта:
- Сохранение параметров в предустановленное хранилище при закрытии формы автоматом и при открытии – восстановление из него;
- В настройках. Чтобы воспользоваться этим вариантом, установим в списке реквизитов формы галку напротив сохраняемого реквизита в колонке «Сохранять».

Реквизиты формы отчета
С помощью вышеописанного механизма можно сохранить данные не в системных таблицах, а отдельных объектах конфигурации. Для его реализации программист описывает алгоритмы, по которым идет процесс сохранения/восстановления настроек.
Хранилища настроек дают возможность сохранить и, если надо посмотреть, настройки параметров формируемых отчетов, что позволяет автоматически заполнять формы настроек, тем самым оптимизируя работу. Если у вас остались вопросы, обращайтесь на линию консультаций 1С 8.3, наши специалисты с радостью вам помогут.
1с как посмотреть хранилище общих настроек
Написал обработку обмена. Она может запускаться вручную, а может и по расписанию. Думаю использовать механизм запуска внешних обработок БП3 по расписанию.
По идее при запуске по расписанию можно указать пользователя, от имени которого запускается задание, но не факт.
Хотелось бы использовать ХранилищеОбщихНастроек.Загрузить, общее для всех пользователей, а не для конкретного пользователя, такое есть?
Ну иначе можно конечно скопировать настройки по этому разделу от себя в робота, как вариант, хз.
Смотри ирОбщий.СохранитьЗначениеЛкс(). Без прав администратора сделать (0) я не нашел способ.
(1) может свое хранилище заюзать, а не общее? там же есть и другие хранилища?
(1) что ты имеешь ввиду под правами админа? УстановитьПривилегированныйРежим(Истина) не катит?
(3) ну, проверьте.
(1) где смотреть-та? Если у тебя плугин под рукой, кинь сюда плиз текст
Хотя забыл, что CFE можно открыть в конфигураторе. Итак?
Функция СохранитьЗначениеЛкс(КлючНастроек, Значение, ДляВсехПользователей = Ложь) Экспорт
#Если ТонкийКлиент Или ВебКлиент Или МобильныйКлиент Тогда
ирСервер.СохранитьЗначениеЛкс(КлючНастроек, Значение);
#Иначе
Если ДляВсехПользователей И ПравоДоступа(«АдминистрированиеДанных», Метаданные) Тогда
ИмяПользователя = ирКэш.ИмяПродукта();
Иначе
//ИмяПользователя = Неопределено; // Такое значение вызывает ошибки у нестандартных хранилищ
ИмяПользователя = ИмяПользователя();
КонецЕсли;
ХранилищеОбщихНастроек.Сохранить(ирКэш.ИмяПродукта(), КлючНастроек, Значение,, ИмяПользователя);
#КонецЕсли
Функция ИмяПродукта() Экспорт
А, да, точняк, она ж требует имя пользователя, можно использовать произвольное имя, например «geniy1s.ru», гыгыгы. Помню, юзал это но забыл. но это ты под ОФ наверное мучаешься, под УФ должно работать через УстановитьПривилегированныйРежим(Истина)
Ларчик просто открывался, вот пример:
Функция СохранитьХранимуюНастройку(ИмяНастройки, Значение) Экспорт
УстановитьПривилегированныйРежим(истина);
ХранилищеОбщихНастроек.Сохранить(«Обмен_МойСклад_1С», ИмяНастройки, Значение, «Обмен_МойСклад_1С»);
КонецФункции
Функция ВосстановитьХранимуюНастройку(ИмяНастройки) Экспорт
УстановитьПривилегированныйРежим(истина);
Возврат ХранилищеОбщихНастроек.Загрузить(«Обмен_МойСклад_1С», ИмяНастройки, «Обмен_МойСклад_1С» );
КонецФункции
(7) Что мешает воспользоваться реквизитом ХранилищеНастроек в справочнике ДополнительныеОтчетыИОбработки для хранения настроек внешней обработки?
(7) это во внешней обработке то?
прив режим не установится
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс
Хранилища настроек в 1С 8
В статье рассмотрены стандартные и добавленные в конфигурацию хранилища настроек, их предназначение и средства встроенного языка 1С для взаимодействия с хранилищами настроек.
Что же такое хранилища настроек и для чего они нужны?
В процессе работы пользователь постоянно сталкивается с заполнением различных настроек – состав и расположение колонок в списках документов, настройки отчетов, обработок и т.д. И чтобы каждый раз не заполнять одни и те же поля, или не менять местами колонки в нужный порядок, платформа предусматривает сохранение пользовательских настроек. Хранилища настроек – как раз то самое место, где сохраняются пользовательские настройки.
Где еще хранятся настройки?
1С не была бы 1С, если бы все было так просто.
Помимо хранилищ настроек, существует еще несколько мест, где сохраняются пользовательские настройки. Это профайлы – файлы с расширением .pfl. Они располагаются в рабочем каталоге пользователя в папке AppData или Application Data, а также в таблице Files той базы данных, в которой размешена информационная база. Т.е. еще раз – часть профайлов хранится в виде файлов, и их-то как раз можно удалить при очистке кэша, а часть – в самой ИБ.
Как оно работало раньше?
Давным-давно, когда не было еще тонкого клиента и управляемых форм, появились методы для записи и чтения настроек:
СохранитьЗначение();
ВосстановитьЗначение();
Эти методы как раз и работают с таблицей Files. У каждого пользователя ИБ есть уникальный идентификатор – 32 битная строка определенного формата. В разрезе этих идентификаторов и хранятся пользовательские настройки ключ записи – .pfl, а значение – двоичные данные, среди которых и сохраненные значения.
Однако эти два метода сохранения значений имеют ряд недостатков.
1. Мы не можем узнать весь список значений, которые сохранены в базе. Они могут быть сохранены пользователем, который уже уволен и в базе не работает. Они могут быть сохранены какой-нибудь обработкой, которую мы запустили раз в жизни и удалили, а сохраненные значения от нее остались в базе и занимают место.
2. Сохраненные значения сохраняются в памяти в течение сеанса, но записываются в базу только при закрытии сеанса. Т.е. если произошло аварийное завершение работы (через прерывание отладки или завершение сеанса в диспетчере задач, например), то сохраненные значения не сохранятся.
3. Выборочно удалить сохраненное значение средствами платформы нельзя. Можно только очистить все сохраненные настройки пользователя, в том числе и сохраненные значения.
4. Эти методы работают только в толстом клиенте. В современных типовых решениях воспользоваться ими вряд ли удастся.
Выход — хранилища настроек 1С!
Хранилища настроек – это механизм платформы для хранения и считывания разного рода пользовательских настроек, который включает в себя два вида хранилищ – стандартные и добавленные разработчиком.
К стандартным относятся следующие хранилища:
Системное хранилище – здесь хранятся настройки форм, настройки печати табличного документа, избранное, история поиска и многое другое. Системное хранилище нельзя переопределить – используется только стандартное, предусмотренное платформой. Ему соответствует свойство глобального контекста ХранилищеСистемныхНастроек.
Хранилище общих настроек – предназначено для хранения общих настроек прикладного решения, предусмотренных разработчиком. Т.е. платформа сама в это хранилище ничего не записывает – разработчик на встроенном языке должен описать сохранение и восстановление пользовательских настроек конфигурации. Например, настройки подключаемого оборудования, настройки сообщений при запуске, параметры онлайн-сервисов и т.д. Для этого используется свойство ХранилищеОбщихНастроек.
Хранилище вариантов отчетов – как понятно из названия, здесь хранятся варианты отчетов. Свойство для работы из встроенного языка – ХранилищеВариантовОтчетов.
Хранилище пользовательских настроек отчетов – также предназначено для работы с отчетами, но сохраняет не варианты, а настройки выполненные в пользовательском режиме. Свойство для этого хранилища – ХранилищеПользовательскихНастроекОтчетов.
Хранилище настроек данных форм – используется, например, для сохранения реквизитов обработок, общих форм и т.д. При этом можно указывать разные хранилища для каждого отчета или обработки. Для доступа к этому хранилищу средствами языка 1С используется свойство глобального контекста ХранилищеНастроекДанныхФорм.
Хранилище пользовательских настроек динамического списка – как ни удивительно, здесь хранятся настройки динамических списков – состав и положение колонок, оформление и др. Ему соответствует свойство ХранилищеПользовательскихНастроекДинамическихСписков.