Работа с информационной базой в различных часовых поясах

Формат идентификатора часовых поясов
Часовой пояс информационной базы
Часовой пояс сеанса
Текущая дата сеанса
Оперативная отметка времени

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

Система 1С:Предприятие позволяет осуществлять синхронизацию поясного или директивного времени. Для этого в каждом узле распределенной базы временная привязка данных выполняется к текущей дате сеанса, а сам узел описывается значением часового пояса сеанса. А с помощью средств встроенного языка механизмы конфигурации могут осуществить вычисление времени относительно центрального или любого иного узла базы, в том числе с учетом летнего времени.

Введено понятие часового пояса информационной базы, часового пояса сеанса и времени сеанса.

Часовые пояса определяются и идентифицируются в соответствии с перечнем часовых поясов (zoneinfo database), известным как Olson database. Большинство идентификаторов часовых поясов задаются как <регион>/<город>, например, Europe/Moscow. Подробности на http://www.twinsun.com/tz/tz-link.htm.

Идентификаторы часовых поясов GMT могут быть заданы в формате:

GMT{+/-}h[h][:mm]
где hh=0:23, mm=0:59.

Часовой пояс информационной базы:

  • после создания информационной базы не определен;
  • может быть установлен из встроенного языка;
  • сохраняется в базе данных и при выгрузке информационной базы;
  • доступен из встроенного языка на сервере, толстом клиенте, во внешнем соединении;
  • используется при начале сеанса для определения часового пояса сеанса;
  • переносится в новую базу при создании начального образа информационной базы распределенной информационной базы.


Часовой пояс сеанса:

  • при начале сеанса равен часовому поясу информационной базы, если часовой пояс информационной базы определен, или часовому поясу сервера, если часовой пояс информационной базы не определен;
  • может быть установлен из встроенного языка;
  • сохраняется до конца сеанса;
  • доступен из встроенного языка на сервере, в толстом клиенте, во внешнем соединении;
  • используется для определения текущей даты сеанса и оперативной отметки времени.


Текущая дата сеанса:

  • равна дате компьютера, приведенной к часовому поясу сеанса;
  • доступна из встроенного языка на сервере, в толстом клиенте, во внешнем соединении;
  • используется при работе с документами, бизнес-процессами, задачами, периодическими регистрами сведений для присвоения даты по умолчанию и проверки текущей даты.


Оперативная отметка времени:

  • формируется на основе текущей даты сеанса;
  • возрастающая последовательность дат отдельно для каждого часового пояса сеансов данной информационной базы.

 

Некоторые алгоритмы работы с часовыми поясами встроены в механизмы системы на уровне платформы. Так при исполнении отчета и работе динамического списка стандартные периоды и стандартные даты начала отсчитываются относительно текущей даты сеанса, при получении текущих дат от стандартного периода и стандартной даты начала на толстом клиенте, сервере и внешнем соединении, даты получаются относительно текущей даты сеанса.

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

Часовой пояс сервера передается в клиентскую часть управляемой формы при создании формы, при условии, что для формы задано условное оформление, и после контекстного вызова, при условии, что в процессе этого вызова условное оформление формы было изменено.

1C:Enterprise Developer's Community