Каталог решений - Автоматическая перезагрузка 1с

Автоматическая перезагрузка 1с

Автоматическая перезагрузка 1с

В наличии

Автоматический перезапуск 1с при сбоях, отключениях, потерях сети и регламентных работах (средствами 1с)

Категория:

Описание

Иногда возникает необходимость чтобы 1с была постоянно запущена на компьютере, например для организации учета рабочего времени сотрудников, считывания штрих-кодов и т.д., причем при возможных сбоях, отключениях, потерях сети, регламентных работах — программа должна автоматически перезапускаться без участия пользователя.

 

Для решения такой задачи можно сделать следующее:

 

Функционал: интерактивно запускается обработка, которая создает задачу в планировщике задач Windows, эта задача запускает 1с по заданному рассписанию.

каждые 30  секунд  обработка переводит время запуска 1с на 5 минут вперед, если 1с зависнет — обработка перестанет переводить время запуска задачи в планировщике, и 1с автоматически перезагрузится через 5 минут, дальше все по циклу.

 

Реализация.

1. При старте 1с запускаем обработку (например вызывает ее из процедуры ПриНачалеРаботыСистемы)

2. В обработке подключаем обработчик ожидания

ПодключитьОбработчикОжидания(«ПриОжидании», 30);

и создаем процедуру:

 

Процедура ПриОжидании() //!СМ!

  //- MMЧ — создадим файл для перезагрузки 1с !СМ!
  БАТ = Новый ТекстовыйДокумент;

 //  БАТ.ДобавитьСтроку(«pskill 1cv8»); //- MMЧ — удалание приложения, на компьютере необходимо установить pskill.exe !СМ!

 БАТ.ДобавитьСтроку(«taskkill /IM 1cv8* /f«); //- MMЧ — удалание приложения, штатные средства закрытия приложения

  БАТ.ДобавитьСтроку(«start /max C:\Progra~1\1cv82\Common\1cestart.exe enterprise /AppAutoCheckMode /sserver1c\1c8Complex /N»»User»» /pПароль»); //- MMЧ — запуск 1с под конкретным   пользователем !СМ!
  БАТ.Записать(«c:\client.bat»,КодировкаТекста.ANSI);

  //- MMЧ — СОЗДАИМ В ПЛАНИРОВЩИКЕ ЗАДАЧ ЗАДАЧУ И ПЕРЕВЕДЕМ У НЕЕ ВРЕМЯ НА 5 МИНУТ ВПЕРЕД !СМ!
  //- MMЧ — КОГДА 1С ПОВИСНИТ, ЧЕРЕЗ 5 МИНУТ ПЛАНИРОВЩИК ЕГО ПЕРЕЗАПУСТИТ !СМ!
  WshShell = Новый COMОбъект(«WScript.Shell»);
  ///Найдем задачу и удалим — это для XP, для более поздних систем можно использовать параметр /F , тогда искать и удалять задачу не требуется
  строкаКоманды = «schtasks /delete /TN «»1c RESTART»» /F»;
  WshShell.Run(строкаКоманды, 0, Истина);
  ///Создаем задачу

  //- MMЧ — проверить создание задачи, можно запустив строку коменды в командной строке Windows  !СМ! 
  //- MMЧ — для вызова помощи по параметрам введите schtasks /? в командной строке !СМ!
  строкаКоманды = «schtasks /create /sc minute /mo 10 /st «+Формат(ТекущаяДата()+60*5, «ДЛФ=T»)+» /tn «»1c RESTART»» /tr c:\client.bat /ru «»DOMEN\UserWindows»» /RP «»ПарольWindows»» «;
  WshShell.Run(строкаКоманды, 0, Истина);
  WshShell = Неопределено;

КонецПроцедуры //

 


has been added to your cart:
Оформление заказа