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

Быстрый старт · 11 мин

Как ввести время в 1С: способы, форматы и настройки

Как ввести время в 1С: ввод в поле формы, установка времени в документах, форматы времени, программное задание даты и времени, типичные ошибки и проверка результата.

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

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

Ниже разобраны основные способы: ручной ввод в поле формы, работа с временем документов, настройка формата отображения, программный ввод через встроенный язык, а также типичные ошибки, из-за которых время «сбрасывается» или вводится некорректно.

Как 1С хранит дату и время

В платформе 1С нет отдельного типа «время» для реквизитов документов и справочников. Используется тип «Дата», у которого есть состав: «Дата», «Время» или «Дата и время». Если разработчик конфигурации при создании реквизита выбрал состав «Дата», поле будет принимать и отображать только календарную дату, а временная часть всегда будет равна 00:00:00.

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

Отдельный случай — реквизит «Дата» самого документа. Он всегда содержит дату и время, потому что время определяет положение документа в последовательности проведения. По умолчанию 1С подставляет в новый документ текущую дату и текущее время сеанса.

Ручной ввод времени в поле формы

Если поле поддерживает время, ввод выполняется прямо с клавиатуры. Установите курсор в поле и наберите дату и время через пробел, например: 15.04.2026 09:45. Секунды можно опустить — платформа подставит нули. Допустимы и сокращённые формы: если ввести только время 14:30 в пустое поле с составом «Дата и время», 1С подставит текущую дату с указанным временем.

Второй способ — кнопка выбора справа от поля. Она открывает календарь, а под ним (или рядом) — поле времени, где часы и минуты задаются стрелками или вводом с клавиатуры. После нажатия «ОК» значение попадёт в поле целиком.

Удобные клавиши для правки: когда курсор стоит в поле даты, клавиши «+» и «−» сдвигают дату на день, а переход между датой и временем выполняется клавишей Tab или щелчком мыши по нужной части значения.

Порядок ввода времени в поле
  1. 1
    Щёлкните в поле даты, чтобы в нём появился курсор
  2. 2
    Введите дату в формате ДД.ММ.ГГГГ, затем пробел и время ЧЧ:ММ
  3. 3
    Если нужны секунды, добавьте их через двоеточие: ЧЧ:ММ:СС
  4. 4
    Нажмите Enter или Tab, чтобы платформа приняла и отформатировала значение
  5. 5
    Проверьте, что в поле отображается введённое время, а не 00:00:00

Как изменить время документа

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

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

В журнале документов время отображается в отдельной колонке рядом с датой. Если колонки со временем не видно, её можно вывести через настройку списка («Ещё» → «Изменить форму» или настройка списка, в зависимости от конфигурации).

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

В кадровых конфигурациях (1С:ЗУП и аналогах) время часто вводится не как дата, а как длительность: часы работы, часы отсутствия, ночные часы. Такие поля принимают число часов — например, «8» или «7,5», а не значение вида «14:00». Путать эти форматы — частая причина ошибок: пользователь вводит «8:00», ожидая восемь часов, а программа трактует значение иначе или отклоняет ввод.

В производственных и торговых решениях встречаются поля «время начала» и «время окончания» события. Они могут иметь состав даты «Время» — тогда вводится только ЧЧ:ММ без даты, и календарь при выборе не открывается. Проверьте подсказку в поле или поведение при вводе: если дата «не прилипает» к значению, перед вами чистое время.

В отчётах и настройках расписаний (например, расписание регламентных заданий) время задаётся отдельными полями «часы», «минуты», «секунды» или строкой по шаблону. Там действуют собственные правила, описанные в справке конкретной формы — её можно открыть клавишей F1.

Программный ввод времени на встроенном языке

Разработчику время задаётся функциями работы с датами. Конструктор даты выглядит так: Дата(2026, 4, 15, 14, 30, 0) — год, месяц, день, часы, минуты, секунды. Текущие дата и время сеанса возвращает функция ТекущаяДатаСеанса(), которую рекомендуется использовать вместо ТекущаяДата(), чтобы избежать расхождений из-за настроек компьютера пользователя.

Чтобы изменить только временную часть существующей даты, комбинируйте функции: взять начало дня через НачалоДня(ДатаДокумента) и прибавить нужное число секунд. Например, НовоеВремя = НачалоДня(ДатаДокумента) + 9 3600 + 30 60; установит время 09:30:00.

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

bsl
НоваяДата = Дата(2026, 4, 15, 14, 30, 0); // 15.04.2026 14:30:00
ВремяДевятьУтра = НачалоДня(ТекущаяДатаСеанса()) + 9 * 3600;

Формат отображения и региональные настройки

Если время введено, но не отображается, причина часто в формате поля. Формат задаётся в свойствах элемента формы или программно через функцию Формат() с параметром вида ДФ="dd.MM.yyyy HH:mm:ss". Если в шаблоне нет компонентов времени (HH, mm, ss), поле покажет только дату, хотя значение внутри содержит время.

На ввод с клавиатуры влияют региональные настройки сеанса: разделитель даты (точка или слэш) и разделитель времени (двоеточие). В русской локали стандарт — ДД.ММ.ГГГГ и ЧЧ:ММ:СС. Если база используется с другой локалью, проверяйте, в каком порядке поле ожидает день и месяц, иначе время может оказаться привязано не к той дате.

СитуацияЧто вводитьОграничение
Поле с датой и временем15.04.2026 14:30Секунды необязательны
Поле только с датой15.04.2026Время ввести нельзя, всегда 00:00:00
Поле «время» (ЧЧ:ММ)14:30Дата не вводится и не хранится
Длительность в часах (табель)8 или 7,5Это количество часов, не время суток

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

После ввода убедитесь, что значение принято именно в том виде, который вы задали. Самый надёжный признак — поле показывает время, отличное от 00:00:00, а документ после записи занимает ожидаемое место в журнале по времени. Если после ввода время обнулилось, поле имеет состав «Дата», и временная часть в нём не сохраняется.

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

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

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

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

Отображение в поле после ввода
Норма

Поле показывает введённое время, например 15.04.2026 14:30:00

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

Время обнулилось до 00:00:00 — поле не хранит время

Положение документа в журнале
Норма

Документ стоит в списке согласно заданному времени

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

Документ «перепрыгнул» на другое место после записи

Проведение документа
Норма

Документ проводится без сообщений о запрете редактирования

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

Сообщение о закрытом периоде или запрете изменения даты

Итог

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

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

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

Почему я ввожу время, а оно сбрасывается на 00:00:00?

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

Можно ли ввести только время без даты?

Да, если реквизит имеет состав даты «Время» — тогда поле принимает значение вида 14:30. В обычном поле «Дата и время» ввод только времени приведёт к подстановке текущей даты с указанным временем.

Как задать время документа, отличное от текущего?

Откройте документ, щёлкните по полю даты в шапке и отредактируйте временную часть после пробела. При записи документ будет перепроведён на новое время. Если изменение заблокировано, проверьте дату запрета редактирования и свои права.

Почему в табеле нельзя ввести время как 8:00?

Поля табеля обычно хранят длительность в часах, а не время суток. Вводите число: 8 для полного дня, 7,5 для неполного. Формат «8:00» либо будет отклонён, либо интерпретирован неправильно.

Как программно установить время 09:00 для существующей даты?

Используйте выражение НачалоДня(ВашаДата) + 9 3600 — начало дня плюс девять часов в секундах. Для минут добавьте соответствующее количество секунд, например + 30 60 для получаса.

Влияет ли часовой пояс на вводимое время?

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