Смена даты в 1С 8.3: от рабочей даты сеанса до массового переноса документов
Содержание
Изменить дату в 1С Предприятие можно на трёх уровнях. Если нужно, чтобы новые документы сами создавались прошлым числом, меняют рабочую дату сеанса. Если ошиблись в одном документе — правят поле даты в его шапке и перепроводят. Если перенести надо десятки документов — используют обработку группового изменения или внешний код.
Системную дату компьютера ради этого трогать не нужно. В клиент-серверной базе она вообще не поможет: время берётся с сервера. А закрытый период ни один из способов не откроет — для него есть отдельная настройка даты запрета.
Какой способ смены даты выбрать
Сначала определите, что именно нужно поменять. От этого зависит и путь, и риски.
| Задача | Способ | Что затрагивает | Риск |
|---|---|---|---|
| Вбить пачку документов прошлым числом | Рабочая дата сеанса | Только значение даты по умолчанию в новых документах | Нет, данные не меняются |
| Исправить дату одного документа | Поле даты в шапке + перепроведение | Движения этого документа | Низкий, если период открыт |
| Перенести документ в закрытый период | Временная смена даты запрета | Учёт закрытого месяца | Средний: нужно перезакрыть месяц |
| Перенести много документов | Групповое изменение реквизитов или внешняя обработка | Движения всех документов | Высокий без резервной копии |
| Сдвинуть время сеанса в целом | Часовой пояс базы / время сервера | Все пользователи | Высокий, только администратору |
Если вы просто вводите первичку за прошлый месяц, вам почти всегда нужна рабочая дата, а не правка уже проведённых документов.
Рабочая дата: как поменять дату текущего сеанса в режиме Предприятия
Рабочая дата — это значение, которое 1С подставляет по умолчанию в новые документы, отчёты и фильтры. Механизм есть в самой платформе 8.3, поэтому работает одинаково в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других типовых конфигурациях.
Как установить рабочую дату
- Откройте главное меню — кнопку с тремя полосками в левом верхнем углу окна программы.
- Выберите
Сервис → Параметры. - Найдите в окне параметров блок «Рабочая дата» (в разных версиях платформы он может стоять на отдельной вкладке) и переключитесь с «Использовать текущую дату компьютера» на ручное значение и укажите нужное число.
- Нажмите «Применить» или «ОК».
После этого новый документ откроется не сегодняшним числом, а установленным. Время в документе подставится текущее.
Рабочая дата хранится в настройках конкретного пользователя и не сбрасывается сама. Закончили вводить старые документы — верните «текущую дату», иначе через неделю обнаружите, что все новые накладные датированы прошлым кварталом.
Чем рабочая дата не является
- 🔹 Она не переносит уже проведённые документы.
- 🔹 Она не открывает закрытый период: дата запрета действует независимо.
- 🔹 Она не влияет на других пользователей и на регламентные задания.
- 🔹 Она не меняет серверное время, по которому пишется журнал регистрации.
Как поменять дату документа в 1С вручную
Самый частый случай: кассир провёл ПКО завтрашним числом, кладовщик — накладную не тем днём. Исправляется в самом документе.
- Откройте документ из журнала или списка.
- В шапке рядом с номером найдите поле даты («от …»).
- Введите новую дату вручную или выберите в календаре. Время можно оставить.
- Нажмите «Провести и закрыть».
Документ перезапишет свои движения под новой датой. Старые движения удаляются автоматически, вручную чистить регистры не нужно.
Что проверить после смены даты
- 📌 Номер документа. В большинстве конфигураций номера уникальны в пределах года. Перенесли документ из января в декабрь прошлого года — номер может совпасть с существующим, и программа откажется записывать. Очистите номер, 1С присвоит новый.
- 📌 Последующие документы. Если перенесли поступление товара на дату позже его продажи, продажа «повиснет» без остатка. Перепроведите период.
- 📌 Закрытие месяца . Дата ушла в уже закрытый месяц — закрытие придётся выполнить заново.
- 📌 Связанные документы. Счёт-фактура, созданный на основании, свою дату не поменяет. Исправьте его отдельно.
Если документ проведён в 23:59, а вы меняете только число, время останется прежним. Для документов одного дня порядок проведения определяется именно временем, поэтому иногда стоит поправить и его.
Работа с датами в режиме Конфигуратор
Частый вопрос: «Можно ли поменять дату документов через Конфигуратор?» Напрямую — нет. Конфигуратор работает с метаданными и администрированием базы, а не с пользовательскими данными. Таблицы документов из него не редактируются.
Чем Конфигуратор полезен в теме дат:
- 🛠 Отладка с нужной датой. Запустите отладку, установите рабочую дату в открывшемся сеансе — и проверяйте, как форма или отчёт ведут себя «вчера».
- 🛠 Выгрузка базы
Администрирование → Выгрузить информационную базув файл .dt перед массовыми правками. Это самая надёжная страховка. - 🛠 Поиск, где дата берётся. Глобальный поиск по модулю на
ТекущаяДата()иТекущаяДатаСеанса()показывает, откуда конфигурация подставляет даты.
Разница между этими функциями важна, если правите доработанную базу:
| Функция | Откуда берёт время |
|---|---|
ТекущаяДата() на клиенте | Часы компьютера пользователя |
ТекущаяДата() на сервере | Часы сервера 1С |
ТекущаяДатаСеанса() | Время сервера с учётом часового пояса сеанса |
Рабочая дата из параметров сеанса — отдельное значение: его возвращает функция РабочаяДата(), и именно она подставляется в новые документы.
Сдвиг времени всей базы
Если у сотрудников из Новосибирска документы ложатся московским временем, менять часы на сервере не надо. В конфигурациях на БСП часовой пояс базы задаётся в разделе Администрирование → Общие настройки. Программно это делает УстановитьЧасовойПоясИнформационнойБазы().
Смена часового пояса или системного времени сервера влияет на всех пользователей и регламентные задания сразу. Делайте это вне рабочего времени и предупредите коллег.
Закрытый период: почему 1С не даёт изменить дату и как это обойти легально
Типовые конфигурации защищают сданную отчётность датой запрета изменения. Если документ лежит до неё (или вы пытаетесь перенести его туда), 1С не даст записать изменения и покажет сообщение о запрете с указанием даты.
Где настраивается дата запрета
В Бухгалтерии 3.0, ЗУП 3.1 и УТ 11 механизм общий (из БСП):
- Откройте
Администрирование → Проведение документов(в ЗУП и УТ раздел может называться иначе — ищите блок «Даты запрета изменения» в разделе «Администрирование»). - Убедитесь, что флажок «Даты запрета изменения» включён, и перейдите по ссылке настройки.
- Посмотрите, какая дата стоит для всех пользователей и есть ли персональные исключения.
Дату запрета может менять только пользователь с полными правами или с отдельной ролью на её настройку. Рядовой бухгалтер этого не увидит.
Порядок правки в закрытом периоде
- Согласуйте правку с главным бухгалтером: в закрытом периоде уже может быть сдана отчётность.
- Администратор сдвигает дату запрета на день раньше нужного документа. Лучше — только для одного пользователя, а не для всех.
- Пользователь правит документ.
- Выполняется повторное закрытие месяца за все месяцы, начиная с изменённого.
- Дата запрета возвращается обратно.
Если в периоде уже сдана декларация, правка документа почти всегда означает уточнённую отчётность. Решение о ней принимает бухгалтер, а не администратор базы.
Рядом с датой запрета изменения есть похожая настройка — дата запрета загрузки данных из других программ. Она останавливает обмен, а не ручные правки. Путать их не стоит.
Массовое изменение дат обработками
Когда переносить нужно не один документ, а все поступления за неделю, вручную долго. Варианты такие.
Групповое изменение реквизитов
В типовых конфигурациях на БСП обработка доступна в разделе Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов.
- Выберите вид документов.
- Задайте отбор: период, организацию, склад.
- Выберите реквизит для изменения и новое значение.
- Запустите изменение и посмотрите итог: какие объекты не записались и почему.
Ограничение: стандартный реквизит «Дата» в списке может не предлагаться, а проведённые документы обработка перезаписывает с проведением. Если нужного реквизита нет — переходите к внешней обработке.
Внешняя обработка
Минимальный код, который переносит выбранные документы на новую дату с сохранением времени и перепроведением. Выполняется на сервере:
&НаСервере
Процедура ПеренестиДокументыНаСервере(МассивСсылок, НоваяДата)
Для Каждого Ссылка Из МассивСсылок Цикл
ДокОбъект = Ссылка.ПолучитьОбъект();
ВремяДокумента = ДокОбъект.Дата - НачалоДня(ДокОбъект.Дата);
ДокОбъект.Дата = НачалоДня(НоваяДата) + ВремяДокумента;
Попытка
Если ДокОбъект.Проведен Тогда
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
Иначе
ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
Исключение
Сообщить(СтрШаблон("Не перенесён %1: %2",
Строка(Ссылка), КраткоеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Код не обходит дату запрета: если период закрыт, запись упадёт с ошибкой, и документ попадёт в сообщения. Так и задумано.
Массовый перенос в рабочей базе без копии — плохая идея. Откатить сотню перепроведённых документов назад можно только из резервной копии.
Почему не стоит менять системную дату компьютера
Старый приём «перевести часы Windows на вчера» в 8.3 работает плохо:
- 🕐 В клиент-серверной базе дата сеанса берётся с сервера. Часы на вашем ПК ничего не изменят.
- 🕐 В файловой базе сдвинутые часы сбивают время в журнале регистрации и в документах, путают порядок проведения.
- 🕐 Сертификаты электронной подписи и обмен с операторами ЭДО проверяют время. С неверной датой отправка отчётности и документов начинает сбоить.
- 🕐 Регламентные задания и обновления, привязанные ко времени, срабатывают не тогда.
Для ввода документов прошлым числом есть рабочая дата. Других законных причин сдвигать системные часы у бухгалтера нет.