К статье
Практический материал

Администрирование · 9 мин

Как установить текущие данные в 1С

Как установить текущую дату и период в 1С: в документах, отчётах и коде. Разница между ТекущаяДата и ТекущаяДатаСеанса, настройка часового пояса, типичные ошибки.

Под «текущими данными» в 1С обычно понимают три вещи: текущую дату и время, которые программа подставляет в документы; текущий период в отчётах и журналах; текущие значения реквизитов и настроек сеанса. Проблемы с ними проявляются одинаково: новый документ создаётся «вчерашним» числом, отчёт строится не за тот месяц, проводки уходят в закрытый период.

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

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

Откуда 1С берёт текущую дату и время

Платформа 1С:Предприятие не имеет собственных часов. При файловом режиме работы дата и время берутся с компьютера, на котором открыта база. При клиент-серверном режиме — с сервера 1С, а не с рабочей станции пользователя. Это принципиальный момент: если время «плывёт» у всех пользователей одновременно, проблема на сервере, а если у одного — на его компьютере.

Поверх системного времени накладывается часовой пояс. В клиент-серверной базе действует пояс, заданный в параметрах информационной базы; если он не задан, используется пояс сервера. Для распределённых компаний это частая причина расхождений: филиал в другом регионе видит «чужое» время.

Проверка и установка системного времени

Первый шаг — убедиться, что само системное время корректно. На компьютере с Windows откройте «Параметры → Время и язык → Дата и время», включите автоматическую установку времени и часового пояса, затем нажмите «Синхронизировать». На сервере Linux проверьте время командой timedatectl и при необходимости настройте синхронизацию по NTP.

После исправления системного времени перезапустите сеанс 1С: уже открытое приложение может продолжать работать со старым значением. В клиент-серверном режиме желательно перезапустить и агент сервера 1С, если смещение было значительным.

Порядок действий при неверной дате в 1С
  1. 1
    Проверьте дату, время и часовой пояс в операционной системе компьютера или сервера
  2. 2
    Включите автоматическую синхронизацию времени по сети (NTP)
  3. 3
    Проверьте часовой пояс информационной базы в консоли кластера или в настройках базы
  4. 4
    Перезапустите сеанс 1С и создайте тестовый документ
  5. 5
    Сравните дату нового документа с реальным временем

Как установить текущую дату в документе

По умолчанию новый документ создаётся с текущей датой сеанса — обычно с нулевым временем или с временем создания, в зависимости от настроек конфигурации. Если дата в документе неверна, её можно изменить вручную: поле даты находится в шапке документа и доступно для редактирования, если у пользователя есть права и период не закрыт.

Быстрый способ вернуть актуальную дату — нажать в поле даты кнопку выбора (календарь) и кликнуть «Сегодня», либо ввести дату с клавиатуры в формате ДД.ММ.ГГГГ. Во многих конфигурациях работает и ввод только числа: программа подставит текущие месяц и год.

Если дата документа постоянно «уезжает» назад, проверьте, не включена ли в конфигурации настройка «дата запрета изменения данных» или подстановка даты последнего документа. В типовых конфигурациях дату запрета редактирования смотрят в разделе «Администрирование → Поддержка и обслуживание» (в БСП-based решениях).

Установка текущего периода в отчётах и журналах

В отчётах период задаётся в шапке формы: поле «Период» или пара дат «с … по …». Кнопка выбора периода открывает диалог, где есть готовые варианты — «Сегодня», «Текущий месяц», «Текущий квартал», «Текущий год». Это самый быстрый способ установить актуальные границы без ручного ввода.

В журналах документов период фильтрации обычно задаётся через кнопку «Установить интервал дат» в меню «Ещё». Если журнал выглядит пустым, первым делом проверьте этот фильтр — часто он остался с прошлого сеанса и отсекает свежие документы.

Некоторые конфигурации позволяют сохранять настройки периода для конкретного пользователя. Если отчёт у коллеги открывается «за сегодня», а у вас «за прошлый месяц», сбросьте сохранённые настройки формы: «Ещё → Установить стандартные настройки».

Текущие данные в коде: ТекущаяДата и ТекущаяДатаСеанса

Для разработчиков и тех, кто правит конфигурацию, ключевой момент — выбор функции получения времени. Функция ТекущаяДата() возвращает время того компьютера, где выполняется код: на клиенте — время рабочей станции, на сервере — время сервера. Функция ТекущаяДатаСеанса() всегда возвращает единое время сеанса, согласованное с сервером и часовым поясом базы.

bsl
// Рекомендуемый вариант — единое время сеанса
ДатаДокумента = ТекущаяДатаСеанса();

// Нежелательно на клиенте: время рабочей станции может отличаться
ДатаДокумента = ТекущаяДата();

Практическое правило: во всех серверных процедурах, обработчиках проведения и регламентных заданиях используйте ТекущаяДатаСеанса(). Иначе пользователь со сбитыми часами на компьютере создаст документ «из будущего» или «из прошлого», и это разрушит последовательность проведения. В управляемых формах вызов клиентской ТекущаяДата() для деловых данных — типичная ошибка, которую находят при аудите кода.

Сравнение функций получения даты

ТекущаяДатаСеанса()

Единое время для всех пользователей базы, учитывает часовой пояс ИБ. Рекомендуется для документов, записей регистров, журналирования.

ТекущаяДата()

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

РабочаяДата в настройках

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

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

Если системное время верное, а в документах смещение на целое число часов — проверьте часовой пояс базы. В консоли кластера серверов 1С откройте свойства информационной базы: там есть поле «Часовой пояс». Оставьте его пустым, чтобы использовался пояс сервера, либо задайте явно, например Europe/Moscow, если пользователи работают из разных регионов, а учёт должен вестись по одному времени.

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

Проверка результата и типичные ошибки

После всех настроек выполните контрольную проверку: создайте тестовый документ и сверьте его дату и время с реальными; откройте отчёт за «текущий месяц» и убедитесь, что границы периода правильные; попросите пользователя из другого филиала сделать то же самое — значения должны совпасть.

Контрольные точки

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

Дата нового документа
Норма

Совпадает с реальными датой и временем

Тревожный признак

Смещение на часы или сутки

Время у разных пользователей
Норма

У всех одинаковое

Тревожный признак

У части пользователей другое время — проблема их локальных ПК или пояса

Период отчёта по умолчанию
Норма

Открывается за актуальный период

Тревожный признак

Подставляется старый период — сбросьте настройки формы

Типичные ошибки
01
Использование ТекущаяДата() в клиентском коде — документы получают разное время у разных пользователей
02
Правка системного времени без перезапуска сеанса 1С — программа продолжает работать со старым временем
03
Ручная перебивка даты в проведённых документах прошлого периода — нарушается последовательность и отчётность
04
Игнорирование фильтра периода в журнале — пользователь считает, что документы «пропали», хотя они просто отфильтрованы
Итог

Что важно запомнить

Текущие данные в 1С определяются системным временем компьютера или сервера и часовым поясом базы. Проверяйте время и синхронизацию NTP, настраивайте пояс информационной базы, в коде используйте ТекущаяДатаСеанса(), а в документах и отчётах — кнопки «Сегодня» и выбор текущего периода.

Частые вопросы

Почему новый документ создаётся вчерашней датой?

Чаще всего сбито системное время на компьютере (в файловой базе) или на сервере (в клиент-серверной). Проверьте дату в операционной системе, включите синхронизацию времени и перезапустите сеанс 1С. Реже причина — неверный часовой пояс информационной базы.

Как сделать, чтобы документ всегда открывался с текущей датой?

В типовых конфигурациях новый документ по умолчанию получает текущую дату сеанса. Если этого не происходит, вероятно, в конфигурацию внесена доработка, подставляющая другую дату, — её поведение меняется в модуле объекта документа, в обработчике «ОбработкаЗаполнения».

Чем ТекущаяДатаСеанса лучше ТекущаяДата?

ТекущаяДатаСеанса возвращает единое для всей базы время с учётом часового пояса, тогда как ТекущаяДата зависит от компьютера, где выполняется код. Для учётных данных всегда используйте ТекущаяДатаСеанса — это исключает расхождения между пользователями.

Почему у разных пользователей разное время в документах?

В клиент-серверном режиме такого быть не должно: время задаёт сервер. Если расхождения есть, проверьте, не используется ли в коде клиентская ТекущаяДата(), и не работает ли часть пользователей в другой базе или с другим часовым поясом сеанса.

Можно ли вручную задать «текущую дату» для всей базы?

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

Отчёт открывается за прошлый месяц, хотя нужен текущий. Что делать?

Откройте настройки отчёта и в поле периода выберите «Текущий месяц», затем сохраните вариант отчёта. Если период снова «слетает», сбросьте сохранённые настройки формы через «Ещё → Установить стандартные настройки».