Имя: Пароль:
1C
1С v8
Подключиться к серверу NTP из 1С
0 Andreyyy
 
26.08.11
00:05
Как ?
И получить точное время/дату ?

Спасибо.
1 Andreyyy
 
26.08.11
09:11
апну
2 shuhard
 
26.08.11
09:13
(1) ну ты и лентяй
v8: Работа с NTP
3 Andreyyy
 
26.08.11
09:30
(2) Нифига не лентяй) яндексил до "последнего"
Спасибо, но файл почему-то 0 байт получается после

Попытка                                
   XMLHTTP=Новый HTTPConnection("ntp.psn.ru",13);
   XMLHTTP.Получить("ntp.psn.ru","c:\1sdate");
Исключение
КонецПопытки;

еще так пробовал:

Попытка                                
   XMLHTTP=Новый HTTPConnection("time.windows.com",13);
   XMLHTTP.Получить("time.windows.com","c:\1sdate");
Исключение
КонецПопытки;

может принципиально не так что-то делаю ?
4 Wobland
 
26.08.11
09:37
странное какое-то имя файла "time.windows.com"
5 Andreyyy
 
26.08.11
09:39
(4) имя файла "c:\1sdate"

HTTPСоединение (HTTPConnection)
Получить (Get)
Синтаксис:

Получить(<Источник>, <ИмяВыходногоФайла>, <Заголовки>)
Параметры:

<Источник> (обязательный)

Тип: Строка. Адрес ресурса на сервере.
<ИмяВыходногоФайла> (обязательный)

Тип: Строка. Имя файла, в который помещаются данные полученного ресурса.
<Заголовки> (необязательный)

Тип: Строка. Указываются заголовки, добавляемые к запросу на сервер. Текстовые пары вида <Заголовок>:<Значение>, разделяемые комбинацией ВК + ПС.
Описание:

Получает ресурс из указанного адреса.

Доступность:

Сервер, толстый клиент, внешнее соединение.
6 Chai Nic
 
26.08.11
09:43
Однако.. странно как-то вы к ntp-серверу по http-протоколу пытаетесь обратиться.
7 Andreyyy
 
26.08.11
09:43
И номер порта пробовал менять на 123, не хочет работать один фиг, но у автора v8: Работа с NTP я так понял получилось все ...
8 Wobland
 
26.08.11
09:44
(5) странный адрес ресурса на сервере
9 Chai Nic
 
26.08.11
09:44
(7) HTTP - протокол, основанный на TCP. NTP - на UDP. Общего между ними только буква P.
10 Andreyyy
 
26.08.11
09:45
(8) Если б я еще понимал что в протоколах ...
Как быть то ?
11 Andreyyy
 
26.08.11
09:46
(10) к (9)
12 Chai Nic
 
26.08.11
09:46
Тут внешняя компонента нужна или можно тупо запускать утилитку типа ntpdate и парсить вывод.
13 Chai Nic
 
26.08.11
09:47
Типа так
ntpdate -buq ntp.ru > file.txt
14 Andreyyy
 
26.08.11
09:51
Ошибка в консоли:

"ntpdate" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
15 Chai Nic
 
26.08.11
09:52
(14) Так её в винде по умолчанию нет. Надо найти на бескрайних просторах интернета.
16 ДенисЧ
 
26.08.11
09:52
(14) net time
17 Chai Nic
 
26.08.11
09:54
(16) net time не умеет запрашивать время по NTP
18 sttt
 
26.08.11
10:28
фиг знает у меня так работает:

Попытка                                
  XMLHTTP=Новый HTTPConnection("time.nist.gov",13);
  XMLHTTP.Получить("time.nist.gov","c:\1sdate");  
Исключение
КонецПопытки;
19 Kremlin
 
26.08.11
10:29
Возникла та же проблема.В (2) получается файл 0 байт((
20 Chai Nic
 
26.08.11
10:36
(18) Да это работает, но к NTP это не имеет ни малейшего отношения. Просто этот сервер выдает строчку со временем по http на 13 порту tcp.
21 Chai Nic
 
26.08.11
10:44
(+20) Поправлюсь - это протокол не HTTP, а DAYTIME. Однако, опять-таки к NTP отношения не имеет, и далеко не каждый NTP-сервер отзывается на DAYTIME. И этот протокол вообще не предназначен для задач точного времени.. это чисто тестово-информационный сервис.
22 sttt
 
26.08.11
10:44
ну тогда так:
net time \\NTP_Server_Name /set /y
23 Asmody
 
26.08.11
10:45
вообще-то такие вещи на уровне ОС решать надо
24 sttt
 
26.08.11
10:50
еще так:

'====================================================
' VBScript Source File -- Created with XLnow OnScript
' SynchTime.vbs
' AUTHOR: Guy Thomas
' COMPANY: Computer Performance
' DATE: January 2006 Version 3.2
' COMMENT: Script to synchronize with the Time service
'=====================================================
Option Explicit
Dim objShell
Dim intShortSleep, intLongSleep, strService
Dim strTimeSrv, timeBefore, timeAfter, timeDiff
Set objShell = CreateObject("WScript.Shell")
strService = "w32Time"
intShortSleep = 3000
intLongSleep = 6000 '1000 = 1 second

' Time Server set (Remove ' Rem if you want to change)
strTimeSrv = "time-a.nist.gov"
'strTimeSrv = "uk.pool.ntp.org"

' Use .Run method to configure the time server
objShell.Run "w32tm /config /syncfromflags:manual /manualpeerlist:"_
& strTimeSrv
Call Restart()
' Collect time before the script synchronizes
timeBefore = DatePart("s" , Now) + DatePart("n" , Now) *60
timeBefore = timeBefore + DatePart("h", Now) *3600

' Key command to resynchronize with time server
objShell.Run "w32Tm /resync /rediscover"
Wscript.Sleep intShortSleep
timeAfter = DatePart("s" , Now) + DatePart("n" , Now) *60
timeAfter = timeAfter + DatePart("h", Now) *3600

' Cosmetic section to display the clock adjustment
timeDiff = (timeAfter - timeBefore) - (intShortSleep/1000)
If timeDiff < 0 then
   WScript.Echo "Clock was fast by " & -timeDiff & " secs"
      ElseIf timeDiff > 0 then
      WScript.Echo "Clock was slow by " & timeDiff & " secs"
      ElseIf timeDiff = 0 then
      WScript.Echo " Clock synchronized " & timeDiff & " difference"
End if
WScript.Quit

Sub Restart()
' Restart Service
objShell.Run "net stop " & strService
objShell.Run "net start " & strService
Wscript.Sleep intLongSleep
End Sub
25 Andreyyy
 
26.08.11
11:20
Всем огромное спасибо, кучу рабочих вариантов показали.
26 ДенисЧ
 
26.08.11
11:21
(17) что-то новенькое...
27 shuhard
 
26.08.11
11:27
(26) старенькое
net time работает по SNTP
28 Chai Nic
 
26.08.11
11:33
(22) Он тогда синхронизирует системное время, а надо только запросить, локальное время при этом не должно меняться по условиям задачи...
(27) net time получает время, используя rpc. А не ntp или sntp (который по сути урезанный ntp). Ключи /setsntp и /querysntp в этой команде - инородцы, и к запросу времени отношения не имеют.
29 Chai Nic
 
26.08.11
11:38
Еще вариант без установки допсофта. Слегка геморно, но реально.

Запускаем "w32tm /stripchart /computer:ntp.ru /samples:1", парсим вывод, анализируем расхождение с системным временем, и получаем точное время.
Ошибка? Это не ошибка, это системная функция.