вопрос зачем?
обычно создается скрипт, задание на запуск которого вешается в шедулер, он и отвечает за запуск восстановления
пример скрипта ниже
set WshShell = CreateObject("WScript.Shell")
On Error Resume Next
Set v7 = CreateObject("V77.Application")
If v7.Initialize(v7.RMTrade, "/m /d""C:\1C\Торговля\"" /nUser /padmin","") Then
v7.OpenForm "Отчет", "Выполнить","C:\1C\Торговля\ExtForms\VosstanovlenieGP.ert"
Else
Set v7 = Nothing
wshShell.run "cmd /c del ""C:\1C\Торговля\*.cdx"" /Q"
Set v7 = CreateObject("V1CEnterprise.Application")
If v7.Initialize(v7.RMTrade, "/m /d""C:\1C\Торговля\"" /nUser /padmin","") Then
v7.OpenForm "Отчет", "Выполнить","C:\1C\Торговля\ExtForms\VosstanovlenieGP.ert"
End If
WScript.Sleep 4000
Set v7 = Nothing
End If
Можно запустить из командной строки под специальным пользователем "Сервис". В глобальном модуле организовать проверку при запуске и если имя пользователя "Сервис" Тогда глВосстановлениеПоследовательности(ВыбПоследовательность)
Разовью маленько: создадим константу (например "Автомат"), в которой будем хранить пользователя, отвечающего за границу. При входе под этим пользователем в процедуре "ПриНачалеРаботыВСистеме" после определения переменной глПользователь пишем:
Если глПользователь = Константа.Автомат Тогда
глВосстановлениеПоследовательности(Последовательность.ОсновнаяПоследовательность);
//надо записать сообщения трассировки в файл
//Для этого надо вызвать обработку трассировки с каким-нибудь уникальным параметром
глПоказатьТрассировку(глПользователь);
ЗавершитьРаботуСистемы(0);
КонецЕсли;
Показать
В процедуре "ПриЗавершенииРаботыСистемы", прям сразу после объявления вставляем:
Если глПользователь = Константа.Автомат Тогда
Возврат;
КонецЕсли;
это чтобы система не задавала идиотских вопросов об уверенности в желании выйти из нее (можно, конечно, и в правах этого пользователя установить галку...)
В обработке "Трассировка" делаем вставыш в процедуру "ПриОткрытии", чтобы процедура выглядела так:
Процедура ПриОткрытии()
Попытка
Форма.Заголовок("Комментарий выполняемых действий",0);
Трассировка = Форма.Параметр;
//+++ вставыш
Если ТипЗначенияСтр(Трассировка) = "Справочник" Тогда
//Это отработал робот. Сохраняем
Таблица.Записать(КаталогИБ() + "\SYSLOG\ПротоколВосстановленияГП.mxl");
КонецЕсли;
//--- вставыш
Если Трассировка.ПолучитьЗначение(2).КоличествоСтрок() > 0 Тогда
ОтобразитьТаблицу();
Иначе
СтатусВозврата(0); // не открываем обработку
КонецЕсли;
Исключение
СтатусВозврата(0); // не открываем обработку
КонецПопытки
КонецПроцедуры // ПриОткрытии
Показать
А процедура "ПриПовторномОткрытии" выглядела так:
Процедура ПриПовторномОткрытии()
Попытка
Трассировка = Форма.Параметр;
//+++ опять этот же вставыш
Если ТипЗначенияСтр(Трассировка) = "Справочник" Тогда
//Это отработал робот. Сохраняем
Таблица.Записать(КаталогИБ() + "\SYSLOG\ПротоколВосстановленияГП.mxl");
КонецЕсли;
//--- вставыш
Если Трассировка.ПолучитьЗначение(2).КоличествоСтрок() > 0 Тогда
ОтобразитьТаблицу();
Иначе
СтатусВозврата(0); // не открываем обработку
КонецЕсли;
Исключение
СтатусВозврата(0); // не открываем обработку
КонецПопытки
КонецПроцедуры // ПриПовторномОткрытии
Показать
Конечно, скрипт в планировщик задач вставить надо будет, но там весь скрипт - строка запуска эски под определенным пользователем.
В минусе: надо вписаться в код
В плюсе: имеем протокол восстановления ГП в файле "ПротоколВосстановленияГП.mxl"