Синхронизация системного времени по запросу
Реализовано для защиты от "умных" пользователей, которые делают то что не нужно делать (ручное изменение даты и времени). В рабочей конфигурации используется при синхронизации времени в ЭККА (кассовый аппарат) при закрытии рабочей смены.
Код Процедура КнопкаВыполнитьНажатие(Кнопка)
ЭлементыФормы.ТекВремя.Заголовок = ТекущаяДата();
Батник = Новый ТекстовыйДокумент;
Батник.ДобавитьСтроку("echo off");
Батник.ДобавитьСтроку("w32tm /config /syncfromflags:manual /manualpeerlist:ntp.time.in.ua");
Батник.ДобавитьСтроку("w32tm /config /update");
Батник.ДобавитьСтроку("w32tm /resync > c:\res_set_time.txt");
Батник.Записать("c:\settime.bat",КодировкаТекста.OEM);
WshShell = Новый COMОбъект("WScript.Shell");
//WshExec = WshShell.Exec("c:\settime.bat");
СтрокаЗапуска = "c:\settime.bat";
WshShell.Run(СтрокаЗапуска,0,Истина);
Результат = Новый ТекстовыйДокумент;
Попытка
Результат.Прочитать("c:\res_set_time.txt",КодировкаТекста.OEM);
Исключение
Сообщить("Ошибка открытия файла!");
Возврат;
КонецПопытки;
Рез = Результат.ПолучитьСтроку(2);
Сообщить(?(Найти(Рез,"успешно") > 0,"ОК!","Не удалось"));
Попытка
УдалитьФайлы("c:\settime.bat");
УдалитьФайлы("c:\res_set_time.txt");
Исключение
КонецПопытки;
ЭлементыФормы.ТекВремя.Заголовок = ТекущаяДата();
КонецПроцедуры
Обработка