Администрирование · 9 мин
Как проверить время в 1С
Как проверить время в 1С: текущая дата сеанса, время сервера и клиента, смещение часового пояса, типовые команды и способы диагностики расхождений.
Вопрос «как проверить время в 1С» возникает в нескольких ситуациях: документы проводятся «не той» датой, отчёты строятся за неверный период, регламентные задания запускаются не вовремя, а пользователи в разных часовых поясах видят разное время одного и того же события. Причина почти всегда кроется в одном из трёх источников времени: сервер 1С, сервер СУБД или клиентский компьютер.
В клиент-серверном режиме дата и время документов, записей регистров и служебных отметок берутся преимущественно с сервера 1С, а тот, в свою очередь, может опираться на время СУБД. В файловом режиме используется время компьютера, на котором открыта база. Поэтому проверку нужно начинать с понимания архитектуры конкретной базы.
Ниже разобраны практические способы: как посмотреть текущую дату сеанса, как сравнить время клиента и сервера, как проверить часовой пояс информационной базы и что делать при расхождениях.
Откуда 1С берёт дату и время
Платформа 1С:Предприятие работает с несколькими «часами» одновременно, и их нельзя смешивать. В файловом варианте базы источником времени служит операционная система того компьютера, где запущен сеанс. Если на машине сбиты часы или неверно выставлен часовой пояс — все документы получат ошибочные отметки времени.
В клиент-серверном варианте ключевую роль играет сервер 1С:Предприятия. Именно его системное время обычно фиксируется при записи объектов. Однако часть операций — например, запросы с функциями даты на стороне СУБД — использует время сервера баз данных. Если время на сервере 1С и на сервере СУБД различается, возможны странные эффекты: проведённый документ «уезжает» в прошлое или будущее на несколько минут или часов.
Отдельная сущность — часовой пояс информационной базы. Он задаётся в параметрах базы и влияет на то, как платформа интерпретирует и отображает даты для пользователей. Пользователи из других регионов могут дополнительно видеть время в своём локальном поясе.
Быстрая проверка времени без программирования
Самый простой способ — открыть в клиентском приложении окно «О программе» (меню «Справка» → «О программе» или пиктограмма с буквой «i» в зависимости от интерфейса). Там отображаются сведения о сеансе, версии платформы и режиме работы. В ряде конфигураций также доступна служебная информация о текущей дате сеанса.
Во многих типовых конфигурациях текущая дата сеанса выводится в разделе администрирования или в регистрационной информации. Кроме того, можно просто создать черновик документа: платформа подставит в поле даты текущую дату сеанса, и её можно сравнить с реальным временем.
Если есть доступ к журналу регистрации, откройте его и посмотрите отметки времени свежих событий. Сравнение времени события с фактическим моментом просмотра покажет, насколько часы базы отстают или спешат.
- 1Откройте базу в режиме 1С:Предприятие и зайдите в «О программе» — зафиксируйте режим работы (файловый или клиент-серверный).
- 2Создайте черновик любого документа и посмотрите автоматически подставленную дату.
- 3Откройте журнал регистрации и сравните время последнего события с реальным временем.
- 4Сверьте результат с системным временем компьютера и, при клиент-серверном режиме, со временем сервера.
Проверка времени через встроенный язык
Для точной диагностики удобнее выполнить небольшой фрагмент кода — через внешнюю обработку, консоль кода или команду «Выполнить» в конфигураторе (если есть права). Функция ТекущаяДатаСеанса() возвращает дату и время, которые платформа использует для текущего сеанса.
Для сравнения с серверным временем полезно вычислить разницу между значением на клиенте и на сервере. Если вызвать получение даты в клиентском и серверном контексте одной обработкой, расхождение в секундах покажет рассинхронизацию часов.
Сообщить("Дата сеанса: " + ТекущаяДатаСеанса());
Сообщить("Часовой пояс сеанса: " + ЧасовойПоясСеанса());
Сообщить("Смещение, сек: " + (ТекущаяУниверсальнаяДата() - ТекущаяУниверсальнаяДатаВМиллисекундах()/1000));Обратите внимание на функцию ТекущаяУниверсальнаяДата() — она возвращает время в UTC без учёта пояса. Сравнение универсальной даты с датой сеанса позволяет вычислить фактическое смещение часового пояса и проверить, корректно ли оно настроено.
Проверка часового пояса информационной базы
Часовой пояс базы задаётся в её свойствах: в консоли кластера серверов 1С (для клиент-серверного режима) или при публикации/настройке базы. Если пояс не задан, платформа использует пояс сервера, что для распределённых команд даёт непредсказуемые результаты.
Проверить пояс сеанса можно программно — функцией ЧасовойПоясСеанса(). Она вернёт строку вида «Europe/Moscow» или пустое значение, если пояс не установлен явно. Получить пояс самой информационной базы можно методом ПолучитьЧасовойПоясИнформационнойБазы().
Типичный признак проблемы с поясом: пользователи в разных городах видят одно и то же событие с разницей в часы, либо регламентные задания срабатывают раньше или позже расписания. В таких случаях нужно выровнять пояс базы, пояс сервера ОС и настройки сеансов пользователей.
Диагностика расхождений между сервером, СУБД и клиентом
Если время в документах систематически отличается от реального, проверяйте источники по цепочке. Сначала — системное время и пояс на сервере 1С:Предприятия (команды date и timedatectl в Linux, настройки даты и времени в Windows). Затем — время на сервере СУБД: для MS SQL это GETDATE(), для PostgreSQL — now().
После этого сверьте часы клиентских компьютеров. В файловом режиме именно клиентское время определяет даты, поэтому на всех рабочих местах должна быть включена синхронизация времени по сети (NTP). Расхождение даже в несколько минут приводит к нарушению последовательности документов и конфликтам при обмене данными.
Как проверить результат
Совпадает с реальным временем с точностью до минуты
Отличается на часы или сутки — проверяйте пояс и часы сервера
Свежие события идут с актуальными отметками
События записываются «в прошлое» или «в будущее»
Разница не более нескольких секунд
Заметный разбег — рассинхронизация часов или неверный пояс
Типичные ошибки и риски
Частая ошибка — ручная переводка часов на сервере «для исправления» дат документов. Это ломает последовательность проведения, обмены данными и может привести к рассогласованию с внешними системами (ЭДО, банк-клиенты, кассы). Корректный путь — настроить синхронизацию времени через NTP и исправить часовой пояс, а не двигать часы вручную.
Вторая ошибка — правка дат документов задним числом без анализа последствий. Документы участвуют в последовательностях, расчётах себестоимости и взаиморасчётов; изменение даты может потребовать перепроведения целого периода. Перед такими действиями делайте резервную копию и проверяйте результат на копии базы.
Частые вопросы
Почему документ создаётся с завтрашней или вчерашней датой?
Чаще всего неверно настроен часовой пояс информационной базы или сеанса, либо сбиты часы на сервере (в клиент-серверном режиме) или на компьютере пользователя (в файловом). Проверьте ТекущаяДатаСеанса() и сравните с реальным временем.
Как узнать, файловая база или клиент-серверная?
Откройте «О программе» или посмотрите строку подключения в списке баз стартера: файловая указывает на каталог, клиент-серверная — на сервер и имя базы. Это определяет, чьё время используется.
Можно ли задать пользователю свой часовой пояс?
Да, платформа поддерживает установку часового пояса сеанса — программно или через параметры. Это полезно для сотрудников в других регионах, но требует согласованной настройки, чтобы не ломать отчётность.
Чем ТекущаяДата() отличается от ТекущаяДатаСеанса()?
ТекущаяДата() в клиентском контексте возвращает время клиентского компьютера, а ТекущаяДатаСеанса() — единое время сеанса с учётом сервера и пояса. Для документов и логики корректнее использовать дату сеанса.
Регламентные задания запускаются не по расписанию — в чём причина?
Проверьте часовой пояс, в котором интерпретируется расписание, и время сервера, исполняющего задания. Расписание задаётся относительно пояса, и при его смене момент запуска смещается.
Нужно ли перезагружать сервер после смены часового пояса?
Сам пояс базы применяется без перезагрузки оборудования, но сеансы могут потребовать переподключения, а службу сервера 1С после изменения системного пояса ОС обычно перезапускают. Действия выполняйте вне рабочего времени пользователей.
Что важно запомнить
Время в 1С определяется режимом работы базы: в файловом — часами компьютера, в клиент-серверном — временем сервера и настройками пояса. Проверяйте дату сеанса, часовой пояс и синхронизацию NTP, а любые правки времени и дат выполняйте только после резервного копирования.