Глобальный контекст.УниверсальноеВремя

Методы · ToUniversalTime

Преобразует местное время в заданном часовом поясе в универсальное время.

Синтаксис

УниверсальноеВремя(<МестноеВремя>, <ЧасовойПояс>)
Полное описание, параметры и ограничения

Глобальный контекст.УниверсальноеВремя (Global context.ToUniversalTime)

Глобальный контекст (Global context)

УниверсальноеВремя (ToUniversalTime)

Доступен, начиная с версии 8.2.

Синтаксис:
УниверсальноеВремя(<МестноеВремя>, <ЧасовойПояс>)
Параметры:

<МестноеВремя> (обязательный)
Тип: Дата.
Локальное время.

<ЧасовойПояс> (необязательный)
Тип: Строка, Неопределено.
Может быть задан только в коде, исполняемом на сервере, режиме запуска "Толстый клиент" и во внешнем соединении.
Идентификатор часового пояса, к которому относится местное время. Если не задан (Неопределено), то часовой пояс компьютера.
Список допустимых часовых поясов может быть получен методом ПолучитьДопустимыеЧасовыеПояса.
Кроме того, возможно задание часовых поясов смещением от универсального времени (часовые пояса GMT) в формате:
GMT{+/-}h[h][:mm]
где hh=0:23, mm=0:59.
Значение по умолчанию: Неопределено.
Возвращаемое значение:
Тип: Дата.
Универсальное время, соответствующее указанному локализованному.
Описание:

Преобразует местное время в заданном часовом поясе в универсальное время.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

См. также:
Глобальный контекст, метод ПолучитьДопустимыеЧасовыеПояса
Глобальный контекст, метод ТекущаяУниверсальнаяДата

Использование в версии:

Доступен, начиная с версии 8.2.

Описание изменено в версии 8.3.18.

Методическая информация

Практические примеры

Перевести учебный момент UTC в фиксированный пояс и обратно

Явно задаём GMT+3, чтобы результат не зависел от часового пояса компьютера или сеанса.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используется фиксированная дата, а не ТекущаяДата: результаты можно сравнить независимо от дня запуска.

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

  3. Выполняйте на сервере: явный аргумент часового пояса поддерживается в указанном контексте.

  4. Значение МоментUTC уже известно как UTC по учебному контракту. Дата не прикрепляет к нему метку UTC автоматически.


МоментUTC = Дата(2026, 9, 15, 9, 0, 0);
МестныйМомент = МестноеВремя(МоментUTC, "GMT+3");
ВосстановленныйUTC = УниверсальноеВремя(МестныйМомент, "GMT+3");
Сообщить(Формат(МоментUTC, "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(Формат(МестныйМомент, "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(ВосстановленныйUTC = МоментUTC);
Сообщить("Пояс компьютера: " + ЧасовойПояс());
Сообщить("Пояс сеанса: " + ЧасовойПоясСеанса());

Разбор по шагам

  1. Не передаём локальную дату как будто она уже UTC: роль исходного значения задаётся контрактом.

  2. МестноеВремя преобразует UTC в явно выбранный фиксированный пояс.

  3. УниверсальноеВремя получает местную дату того же пояса и возвращает UTC.

  4. Читаем текущие настройки для диагностики, но не используем их вместо явно согласованного GMT+3 и не меняем сеанс.

Как проверить результат

  1. Из 2026-09-15 09:00:00 UTC получаем местное 2026-09-15 12:00:00.

  2. Обратное сравнение даёт Истина независимо от текущего часового пояса машины.

  3. Замените фиксированный пояс в обеих функциях на GMT+0: местное представление совпадёт с исходным UTC.

Ожидаемый результат

Учебный момент преобразован туда и обратно с явно согласованным смещением.

На что обратить внимание

  1. GMT+3 — фиксированное смещение, а не исторические правила переходов конкретного региона.

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

  3. Формат без Z или смещения сам по себе не сообщает получателю часовой пояс.

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

Не считать неустановленный часовой пояс базы автоматически UTC

Настройку базы только читаем. Отдельную учебную дату UTC переводим в явно заданный GMT+3 и обратно, не изменяя настройки базы или сеанса.

Где и как запускать

Полный серверный общий модуль учебной копии базы. Чтение встроенного API, не администрирование RAS/COM.

Подготовка

  1. Только отдельная учебная копия базы. Создайте серверный общий модуль УчебныеЗадачи; вставьте полный модуль выбранного урока и вызовите ВыполнитьПример() из серверной учебной команды.

  2. Это встроенный API 1С, не COM/RAS. Соединение с агентом кластера, логин администратора и регистрация COM не нужны. Тонкий клиент вызывает серверную команду, не выполняет эти функции напрямую.

  3. Для списков сеансов/соединений по локальной справке нужно право АктивныеПользователи. Если его нет, пример останавливается с пояснением; права и привилегированный режим код не меняет.

  4. Проверки только читают данные. Они не завершают сеансы, не отключают соединения, не меняют часовые пояса и не выводят IP, имя компьютера или имя пользователя в журнал.

Процедура ВыполнитьПример() Экспорт
    ПоясБазы = ПолучитьЧасовойПоясИнформационнойБазы();
    Если ПоясБазы = Неопределено Тогда
        Сообщить("Пояс базы явно не задан; Неопределено не подменяем строкой UTC");
    Иначе
        Сообщить("Идентификатор пояса базы: " + ПоясБазы);
    КонецЕсли;
    УчебноеUTC = Дата(2026, 1, 15, 12, 0, 0);
    УчебноеМестное = МестноеВремя(УчебноеUTC, "GMT+3");
    ОбратноUTC = УниверсальноеВремя(УчебноеМестное, "GMT+3");
    Сообщить(УчебноеМестное = Дата(2026, 1, 15, 15, 0, 0));
    Сообщить(ОбратноUTC = УчебноеUTC);
    Сообщить(ПолучитьЧасовойПоясИнформационнойБазы() = ПоясБазы);
КонецПроцедуры

Разбор по шагам

  1. Функция возвращает Строка или Неопределено, если настройка не задана. Оба случая обрабатываются, setter не вызывается.

  2. УчебноеUTC — заранее оговорённая дата UTC, не произвольное время начала чужого сеанса.

  3. GMT+3 — явное фиксированное смещение, допустимый формат по локальной справке. Здесь нет сезонного перевода часов.

  4. МестноеВремя выполняет перевод, УниверсальноеВремя обратный. Последнее чтение проверяет неизменность настройки базы в обычном учебном запуске.

Как проверить результат

  1. Три Истина: 12:00 UTC → 15:00 GMT+3 → 12:00 UTC, настройка базы не менялась.

  2. Первое сообщение может быть не задан или идентификатор — оба состояния допустимы.

Ожидаемый результат

Фиксированное преобразование времени отделено от отсутствующей настройки базы.

На что обратить внимание

  1. Не применяйте фиксированное GMT+3 к региону с сезонным временем без анализа его идентификатора.

  2. При параллельном изменении настройки администратором последняя проверка может стать Ложь: урок не блокирует администратора.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.