Записать дату в бпм при Odata запросе

Добрый день, Коллеги!

У нас 1с через Odata передает данные о заказе, включая поле Дата (Date)

На сервере часовой пояс киевский, у супервизора тоже киевский, в bpm в системной настройке киевский.

1-ка забирает дату и нормально себе записывает, но когда передает обратно заказ при изменении, дата записывается в бпм и пользователь видит дату + 3 часа сверху.

Знаю, что время в bpm хранится в UTC и когда из 1с приходит дата она записывается в это поле и пользователь видет + 3 часа.

Например создал заказ в бпм. Дата 9 утра. (если sql запрос сделать в базу) там 6 утра. Все ок, пользователь видит 9. Ушло в 1с, там заказ провели и возвращают в бпм. Уходит из 1с тоже 9 утра. Пришел в бпм, смотрим запросом в базу, там стало 9 утра, а пользователь видит 12 часов уже, т.е + 3 часа.

Как правильно передать запрос. Пробовали так:

{

    "AccountId": "590eb789-2b6d-4257-838f-917003ffce43",

    "CHOurCompanyId": "3d5d64dd-450f-4d70-a722-ee95caa2a5b3",

    "StatusId": "40de86ee-274d-4098-9b92-9ebdcf83d4fc",

    "CHVATTop": "false",

    "Date": "2019-06-04T12:05:12+TZ",

    "Number": "УТХ00013754",

    "Amount": "391",

    "OpId1C": "41d319dd-86a4-11e9-8102-e36315b16de3"

выдает ошибку - Cannot convert a primitive value to the expected type 'Edm.DateTime'. See the inner exception for more details.



Подскажите, как правильно сделать, может код на поле навешать в бпм

Нравится

5 комментариев

«+TZ» — это не прямо так нужно писать, а указать нужный пояс. Например,«2018-01-31T08:24:49+03:00». Подробнее по работе с датой см. в этой теме.

Ок, сделали так зашло правильно, а когда мы на зимнее время перейдем, время будет правильно по прежнему?

Википедия гласит:

Следует помнить, что время по UTC не переводится ни зимой, ни летом. Поэтому для тех мест, где есть переход на летнее время, меняется смещение относительно UTC.

Зверев Александр,

т.е в запрос при переходе на зимнее надо менять с +03:00 на +02:00?

если да, то как можно настроить передачу черед одата, чтобы время автоматически всегда правильно отображалось?

Можно на стороне 1С перед передачей даты вычислять текущее значение смещения.

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