Стандартное(системное) хранилище настроек в 1С
При работе с прикладными решениями у пользователей есть возможность сохранять настройки отчетов, вариантов отчетов, заполнения форм, и другие. Данные настройки хранятся в специальных таблицах информационной базы. При программировании есть возможность получать и записывать данные этих таблиц.
Сохранить значение и восстановить значение (только обычное приложение)
Для сохранения и получения каких либо значений в 1С Предприятии существуют специальные функции встроенного языка программирования. Данный метод работает только в обычном приложении.
Системные хранилища настроек (обычное и управляемое приложение)
Данный метод универсален и работает в обычном и управляемом приложениях. Во встроенном языке 1С есть специальные объекты предназначенные для работы с системными хранилищами. Используя методы объектов можно записать и получить данные из таблиц настроек. Для каждого системного хранилища предназначен свой объект.
Не всегда стандартный механизм сохранения настроек устраивает разработчиков. В 1С Предприятии есть возможность переопределить хранилище настроек. Для этого необходимо создать объект данных с типом ХранилищеНастроек и подключить его в свойствах конфигурации.
Собственное ХранилищеНастроек обязано реализовать собственные алгоритмы сохранения и восстановления данных в событиях «ОбработкаСохранения», «ОбработкаЗагрузки». Сохранять настройки можно в справочниках, регистрах сведений, файлах и т.д.
Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться
Работа с пользовательскими настройками
Область применения: управляемое приложение, обычное приложение.
1.1. Для хранения персональных настроек пользователя следует использовать хранилище общих настроек. Например, чтение и запись значения настройки «Задавать вопрос при выходе из программы» для текущего пользователя реализуется на встроенном языке с помощью объекта ХранилищеОбщихНастроек :
ЗначениеНастройки = ХранилищеОбщихНастроек.Загрузить(«НастройкиПрограммы», «ЗадаватьВопросПриВыходе»);
ХранилищеОбщихНастроек.Сохранить(«НастройкиПрограммы», «ЗадаватьВопросПриВыходе», ЗначениеНастройки);
При этом для хранения настроек пользователя не следует использовать какие-либо другие способы, в частности, другие объекты метаданных (регистры, реквизиты и табличные части справочников и др.), внешние файлы и пр.
В то же время, некоторые настройки могут быть объединены в структуру, массив или соответствие, если все обращения к ним выполняются одновременно, как к одной настройке. Например, параметры прокси-сервера для доступа к сети Интернет представляют из себя набор из нескольких значений (адрес прокси-сервер, имя и пароль пользователя), однако хранятся все вместе в виде одной структуры как одна самостоятельная настройка.
2.1. В конфигурации должно быть предусмотрено общее место для редактирования всех пользовательских настроек. Как правило, это общая форма персональных настроек пользователя.
2.2. В то же время, форма персональных настроек может являться не единственным местом для их редактирования. Для повышения удобства работы пользователя поля с отдельными настройками могут быть размещены непосредственно в тех рабочих местах, к которым эти настройки относятся. Например, флажок «Больше не показывать подсказки при редактировании файла» может быть размещен прямо на форме с самой подсказкой, которая выводится при работе с файлами.
3.1. При работе с хранилищем общих настроек следует иметь в виду, что настройки не мигрируют между узлами информационной базы, а специфичны для определенного узла. При необходимости, передача настроек пользователей между узлами может быть реализована дополнительно средствами встроенного языка.
3.2. Все настройки в хранилище общих настроек сохраняются в разрезе пользователей информационной базы, по строковому имени пользователя. Поэтому в случае переименования пользователя прежние настройки теряются. В частности, если впоследствии будет создан пользователь, имя которого совпадает с именем переименованного пользователя, то для него будут использованы ранее сохраненные настройки.
Для того чтобы этого избежать, рекомендуется переносить настройки при переименовании пользователя, и очищать настройки при удалении.
При использовании в конфигурации Библиотеки стандартных подсистем (БСП) в распоряжении разработчика имеются обработчики записи и удаления пользователя информационной базы (см. процедуры ПриЗаписиПользователяИнформационнойБазы и ПослеУдаленияПользователяИнформационнойБазы в общем модуле ПользователиПереопределяемый ), в которых возможно выполнить перенос и удаление настроек. Пример использования см. в демонстрационной конфигурации БСП.
Хранилища настроек в 1С 8
В статье рассмотрены стандартные и добавленные в конфигурацию хранилища настроек, их предназначение и средства встроенного языка 1С для взаимодействия с хранилищами настроек.
Содержание
Что же такое хранилища настроек и для чего они нужны?
В процессе работы пользователь постоянно сталкивается с заполнением различных настроек — состав и расположение колонок в списках документов, настройки отчетов, обработок и т.д. И чтобы каждый раз не заполнять одни и те же поля, или не менять местами колонки в нужный порядок, платформа предусматривает сохранение пользовательских настроек. Хранилища настроек — как раз то самое место, где сохраняются пользовательские настройки.
Где еще хранятся настройки?
Как оно работало раньше?
Давным-давно, когда не было еще тонкого клиента и управляемых форм, появились методы для записи и чтения настроек:
СохранитьЗначение();
ВосстановитьЗначение();
Однако эти два метода сохранения значений имеют ряд недостатков.
1. Мы не можем узнать весь список значений, которые сохранены в базе. Они могут быть сохранены пользователем, который уже уволен и в базе не работает. Они могут быть сохранены какой-нибудь обработкой, которую мы запустили раз в жизни и удалили, а сохраненные значения от нее остались в базе и занимают место.
2. Сохраненные значения сохраняются в памяти в течение сеанса, но записываются в базу только при закрытии сеанса. Т.е. если произошло аварийное завершение работы (через прерывание отладки или завершение сеанса в диспетчере задач, например), то сохраненные значения не сохранятся.
3. Выборочно удалить сохраненное значение средствами платформы нельзя. Можно только очистить все сохраненные настройки пользователя, в том числе и сохраненные значения.
4. Эти методы работают только в толстом клиенте. В современных типовых решениях воспользоваться ими вряд ли удастся.
Хранилища настроек — это механизм платформы для хранения и считывания разного рода пользовательских настроек, который включает в себя два вида хранилищ — стандартные и добавленные разработчиком.
К стандартным относятся следующие хранилища:
Системное хранилище — здесь хранятся настройки форм, настройки печати табличного документа, избранное, история поиска и многое другое. Системное хранилище нельзя переопределить — используется только стандартное, предусмотренное платформой. Ему соответствует свойство глобального контекста ХранилищеСистемныхНастроек.
Хранилище общих настроек — предназначено для хранения общих настроек прикладного решения, предусмотренных разработчиком. Т.е. платформа сама в это хранилище ничего не записывает — разработчик на встроенном языке должен описать сохранение и восстановление пользовательских настроек конфигурации. Например, настройки подключаемого оборудования, настройки сообщений при запуске, параметры онлайн-сервисов и т.д. Для этого используется свойство ХранилищеОбщихНастроек.
Хранилище вариантов отчетов — как понятно из названия, здесь хранятся варианты отчетов. Свойство для работы из встроенного языка — ХранилищеВариантовОтчетов.
Хранилище пользовательских настроек отчетов — также предназначено для работы с отчетами, но сохраняет не варианты, а настройки выполненные в пользовательском режиме. Свойство для этого хранилища — ХранилищеПользовательскихНастроекОтчетов.
Хранилище настроек данных форм — используется, например, для сохранения реквизитов обработок, общих форм и т.д. При этом можно указывать разные хранилища для каждого отчета или обработки. Для доступа к этому хранилищу средствами языка 1С используется свойство глобального контекста ХранилищеНастроекДанныхФорм.
Хранилище пользовательских настроек динамического списка — как ни удивительно, здесь хранятся настройки динамических списков — состав и положение колонок, оформление и др. Ему соответствует свойство ХранилищеПользовательскихНастроекДинамическихСписков.
Хранилище настроек на прокачку!
Но не всегда для реализации прикладной логики хватает стандартных возможностей платформы. Для переопределения стандартных хранилищ предусмотрены общие объекты конфигурации — хранилища настроек.
Разработчик может создать необходимое количество хранилищ, и затем указать их в свойствах конфигурации. Одно и то же хранилище настроек в 1С может использоваться в качестве нескольких хранилищ — например, одновременно хранить и варианты отчетов и общие настройки.
Кроме того, как упоминалось выше, можно переопределить стандартное хранилище для вариантов и настроек у отчетов и обработок — делается это в свойствах соответствующего отчета или обработки.
Эти хранилища целесообразно использовать, например, в таких случаях:
Как использовать хранилища настроек 1С?
Общий принцип такой — если хранилища используются вместо стандартных — они будут вызываться при сохранении или загрузке соответствующих настроек — например, при сохранении настроек динамического списка или отчета. У хранилища настроек есть возможность указать основную форму сохранения и основную форму загрузки, и уже в этих формах описать алгоритмы сохранения настроек, например, в элемент справочника.
Кроме того, разработчик может описать в нужных местах код сохранения и восстановления настроек, например, по кнопке, по определенному действию (например, при переходе на закладку формы сохранять данные предыдущей закладки), обработчику ожидания (например, сохранять настройки каждые 10 минут)
Для этого используется конструкции языка
При этом будут вызваны соответствующие обработчики модуля менеджера хранилища ОбработкаСохранения и ОбработкаЗагрузки. Тут очень важный нюанс! Если не описать соответствующий обработчик, то не будет выполнено соответствующее действие — например, без обработчика ОбработкаСохранения не будут сохранены данные.
Для интерактивного сохранения и восстановления настроек с использованием хранилищ настроек, обязательно необходимо создать формы сохранения и загрузки у соответствующего хранилища. Для программного сохранения и восстановления формы не обязательны.
На этом все, надеюсь, материал оказался вам хоть немного полезным!
Хранилище настроек в 1С 8.3
При работе с программой 1C пользователь может настраивать огромное количество разных вещей. Причем начать можно с настройки сервисной обработки, а закончить формированием разных отчетов и прочего. Для того, чтобы не тратить свое время на постоянную настройку и нудные, повторяющиеся действия, любой параметр можно сохранить. Это позволяет экономить время и силы.
1С: Предприятие имеет весь необходимый функционал, который позволяет сохранять, а в случае необходимости и восстанавливать все заданные параметры. При этом не нужно быть каким-то специалистом и знать уйму команд – все делается короткими командами, которые можно найти в инструкции, интернете или разделе помощи программы.
Приобретя для фирмы программу «1С: Бухгалтерия» и при правильной установке настроек вы сможете сэкономить свое время работая с данной программой. Мы подготовили для вас простую инструкцию, позволяющую самостоятельно быстро настроить программу.
Все хранилища делятся на два вида. Давайте рассмотрим примеры их использования на программе 1С: Бухгалтерия 3.0.
Стандартное хранилище настроек пользователя 1С
В программе есть специальная функция стандартного хранения, которая предустановлена еще на стадии разработки. Если вы выбираете такой вариант, то все установки, которые вы сделаете, будут храниться в таблице ИБ.
Администратор сможет это поменять. Достаточно задать новое место для хранения и определить это место в конфигурации. Особо актуально это, когда нужен контроль ссылочной целостности, перемещение настроек между двумя базами или если нужна конкретная структура хранения ваших настроек.
Стандартное хранилище системой используется в том случае, если поля будут пустыми.
Ниже представлены примеры параметров и кодов, которые может использовать администратор при указании нового места хранилища:
Механизм работы
Как работает «Хранилище настроек»? Оно является объектом метаданных, который пописывает порядок хранения установленных настроек у некоторых объектов. Так, для примера мы откроем программу, «1C: Бухгалтерия», перейдем в конфигурационный режим и развернем дерево данных. Нам понадобится узел, который находится по следующему пути:
Таким образом, разработчик может организовать хранение параметров. Можно указать в свойствах объекта или в свойствах конфигурации о том, что данное место будет использоваться для того, чтобы хранить установленные формы.
Как использовать в обработках и отчетах
Когда мы открываем свойства любого отчета в режиме конфигурирования, то на вкладке «прочее» можем увидеть параметр, который определяет заданное хранилище для сохранения и восстановления установок конкретного отчета.
Для управляемых форм есть два варианта:
Формы отчета и реквизиты
Благодаря способу, который мы описали выше, вы можете сохранять данные не в таблицах системы, а выбирать отдельные объекты конфигурации. Для того, чтобы реализовать такой механизм, программист использует специальные описанные алгоритмы, которые и отвечают за сохранение/восстановление настроек.
Благодаря хранилищу настроек, можно не только сохранить, но и просмотреть и настроить параметры отчетов, которые вы формируете. Это позволяет в автоматическом режиме заполнить форму настройки и оптимизировать работу.
Если есть какие-то вопросы, связанные с настройкой, то всегда можно обратиться к специалистам, готовым помочь в этом вопросе.
Хранилище настроек
Хранилища настроек — это общие объекты конфигурации. Они позволяют разработчику создавать собственные механизмы хранения настроек, в тех случаях, когда возможности стандартного механизма хранения настроек недостаточны.
В процессе работы пользователь выполняет различные настройки в системе: создает варианты отчетов, сохраняет настройки отчетов, вводит какие-то данные в формы и т. д. Кроме этого в конкретном прикладном решении могут существовать собственные настройки, определяемые логикой работы этого решения, которые делают работу пользователя более удобной. Эти настройки сохраняются платформой в системных таблицах информационной базы.
Однако не во всех случаях системные механизмы сохранения настроек могут на 100% удовлетворить потребности разработчика. Хранилища настроек как раз позволяют разработчику хранить пользовательские настройки не в системных таблицах, а в объектах конфигурации (например, в специальных справочниках, в регистрах сведений). Благодаря этому разработчик может реализовать собственный формат хранения этих настроек и собственные алгоритмы работы с этими настройками. Например, когда требуется особенная структура хранения настроек, когда необходимо обеспечить передачу настроек в пределах распределенной информационной базы, когда существуют особенные требования к администрированию настроек и т. д.
В свойствах конфигурации, отчетов, обработок или форм можно переопределить сохранение настроек в хранилище, добавленное разработчиком. А в формах загрузки и сохранения настроек описать алгоритмы, в соответствии с которыми настройки будут сохраняться/восстанавливаться.