Время документа в 1С 8.3: ручная правка, код, перепроведение и часовые пояса
Содержание
Чтобы изменить время в документе в 1С 8.3, откройте документ, поставьте курсор в поле даты в шапке (рядом с номером, подпись «от») и исправьте часы, минуты и секунды после пробела: 05.10.2026 14:30:00. Затем нажмите Провести и закрыть — документ перепроведётся уже с новым моментом времени.
Сложности начинаются, когда время в поле не видно, программа не даёт записать документ или после правки «поехали» остатки и себестоимость. Для каждого из этих случаев есть свой приём: от правки формата поля до обработки, которая проставляет время сотне документов за минуту.
Зачем документу время и что от него зависит
Дата документа в 1С 8 — это не просто день, а точный момент с точностью до секунды. Платформа хранит его в стандартном реквизите Дата и по нему выстраивает все документы базы в одну хронологическую цепочку.
От времени зависит:
- 📦 списание по партиям и себестоимость — продажа в 10:00 не увидит поступление, проведённое в 11:00 того же дня;
- 💰 остатки по счетам и регистрам на момент проведения — отсюда ошибки «недостаточно остатка» при правильных количествах;
- 🧾 порядок в журналах и отчётах — оборотно-сальдовая ведомость за день покажет то же, но карточка счёта выстроит строки по времени;
- 📅 попадание в период — документ от
31.12 23:59:59относится к декабрю, а от01.01 00:00:00уже к новому году.
Если у двух документов дата и время совпадают до секунды, платформа упорядочивает их по внутренней ссылке. Повлиять на этот порядок вы не можете, поэтому поступление и реализацию одного дня лучше всегда разносить хотя бы на одну секунду.
Типичная картина: менеджер вводит задним числом пять поступлений и одну продажу, у всех время 00:00:00. Половина продаж проводится без себестоимости. Лечится сдвигом времени у продажи на более поздний момент и перепроведением.
Как поменять время документа в форме: ручной способ
Это основной способ, и обычно его хватает.
Пошагово
- Откройте документ из журнала или списка (
Покупки → Поступление (акты, накладные, УПД),Продажи → Реализация (акты, накладные, УПД)и т.п. в 1С:Бухгалтерии 3.0). - Щёлкните в поле даты в шапке документа. В нём записано, например,
05.10.2026 12:00:00. - Сотрите время после пробела и введите нужное в формате
ЧЧ:ММ:СС. - Нажмите
Провести и закрыть(илиЗаписать, если документ не нужно проводить).
Кнопка с календарём справа от поля меняет только день. Время в календаре не выбирается — его правят руками в самом поле.
Если в поле даты видно только число
В части форм время скрыто форматом поля. Варианты:
- откройте список документов: колонка
Датав списке обычно показывает и время, по ней удобно проверить порядок; - поменяйте время через обработку группового изменения (раздел ниже про массовую правку);
- если править время приходится постоянно — попросите программиста поменять формат поля в расширении конфигурации, а не в самой типовой конфигурации.
Правка формы прямо в типовой конфигурации снимает объект с поддержки и усложняет каждое обновление. Расширение даёт тот же результат без этих последствий.
Если документ не записывается
Самая частая причина — дата запрета изменения. Документы до этой даты нельзя ни перепровести, ни поменять в них время. В 1С:Бухгалтерии 3.0 настройка находится в Администрирование → Проведение документов, флажок Дата запрета изменения.
Снимать запрет должен ответственный пользователь (обычно главный бухгалтер), и только на время правки. После исправления верните прежнюю дату.
Если период закрыт и по нему сдана отчётность, сдвиг времени может изменить суммы в уже сданных формах. Сначала оцените последствия.
Время документа в режимах «Предприятие» и «Конфигуратор»
Частый вопрос: «Можно ли поправить время документа в конфигураторе?» Нет. Конфигуратор работает со структурой базы: формами, реквизитами, модулями. Данные — сами документы и их даты — меняются только в режиме 1С:Предприятие.
| Что нужно | Где делать | Кто делает |
|---|---|---|
| Поменять время одного документа | Предприятие, форма документа | Пользователь с правом изменения |
| Поменять время у группы документов | Предприятие, групповая обработка или внешняя обработка | Пользователь с полными правами |
| Показать время в поле даты формы | Конфигуратор, расширение конфигурации | Программист |
| Изменить, какое время ставится новым документам | Конфигуратор, модуль объекта или формы | Программист |
Режим «Все функции» для технической правки
Если документа нет в привычных разделах или нужен доступ ко всем видам документов, включите Все функции: Главное меню (кнопка с тремя полосками) → Сервис → Параметры, флажок Отображать команду «Все функции». После этого в главном меню появится пункт Все функции → Документы, где открывается любой список документов базы.
Время в документе, открытом через «Все функции», меняется так же — в поле даты формы.
Программное изменение времени документа через код
Когда типовая форма не даёт поменять время или нужно сделать это по правилу, используют встроенный язык. Код выполняется на сервере во внешней обработке или в консоли кода.
Базовый вариант для одного документа:
&НаСервере
Процедура ИзменитьВремяНаСервере(СсылкаНаДокумент, Часы, Минуты, Секунды)
Объект = СсылкаНаДокумент.ПолучитьОбъект();
Объект.Дата = НачалоДня(Объект.Дата) + Часы * 3600 + Минуты * 60 + Секунды;
Если Объект.Проведен Тогда
Объект.Записать(РежимЗаписиДокумента.Проведение);
Иначе
Объект.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
КонецПроцедуры
Что здесь происходит:
НачалоДня()обнуляет время, оставляя тот же календарный день.- К нему прибавляются секунды: дата в 1С складывается с числом как с количеством секунд. Например,
14:30:00— это14 * 3600 + 30 * 60 = 52 200секунд. - Проведённый документ записывается в режиме проведения, поэтому движения пересчитываются под новый момент.
Не используйте для таких правок Объект.ОбменДанными.Загрузка = Истина. Документ запишется без проверок и без перепроведения: дата сменится, а движения останутся старыми и разойдутся с документом.
Как задать время для нового документа
Если нужно, чтобы документы, введённые задним числом, получали не 00:00:00, а, скажем, конец дня, программист добавляет в расширение обработчик перед записью нового документа. Логика простая: если время равно нулю, поставить КонецДня(Дата) или фиксированные 12:00:00. Делайте это только по согласованию с бухгалтерией — от правила зависит порядок проведения всех новых документов.
Перепроведение и порядок документов после правки времени
Смена времени у одного документа ломает хронологию для всех документов после него. Программа не пересчитывает их сама.
Что проверить после изменения
- Сам документ перепроведён. Если вы только записали его, движения остались от старого времени.
- Документы после него. Себестоимость в продажах, остатки, взаиморасчёты зависят от того, что было проведено раньше.
- Закрытие месяца
. В 1С:Бухгалтерии 3.0 обработка
Операции → Закрытие месяцаподсказывает, когда нужно перепровести документы, и делает это сама.
Групповое перепроведение
Для перепроведения за период в типовых конфигурациях на БСП есть обработка Групповое перепроведение документов. В БП 3.0 она находится в Администрирование → Поддержка и обслуживание, группа корректировки данных, а также через Все функции → Обработки.
- Укажите период: с дня, в котором менялось время, по текущий день.
- При необходимости ограничьте виды документов.
- Запустите и дождитесь окончания. В крупной базе за год это может занять часы — запускайте вечером.
Перед групповым перепроведением сделайте копию базы. Если результат окажется хуже, вы откатитесь за пять минут, а не будете разбирать сотни движений.
Часовой пояс и время сервера: откуда берётся «чужое» время
Новый документ получает текущее время — но чьё? Здесь есть три источника.
- 🖥️ Время компьютера или сервера. В файловой базе берётся время компьютера пользователя, в клиент-серверной — время сервера 1С.
- 🌍 Часовой пояс информационной базы. Задаётся администратором; в программах на БСП обычно в
Администрирование → Общие настройки. - 👤 Часовой пояс сеанса. Платформа умеет пересчитывать время под пояс конкретного пользователя.
В коде это разные функции:
| Функция | Что возвращает |
|---|---|
ТекущаяДата() | Время компьютера, где выполняется код (на сервере — сервера) |
ТекущаяДатаСеанса() | Время с учётом часового пояса сеанса |
ЧасовойПоясСеанса() | Строковое имя часового пояса текущего сеанса |
Типовые конфигурации для даты новых документов используют ТекущаяДатаСеанса(). Если сервер стоит в Москве, а пользователи — в Новосибирске, без настройки пояса документы будут создаваться с московским временем, на 4 часа раньше местного.
Как исправить сдвиг времени
- Проверьте часы и часовой пояс в Windows на сервере 1С (в файловом варианте — на компьютере пользователя).
- Проверьте настройку часового пояса базы в программе.
- Если пользователи в разных поясах — решите, по какому времени ведётся учёт. Обычно это пояс головной организации.
Смена часового пояса или времени на сервере 1С затрагивает всех пользователей. Делайте её вне рабочих часов и предупредите людей: открытые сеансы лучше закрыть до изменения.
Уже созданные документы при смене пояса не сдвигаются. Их время придётся поправить вручную или обработкой.
Массовое изменение времени у группы документов
Когда нужно поменять время у десятков документов — например, у всех реализаций за день поставить вечер, а у поступлений утро, — по одному это делать долго.
Через групповое изменение реквизитов
В конфигурациях на БСП есть обработка Групповое изменение реквизитов. Открыть её проще всего через Все функции → Обработки.
- Выберите вид документа.
- Отберите документы — например, по дате и организации.
- В списке реквизитов найдите
Дата, если он доступен для изменения, и задайте новое значение. - Запустите изменение и перепроведите документы.
Минус способа: обработка ставит одну и ту же дату-время всем выбранным документам. Если нужно сохранить день и поменять только время, или проставить время с шагом — нужна своя обработка.
Через внешнюю обработку со сдвигом
Пример для реализаций за выбранный день: каждой ставится время с 18:00 с шагом в одну секунду, чтобы порядок был однозначным.
&НаСервере
Процедура СдвинутьВремяРеализаций(ДатаДня)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Док.Ссылка КАК Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Док
|ГДЕ
| Док.Дата МЕЖДУ &Начало И &Конец
| И НЕ Док.ПометкаУдаления
|УПОРЯДОЧИТЬ ПО
| Док.Дата";
Запрос.УстановитьПараметр("Начало", НачалоДня(ДатаДня));
Запрос.УстановитьПараметр("Конец", КонецДня(ДатаДня));
Выборка = Запрос.Выполнить().Выбрать();
Смещение = 0;
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.Дата = НачалоДня(ДатаДня) + 18 * 3600 + Смещение;
Если Объект.Проведен Тогда
Объект.Записать(РежимЗаписиДокумента.Проведение);
Иначе
Объект.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
Смещение = Смещение + 1;
КонецЦикла;
КонецПроцедуры
Первая реализация получит 18:00:00, вторая 18:00:01 и так далее. Сортировка по старой дате в запросе сохраняет прежний порядок документов между собой.
Что может пойти не так
- Переход через год. Номера документов в 1С обычно уникальны в пределах года. Документ, перенесённый в другой год, может получить конфликт номера.
- Ошибка при проведении одного документа. Обработка выше остановится на нём с сообщением. Исправьте документ вручную и запустите снова: уже обработанные получат то же время повторно, это безопасно.
- Сданная отчётность. Сдвиг внутри одного дня редко меняет суммы, но при списании по FIFO или средней может изменить себестоимость.
Частые вопросы
Почему после ввода даты время стало 00:00:00?
Можно ли поменять время в проведённом документе без перепроведения?
Видно ли в истории, кто менял время документа?
Почему время документа отличается от часов на моём компьютере?
Как сделать, чтобы поступление всегда было раньше продажи в тот же день?
09:00:00, а продаже — позже. Если документы вводятся пачками, удобнее правило в расширении, которое назначает время по виду документа.