Всем доброго времени суток. Версия 7.11
При создании бизнес-процесса в поле даты можно проставить "Текущее значение даты и времени" (см. скриншот).
Вопрос - откуда берутся значения (предполагаю, что время сервера), и можно ли как-то получить значение серверного времени на клиентской части в схемах? Наподобие получения данных текущего контакта.
Не хотелось бы использовать new Date() для некоторых задач - т.к. в этом случае значение времени берётся с компьютера пользователя, где оно может быть указано неверно.
Нравится
я так полагаю это DateTime.Now (или UtcNow. Тут я не уверен. Процентов на 80 - просто Now. Соответственно устанавливается часовой пояс сервера); В базу переносится всё в Utc. На клиенте берётся время конкретной машины.
Для того чтобы вытащить серверное время скорее всего придётся пилить маленький сервис(если это уже не сделано).
PS. тру-стори: когда только знакомился с платформой нашли с клиентом баг. Суть такая — на пк отставали часы и при сохранении записи createdOn было 15.00 (время сервера), потом запись тут же правилась и пересохранялась. ModifiedOn - 14.59(время клиента). Полезли разбираться во взаимосвязях: Время пк/Часовой пояс пк <-> Настройка часового пояса в террасофте <-> время сервера/часовой пояс сервера <-> время базы . Вся эпопея кончилась тем, что саппорт выдал фикс и исправил конфигурацию, но с того времени у нас поговорка:
"Если что-то не работает:
1) проблема в вас
2) проблема со временем
3) проблема в террасофте
4) см. п 1."
И да... лучше не ввязываться в эту помойку со временем)) Я и сейчас не уверен на 100% как там что берётся.
Здравствуйте!
При заполнении по процессу берется время с учетом часового пояса пользователя, от имени которого запущен процесс. Если пояс не указан, берется значение из системной настройки Часовой пояс по умолчанию.
Если нужно получить в процессе серверное время, Вы можете воспользоваться Datetime.UtcNow.
Как писал Данила, для получения серверного времени на клиенте можно написать свой веб сервис и вызвать в клиентском модуле, подробнее в статье.