Куда сохраняются настройки внешней обработки в 1С (Обычные формы)?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

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

Почему настройки не видны в базе данных?

В платформе 1С:Предприятие 8 для обычных форм реализован механизм, который по умолчанию сохраняет настройки интерфейса и значений реквизитов во внешние файлы конфигурации пользователя. Эти файлы имеют расширение .pfl и располагаются локально на компьютере пользователя в профиле операционной системы.

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

Особенности привязки настроек к объекту

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

Как избавиться от привязки к старым настройкам:

  1. Загрузите внешнюю обработку в конфигурацию (как внешний отчет/обработку).
  2. Сохраните объект обратно в файл из конфигуратора.
  3. Переименуйте форму или создайте новую форму в обработке, чтобы сбросить ассоциацию с предыдущим кэшем настроек.

Как реализовать хранение настроек внутри базы данных?

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

Разберем по шагам процесс сохранения и восстановления настроек через программный код:

Шаг 1: Сохранение данных

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


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

// Сохраняем в хранилище общих настроек
ХранилищеОбщихНастроек.Сохранить("МояВнешняяОбработка", "НастройкиФормы", СтруктураНастроек);

Шаг 2: Восстановление данных

В процедуре ПриОткрытии мы выполняем обратное действие — загружаем сохраненные параметры:


// Получаем настройки из базы данных
ЗагруженныеНастройки = ХранилищеОбщихНастроек.Загрузить("МояВнешняяОбработка", "НастройкиФормы");

// Если настройки существуют, заполняем реквизиты формы
Если ТипЗнч(ЗагруженныеНастройки) = Тип("Структура") Тогда
    ДатаНачала = ЗагруженныеНастройки.ДатаНачала;
    Организация = ЗагруженныеНастройки.Организация;
КонецЕсли;

Почему это решение лучше?

При использовании ХранилищеОбщихНастроек мы получаем следующие преимущества:

Использование этого подхода является стандартом при разработке качественных внешних обработок в УПП, так как он делает поведение системы предсказуемым для конечного пользователя.

← На главную