Устанавливает новый часовой пояс информационной базы и сохраняет его в базе данных. Если параметр не задан, то установка часового пояса информационной базы отменяется. В этом случае часовой пояс информационной базы совпадает с часовым поясом сервера.
Синтаксис
УстановитьЧасовойПоясИнформационнойБазы(<ЧасовойПояс>)Полное описание, параметры и ограничения
Глобальный контекст.УстановитьЧасовойПоясИнформационнойБазы (Global context.SetInfoBaseTimeZone)
Глобальный контекст (Global context)
УстановитьЧасовойПоясИнформационнойБазы (SetInfoBaseTimeZone)
Доступен, начиная с версии 8.2.
Синтаксис:
УстановитьЧасовойПоясИнформационнойБазы(<ЧасовойПояс>)
Параметры:
<ЧасовойПояс> (необязательный)
Тип: Строка.
Идентификатор часового пояса.
Список допустимых часовых поясов может быть получен методом ПолучитьДопустимыеЧасовыеПояса.
Кроме того, возможно задание часовых поясов смещением от универсального времени (часовые пояса GMT) в формате:
GMT{+/-}h[h][:mm]
где hh=0:23, mm=0:59.
Описание:
Устанавливает новый часовой пояс информационной базы и сохраняет его в базе данных. Если параметр не задан, то установка часового пояса информационной базы отменяется. В этом случае часовой пояс информационной базы совпадает с часовым поясом сервера.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Требует монопольного режима доступа к базе данных.
См. также:
Глобальный контекст, метод ПолучитьДопустимыеЧасовыеПояса
Глобальный контекст, метод ПолучитьЧасовойПоясИнформационнойБазы
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Пояс своей новой базы: 12:00 UTC → 15:00 и нормальный возврат настройки
Устанавливаем документированное GMT+03:00 только в своей новой пустой базе. Преобразуем дату через реально прочитанный пояс, затем на полностью успешном пути проверяем возврат исходной настройки и снятие собственной блокировки.
Где и как запускать
Новая целиком собственная Windows VM, пустая неразделённая File CF и единственный толстый управляемый клиент 8.5.1.1343. Изменение пояса и монопольного режима предусмотрено только для будущего ручного опыта.
Подготовка
Только НОВАЯ целиком собственная Windows VM, новый профиль и новая пустая файловая база. Не рабочая база и не её копия. Здесь запуск 1С, установка VM и изменение настроек не выполнялись.
Вручную подготовьте новую базу в C:\1c-labs\OwnTimezone85_da3c0fc6-7266-4c26-a595-9035104cd08b\IB. Если каталог или база уже существуют, их не используйте и не очищайте. Строка регистрации File="C:\1c-labs\OwnTimezone85_da3c0fc6-7266-4c26-a595-9035104cd08b\IB";. Метки пути и CF помогают не перепутать стенд, но не доказывают владение базой.
Конфигуратор: Имя=УчебныйЧасовойПояс85, Версия=da3c0fc6-7266-4c26-a595-9035104cd08b, Режим совместимости=Не использовать, Основной режим запуска=Управляемое приложение. Не создавайте разделителей данных, фоновых заданий, обмена или сетевых сервисов.
Общие → Роли: создайте АдминистраторУчебногоЧасовогоПояса85, вручную установите все права, включая право монопольного режима. Администрирование → Пользователи: вручную создайте своего OwnTimezone85Admin, назначьте эту роль и выберите личный пароль вне урока. Код пароль не читает и не задаёт.
Общие → Общие формы: создайте управляемую УчебныйЧасовойПояс85, разместите в рабочей области начальной страницы. Вставьте весь модуль из карточки именно в модуль этой формы.
Команды формы: создайте ПроверитьИВернутьПояс85, назначьте Действие одноимённой процедуре с параметром Команда. Создайте кнопку и задайте ей это ИмяКоманды. Не вызывайте обработчик вручную.
Реквизиты формы: СогласенНаОпыт85 — Булево, исходно Ложь, ручной флажок; Состояние85 — Строка, исходно Не запускалось, поле ТолькоПросмотр=Да. Фаза85 — внутренняя переменная модуля, не редактируемый реквизит.
Закройте Конфигуратор и запустите единственный собственный сеанс толстым управляемым клиентом 8.5.1.1343 под своим администратором. Других писателей и сеансов не должно быть; существующие сеансы код не завершает.
Флажок разрешает весь этот опыт: монопольный режим, изменение пояса и восстановление только на нормальном пути. Ошибка может оставить настройки или блокировку изменёнными; после STOP не повторяйте опыт и не используйте такую лабораторию как рабочую.
&НаКлиенте
Перем Фаза85;
&НаКлиенте
Процедура ПроверитьИВернутьПояс85(Команда)
Попытка
Если Фаза85 <> Неопределено Тогда
ВызватьИсключение "Повтор в этом экземпляре запрещен";
КонецЕсли;
Если ТипЗнч(СогласенНаОпыт85) <> Тип("Булево")
Или СогласенНаОпыт85 <> Истина Тогда
ВызватьИсключение "Сначала подтвердите согласие на опыт";
КонецЕсли;
СогласенНаОпыт85 = Ложь;
Фаза85 = "НЕИЗВЕСТНО";
Состояние85 = "НЕИЗВЕСТНО: исход опыта еще не подтвержден";
#Если ТолстыйКлиентУправляемоеПриложение Тогда
Если СтрокаСоединенияИнформационнойБазы()
<> "File=""C:\1c-labs\OwnTimezone85_da3c0fc6-7266-4c26-a595-9035104cd08b\IB"";" Тогда
ВызватьИсключение "Нужен точно подготовленный собственный новый стенд";
КонецЕсли;
Если ТипЗнч(Команда) <> Тип("КомандаФормы")
Или Команда <> Команды.Найти("ПроверитьИВернутьПояс85") Тогда
ВызватьИсключение "Нужна настоящая команда своей формы";
КонецЕсли;
Доступ85 = РольДоступна("АдминистраторУчебногоЧасовогоПояса85");
Если ТипЗнч(Доступ85) <> Тип("Булево") Или Доступ85 <> Истина Тогда
ВызватьИсключение "Нужна вручную подготовленная собственная роль";
КонецЕсли;
НачальныйМонопольный85 = МонопольныйРежим();
Если ТипЗнч(НачальныйМонопольный85) <> Тип("Булево")
Или НачальныйМонопольный85 <> Ложь Тогда
ВызватьИсключение "Не меняем ранее установленный монопольный режим";
КонецЕсли;
ИсходныйПояс85 = ПолучитьЧасовойПоясИнформационнойБазы();
Если ИсходныйПояс85 <> Неопределено Тогда
Если ТипЗнч(ИсходныйПояс85) <> Тип("Строка")
Или ИсходныйПояс85 = "" Или ИсходныйПояс85 = "GMT+03:00" Тогда
ВызватьИсключение "Нужен неустановленный или другой непустой пояс";
КонецЕсли;
КонецЕсли;
УстановитьМонопольныйРежим(Истина);
МонопольныйПослеУстановки85 = МонопольныйРежим();
Если ТипЗнч(МонопольныйПослеУстановки85) <> Тип("Булево")
Или МонопольныйПослеУстановки85 <> Истина Тогда
ВызватьИсключение "Установка монопольного режима не подтверждена";
КонецЕсли;
ПоясПослеБлокировки85 = ПолучитьЧасовойПоясИнформационнойБазы();
Если ТипЗнч(ПоясПослеБлокировки85) <> ТипЗнч(ИсходныйПояс85)
Или ПоясПослеБлокировки85 <> ИсходныйПояс85 Тогда
ВызватьИсключение "Исходный пояс изменился до опыта";
КонецЕсли;
УстановитьЧасовойПоясИнформационнойБазы("GMT+03:00");
ФактическийПояс85 = ПолучитьЧасовойПоясИнформационнойБазы();
Если ТипЗнч(ФактическийПояс85) <> Тип("Строка")
Или ФактическийПояс85 <> "GMT+03:00" Тогда
ВызватьИсключение "Установленный пояс не подтвержден новым чтением";
КонецЕсли;
УчебноеUTC85 = Дата(2026, 1, 15, 12, 0, 0);
Если ТипЗнч(УчебноеUTC85) <> Тип("Дата") Тогда
ВызватьИсключение "Не получена собственная учебная дата";
КонецЕсли;
УчебноеМестное85 = МестноеВремя(УчебноеUTC85, ФактическийПояс85);
Если ТипЗнч(УчебноеМестное85) <> Тип("Дата")
Или УчебноеМестное85 <> Дата(2026, 1, 15, 15, 0, 0) Тогда
ВызватьИсключение "Преобразование в местное время не подтверждено";
КонецЕсли;
ОбратноUTC85 = УниверсальноеВремя(УчебноеМестное85, ФактическийПояс85);
Если ТипЗнч(ОбратноUTC85) <> Тип("Дата")
Или ОбратноUTC85 <> УчебноеUTC85 Тогда
ВызватьИсключение "Обратное преобразование не подтверждено";
КонецЕсли;
Если ИсходныйПояс85 = Неопределено Тогда
УстановитьЧасовойПоясИнформационнойБазы();
Иначе
УстановитьЧасовойПоясИнформационнойБазы(ИсходныйПояс85);
КонецЕсли;
ВосстановленныйПояс85 = ПолучитьЧасовойПоясИнформационнойБазы();
Если ТипЗнч(ВосстановленныйПояс85) <> ТипЗнч(ИсходныйПояс85)
Или ВосстановленныйПояс85 <> ИсходныйПояс85 Тогда
ВызватьИсключение "Возврат исходного пояса не подтвержден";
КонецЕсли;
УстановитьМонопольныйРежим(Ложь);
МонопольныйПослеВозврата85 = МонопольныйРежим();
Если ТипЗнч(МонопольныйПослеВозврата85) <> Тип("Булево")
Или МонопольныйПослеВозврата85 <> Ложь Тогда
ВызватьИсключение "Снятие собственного монопольного режима не подтверждено";
КонецЕсли;
Фаза85 = "ПОДТВЕРЖДЕНО";
Состояние85 = "Проверено: UTC=" + Строка(УчебноеUTC85)
+ "; местное=" + Строка(УчебноеМестное85)
+ "; обратно UTC=" + Строка(ОбратноUTC85)
+ "; пояс возвращен=" + Строка(ВосстановленныйПояс85 = ИсходныйПояс85)
+ "; монопольный режим=" + Строка(МонопольныйПослеВозврата85);
#Иначе
ВызватьИсключение "Нужен толстый управляемый клиент";
#КонецЕсли
Исключение
Фаза85 = "STOP";
СогласенНаОпыт85 = Ложь;
Состояние85 = "STOP: исход не подтвержден; пояс и блокировка могут остаться измененными. Автоматического восстановления и повторов нет";
КонецПопытки;
КонецПроцедурыРазбор по шагам
Поставьте свой флажок и один раз нажмите ПроверитьИВернутьПояс85. Согласие расходуется, состояние становится НЕИЗВЕСТНО до проверки роли и чтения настроек; версия, метка, File строка и настоящая команда формы должны совпасть.
МонопольныйРежим сначала должен вернуть настоящее Булево Ложь. Ранее установленный режим не трогаем. Исходный пояс читаем как Строка или Неопределено; пустая строка и уже GMT+03:00 останавливают опыт до установки блокировки.
УстановитьМонопольныйРежим(Истина) не возвращает признак успеха. Только новое МонопольныйРежим() с типом Булево и значением Истина подтверждает установку. Неудачная установка вызывает исключение.
После установки режима ещё раз читаем исходный пояс и сравниваем весь тип и значение с сохранённым. Неопределено означает отсутствие явного пояса базы, а не строку UTC или пояс компьютера.
УстановитьЧасовойПоясИнформационнойБазы("GMT+03:00") действительно меняет и сохраняет параметр новой базы. Формат GMT со смещением документирован; здесь не угадываются региональные идентификаторы и не используется сезонный перевод часов.
Новый ПолучитьЧасовойПоясИнформационнойБазы обязан подтвердить фактическую строку GMT+03:00. Именно она, а не присвоенная константа, передаётся в оба преобразования дат.
Дата создаёт собственное 15.01.2026 12:00:00 UTC из шести чисел. МестноеВремя должно вернуть настоящий тип Дата и 15.01.2026 15:00:00. УниверсальноеВремя от этого фактического местного результата должно целиком вернуть исходную дату UTC.
Только после этих успешных проверок возвращаем исходный пояс. Если он был Строкой, передаём именно её; если был Неопределено, вызываем метод установки без параметров. Не передаём Неопределено вместо параметра Строка.
Новое чтение пояса должно совпасть с исходным по типу и всему значению. Затем на нормальном пути снимаем установленный опытом монопольный режим и новым чтением подтверждаем настоящее Булево Ложь.
Только после всех проверок Состояние85 показывает реальные даты, результат сравнения восстановленного пояса и фактический монопольный режим. Обработчик ошибки ничего не восстанавливает и не перечитывает: только STOP без повторов и вывода текста исключения.
Как проверить результат
Без флажка: STOP до чтения и изменения пояса или монопольного режима; Проверено не появляется. Повтор в том же экземпляре запрещён.
Нормальный будущий запуск: в отладчике УчебноеUTC85 и ОбратноUTC85 равны 15.01.2026 12:00:00, УчебноеМестное85 равно 15.01.2026 15:00:00; все три имеют тип Дата. Поле показывает эти фактические результаты, а не собственные ожидаемые константы.
ФактическийПояс85 — настоящая строка нового чтения после установки. Проверка не разрешает подменить её строкой GMT+03:00 или использовать исходный пояс для преобразования.
Если исходно Неопределено, ВосстановленныйПояс85 после нормального завершения снова реально Неопределено. Если исходно другая непустая строка, восстановлен именно её полный тип и текст.
На успешном нормальном пути МонопольныйПослеУстановки85 — Булево Истина, МонопольныйПослеВозврата85 — Булево Ложь. Отсутствие исключения у void методов не считается подтверждением этих результатов.
Повтор кнопки в том же экземпляре, отсутствующее право, уже установленная блокировка или несовпадение результата означают STOP. После ошибки нормальные команды восстановления не выполняются.
Если платформа возвращает иной идентификатор пояса, чем ожидаемая строка, опыт честно останавливается; не подменяйте результат ради успеха. Сохранение после перезапуска и невоспроизведённые ошибки сейчас не проверены.
Отрицательные опыты выполняйте только в ещё одной новой собственной лаборатории. Не подключайте чужие базы, не запускайте второй сеанс рабочей базы, не завершайте сеансы и не вызывайте обработчик вручную.
Ожидаемый результат
Будущий успешный ручной запуск должен показать фактические даты типа Дата 12:00 UTC → 15:00 → 12:00 UTC, восстановить исходный пояс по полному типу и значению и новым чтением подтвердить монопольный режим Ложь. Сейчас запуск в 1С не проверялся.
На что обратить внимание
Будущий код не ограничивается чтением: метод установки сохраняет параметр базы, а монопольный режим меняет состояние своего сеанса. Сейчас никаких таких операций не выполнялось.
Нормальное восстановление — часть успешного пути, не обработка ошибки. После исключения возможен частичный результат; автоматического отката, снятия блокировки, очистки или повторной попытки нет.
Здесь обычная пустая база без разделителей. Native монопольная блокировка относится к области текущего сеанса; урок не обещает изменить или снять блокировки чужих областей и не завершает другие сеансы.
Самостоятельный GMT+03:00 — фиксированное учебное смещение. Это не настройка текущего времени Windows и не утверждение о региональном часовом поясе.
Новое чтение подтверждает текущее состояние API. Оно не является независимым испытанием долговечности после сбоя; проверки CF, пути и роли не гарантируют владение, атомарность или отсутствие всех внутренних эффектов платформы.
STOP этого экземпляра сохраняется. Другой опыт возможен только после явной ручной подготовки новой собственной формы и лаборатории; новое открытие не является автоматическим восстановлением.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.