Быстрый старт · 11 мин
Как ввести время в 1С: способы, форматы и настройки
Как ввести время в 1С: ввод в поле формы, установка времени в документах, форматы времени, программное задание даты и времени, типичные ошибки и проверка результата.
Вопрос о вводе времени в 1С возникает в нескольких разных ситуациях: пользователю нужно указать время в поле документа (например, время прихода сотрудника или время отгрузки), бухгалтеру — изменить время проведения документа внутри дня, а разработчику — задать время программно в коде на встроенном языке. В каждом случае действия отличаются, и важно понимать, какой именно сценарий перед вами.
Платформа 1С:Предприятие хранит дату и время в едином значении типа «Дата», которое всегда содержит и календарную дату, и время с точностью до секунды. Поэтому «ввести время» обычно означает либо заполнить реквизит с составом даты «Дата и время», либо скорректировать временную часть уже существующего значения.
Ниже разобраны основные способы: ручной ввод в поле формы, работа с временем документов, настройка формата отображения, программный ввод через встроенный язык, а также типичные ошибки, из-за которых время «сбрасывается» или вводится некорректно.
Как 1С хранит дату и время
В платформе 1С нет отдельного типа «время» для реквизитов документов и справочников. Используется тип «Дата», у которого есть состав: «Дата», «Время» или «Дата и время». Если разработчик конфигурации при создании реквизита выбрал состав «Дата», поле будет принимать и отображать только календарную дату, а временная часть всегда будет равна 00:00:00.
Именно поэтому в одних полях вы можете ввести время, а в других — нет, сколько бы ни пытались. Это не ошибка пользователя, а свойство конфигурации. Проверить состав даты можно в конфигураторе: откройте свойства реквизита и посмотрите значение «Состав даты».
Отдельный случай — реквизит «Дата» самого документа. Он всегда содержит дату и время, потому что время определяет положение документа в последовательности проведения. По умолчанию 1С подставляет в новый документ текущую дату и текущее время сеанса.
Ручной ввод времени в поле формы
Если поле поддерживает время, ввод выполняется прямо с клавиатуры. Установите курсор в поле и наберите дату и время через пробел, например: 15.04.2026 09:45. Секунды можно опустить — платформа подставит нули. Допустимы и сокращённые формы: если ввести только время 14:30 в пустое поле с составом «Дата и время», 1С подставит текущую дату с указанным временем.
Второй способ — кнопка выбора справа от поля. Она открывает календарь, а под ним (или рядом) — поле времени, где часы и минуты задаются стрелками или вводом с клавиатуры. После нажатия «ОК» значение попадёт в поле целиком.
Удобные клавиши для правки: когда курсор стоит в поле даты, клавиши «+» и «−» сдвигают дату на день, а переход между датой и временем выполняется клавишей Tab или щелчком мыши по нужной части значения.
- 1Щёлкните в поле даты, чтобы в нём появился курсор
- 2Введите дату в формате ДД.ММ.ГГГГ, затем пробел и время ЧЧ:ММ
- 3Если нужны секунды, добавьте их через двоеточие: ЧЧ:ММ:СС
- 4Нажмите Enter или Tab, чтобы платформа приняла и отформатировала значение
- 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 — типичный признак неудачного преобразования.
НоваяДата = Дата(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, а документ после записи занимает ожидаемое место в журнале по времени. Если после ввода время обнулилось, поле имеет состав «Дата», и временная часть в нём не сохраняется.
Ещё одна типичная ситуация — время «само» меняется на текущее при записи документа. Так происходит, когда в конфигурации включена автоматическая установка текущей даты при записи или когда пользователь не имеет права изменять дату документа (например, включён запрет изменения данных в закрытом периоде). В этом случае проверьте дату запрета редактирования в настройках программы и свои права.
При обменах между базами следите за часовыми поясами: если сервер и клиент находятся в разных поясах, одно и то же абсолютное время может отображаться по-разному. Для критичных интеграций фиксируйте, в каком поясе хранится время, и при необходимости используйте универсальное время.
Как проверить результат
Поле показывает введённое время, например 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 для получаса.
Влияет ли часовой пояс на вводимое время?
В файловой базе на одном компьютере — практически нет. В клиент-серверном режиме и при обменах между базами в разных поясах время может отображаться по-разному. Для таких сценариев договоритесь о едином поясе хранения и используйте в коде ТекущаяДатаСеанса().