![]() |
#1 |
Участник
|
![]()
Добрый день, коллеги!
Есть некая периодическая операция, которая в своей работе ориентируется на время создания документа. Существует следующая проблема: Если эта операция запускается не в режиме пакета, то всё работает нормально. Если же её запустить в режиме пакета, то она отрабатывает с ошибкой: " Значение, которое вы пытаетесь добавить или вычесть, создает недопустимое utcdatetime." X++: public void run() { InventParameters inventParameters = InventParameters::find(); utcdatetime curDateTime; utcdatetime dateTimeForProc; utcdatetime yesterdayDateTime; ; curDateTime = DateTimeUtil::applyTimeZoneOffset(DateTimeUtil::getSystemDateTime(), DateTimeUtil::getUserPreferredTimeZone()); if (DateTimeUtil::time(curDateTime) > fromTime && DateTimeUtil::time(curDateTime) < toTime) { dateTimeForProc = DateTimeUtil::addHours(DateTimeUtil::getSystemDateTime(),-inventParameters.InventTransfertReturnHours_MRC); yesterdayDateTime = DateTimeUtil::addHours(DateTimeUtil::getSystemDateTime(),-24); } } Ax 2009, Kernel version 5.0.1500.6491 Последний раз редактировалось Zlojbarsuk; 02.09.2014 в 16:43. |
|
![]() |
#2 |
Участник
|
А зачем вы применяете тайм-зону пользователя?
__________________
Ivanhoe as is.. |
|
![]() |
#3 |
Участник
|
DateTimeUtil::getSystemDateTime() возвращает время по Гринвичу. А мне необходимо время текущего часового пояса. Поэтому я выполняю преобразование.
|
|
![]() |
#4 |
Участник
|
Из текста ошибки можно предположить, что метод DateTimeUtil::addHours() пытается вернуть значение которое не попадает в диапазон от 1900-01-01T00:00:00 до 2154-12-31T23:59:59. Проверьте системное время на пакетном сервере. Какое значение возвращает метод DateTimeUtil::getSystemDateTime(), если он вызывается на пакетном сервере?
Последний раз редактировалось honest; 02.09.2014 в 18:34. |
|
![]() |
#5 |
Участник
|
В переменных и полях таблиц храните время UTC 0. На формах и в отчетах автоматически отображается время с учетом часового пояса пользователя.
|
|
![]() |
#6 |
Участник
|
Да, я знаю, что на формах и в таблицах время "разное" :-) Проблема не в этом, а в том, что периодическая операция по разному работает в режиме пакета и обычного запуска.
|
|
|
|