Как программно выполнить стандартную команду «Восстановить параметры» в 1С

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

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

Решение для обычных форм

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

УниверсальныеМеханизмы.ВосстановлениеНастроек(ЭтаФорма);

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

Обходное решение для управляемых форм с использованием COM-объекта WScript.Shell

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

Платформа 1С поддерживает назначение кнопки по умолчанию для формы или командной панели, вызов которой производится сочетанием клавиш Ctrl + Enter. Если разместить стандартную команду «Восстановить параметры» на командной панели управляемой формы и назначить ее кнопкой по умолчанию, её можно активировать программно при открытии формы.

Рассмотрим пример кода в обработчике ПриОткрытии:


&НаКлиенте
Процедура ПриОткрытии(Отказ)
    WSHShell = Новый COMОбъект("WScript.Shell");
    WSHShell.SendKeys("^+{ENTER}");
КонецПроцедуры

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

Штатный подход: программное управление через ХранилищеСистемныхНастроек

Чтобы избежать зависимости от интерфейсных команд и внешних COM-объектов, загрузку и сохранение параметров формы правильнее выполнять программно. Для этого в платформе 1С предусмотрен объект ХранилищеСистемныхНастроек.

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

  1. Загрузка параметров: с помощью метода ХранилищеСистемныхНастроек.Загрузить() получаем сохраненную структуру значений и присваиваем их реквизитам формы.
  2. Сохранение параметров: методом ХранилищеСистемныхНастроек.Поместить() записываем актуальное состояние реквизитов формы по заданному ключу объекта и ключу настройки.
  3. Сброс параметров: метод ХранилищеСистемныхНастроек.Удалить() позволяет очистить ранее сохраненные пользовательские данные.

Проанализируем пример загрузки настроек на сервере:


&НаСервере
Процедура ЗагрузитьНастройкиФормыНаСервере()
    КлючОбъекта = "Обработка.МояВнешняяОбработка";
    КлючНастройки = "ОсновнаяНастройка";
    
    Настройки = ХранилищеСистемныхНастроек.Загрузить(КлючОбъекта, КлючНастройки);
    Если ТипЗнч(Настройки) = Тип("Структура") Тогда
        ЗаполнитьЗначенияСвойств(ЭтаФорма, Настройки);
    КонецЕсли;
КонецПроцедуры

Серверные событии формы для работы с настройками

Если у управляемой формы включено свойство «Сохранение данных формы в настройках», платформой предусмотрены встроенные обработчики событий:

  1. ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) — позволяет перехватить процесс загрузки и внести изменения в структуру параметров до того, как форма отобразится пользователю.
  2. ПриСохраненииДанныхВНастройкахНаСервере(Настройки) — дает возможность скорректировать состав сохраняемых реквизитов.

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

← На главную