Вопрос

Системные дата и время

Всем доброго времени суток. Версия 7.11

При создании бизнес-процесса в поле даты можно проставить "Текущее значение даты и времени" (см. скриншот).

Изображение удалено.

Вопрос - откуда берутся значения (предполагаю, что время сервера), и можно ли как-то получить значение серверного времени на клиентской части в схемах? Наподобие получения данных текущего контакта.

Не хотелось бы использовать new Date() для некоторых задач - т.к. в этом случае значение времени берётся с компьютера пользователя, где оно может быть указано неверно.

Нравится

2 комментария

я так полагаю это DateTime.Now (или UtcNow. Тут я не уверен. Процентов на 80 - просто Now. Соответственно устанавливается часовой пояс сервера); В базу переносится всё в Utc. На клиенте берётся время конкретной машины.

Для того чтобы вытащить серверное время скорее всего придётся пилить маленький сервис(если это уже не сделано).



PS. тру-стори: когда только знакомился с платформой нашли с клиентом баг. Суть такая — на пк отставали часы и при сохранении записи createdOn было 15.00 (время сервера), потом запись тут же правилась и пересохранялась. ModifiedOn - 14.59(время клиента). Полезли разбираться во взаимосвязях: Время пк/Часовой пояс пк <-> Настройка часового пояса в террасофте <-> время сервера/часовой пояс сервера <-> время базы . Вся эпопея кончилась тем, что саппорт выдал фикс и исправил конфигурацию, но с того времени у нас поговорка:

"Если что-то не работает:

1) проблема в вас

2) проблема со временем

3) проблема в террасофте

4) см. п 1."



И да... лучше не ввязываться в эту помойку со временем)) Я и сейчас не уверен на 100% как там что берётся.

Здравствуйте!

При заполнении по процессу берется время с учетом часового пояса пользователя, от имени которого запущен процесс. Если пояс не указан, берется значение из системной настройки Часовой пояс по умолчанию.

Если нужно получить в процессе серверное время, Вы можете воспользоваться Datetime.UtcNow.

Как писал Данила, для получения серверного времени на клиенте можно написать свой веб сервис и вызвать в клиентском модуле, подробнее в статье.

Показать все комментарии