gifts2017

Получение точного времени по NTP

Опубликовал Alexander Shvets (Alexander.Shvets) в раздел Обработки - Универсальные обработки

Получение точного времени по NTP-протоколу (Внешняя обработка/ Обычная форма / Управляемая форма)

Недавно пришлось синхронизировать данные на разных континентах.

При обмене одним из поля фильтра выступала Дата с точностью до секунд. И при синхронизации данные некорректно получались в силу отличия локального времени на серверах. Синхронизация времени одновременно всех участников обмена не была возможной с административной точки зрения (разные CRM-системы, владельцы и т.д.), поэтому было принято привести один сервер к стандарту по гринвичу, остальным участникам получать текущее точное время перед обращением.

В результате чего и появилась данная обработка.


Обращение проводится через HTTPСоединение.

Получение ответа с помощью метода объекта HTTPЗапросПолучитьТелоКакСтроку() (т.е. без создание временных файлов).

Надеюсь, обработка будет кому-то полезна. =)

Скачать файлы

Наименование Файл Версия Размер
Точное время.epf 1
.epf 11,83Kb
01.12.15
1
.epf 1 11,83Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Олег (oleg_km) 02.12.15 10:38
Не пойму, какая связь между HTTP и NTP? Только что они реализованы поверх TCP/IP
2. Alexander Shvets (Alexander.Shvets) 02.12.15 12:04
(1) oleg_km, Не совсем понятен вопрос. Связи прямой нет, но HTTP используется также в качестве «транспорта» для других протоколов прикладного уровня.
3. Олег (oleg_km) 15.12.15 10:17
NTP вообще не использует HTTP, это совершенно другой протокол, который к тому же реализован по UDP, а HTTP по TCP https://ru.wikipedia.org/wiki/NTP

То что ты сделал - это просто получение времени с некого веб-сервера, NTP же учитывает еще и время пробега данных от сервера до клиента
4. Alexander Shvets (Alexander.Shvets) 15.12.15 17:25
(3) oleg_km, Да, все именно так.

Возможно название вас ввело в заблуждение... Я не имел ввиду получение времени используя протокол NTP. А точность времени соответствует NTP.

Ресурс, который в примере - использует NTP и точность предоставлена от него до центра получения времени.

В обработке читается время с веб-сервера, по 13 порту (TCP -Daytime Protocol (RFC 867)).
По факту мы получаем время сервера, который уже синхронизирован по времени.

Поскольку пытаться общаться напрямую по NTP из 1с - ущербно. (нет встроенных механизмов) а через Js медленно + специфика интерпретатора в зависимости от ОС дает о себе знать. Но и это возможно.

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