Правильно ли работает TimeTradeServer()? - страница 2

 
Aleksander Gladkov #:

Сейчас при старте терминала имеем равенство TimeTradeServer() ==TimeGMT()


Это никуда не годится!

Предлагаю простое решение:

Если терминал запущен первый раз, то ищется значение разницы TimeCurrent()-TimeLocal(), если есть доступ к серверу, вписывается в настройку TimeTradeServer();

Терминал при его закрытии запоминает в своих текущих настройках значение разницы TimeCurrent()-TimeLocal(), если есть доступ к серверу;

При следующем запуске использует при открытии эту разницу для установки времени TimeTradeServer() и проверяется не изменилась ли разница;

Тогда только самый первый запуск терминала будет иметь не правильное значение TimeTradeServer().

Все последующие уже будут в порядке.

1) терминал может подключаться в разным DC без перезагрузки терминала (юзер в меню ткнул "подключиться к счёту")

2) DC может переехать из одной тайм-зоны в другую никого не предупреждая. (по хорошему - предупреждают, но физически может) Связь оборвалась/восстановилась и хоба-на, у сервера другое GMT, а даже советник не рестартовал и вообще ничего не увидел