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

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

Как поменять год в дате в 1С

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

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

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

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

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

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

Если документ проведён, простое изменение даты без перепроведения оставит старые записи в регистрах. Поэтому порядок такой: изменили дату → нажали «Провести» или «Провести и закрыть». Если документ находится в закрытом периоде (установлена дата запрета изменения данных), платформа выдаст сообщение об ошибке и не даст сохранить изменения.

Особенности при смене года на более ранний или поздний

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

Изменение рабочей даты сеанса

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

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

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

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

ИсходнаяДата = ДокументОбъект.Дата;

НоваяДата = Дата(2026, Месяц(ИсходнаяДата), День(ИсходнаяДата),

Час(ИсходнаяДата), Минута(ИсходнаяДата), Секунда(ИсходнаяДата));

ДокументОбъект.Дата = НоваяДата;

ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);

Альтернатива — функция ДобавитьМесяц(ИсходнаяДата, 12) для сдвига ровно на год вперёд или ДобавитьМесяц(ИсходнаяДата, -12) на год назад. Этот способ короче, но помните про 29 февраля: при сдвиге 29.02 високосного года на невисокосный результатом будет 28 февраля или 1 марта в зависимости от логики функции — проверяйте такие даты отдельно.

bsl
НоваяДата = ДобавитьМесяц(ИсходнаяДата, 12); // сдвиг на год вперёд

Массовая замена года через запрос и обработки

Когда год нужно поменять в сотнях или тысячах записей, ручное редактирование неприемлемо. В языке запросов для этого есть функция ДОБАВИТЬКДАТЕ(Дата, ГОД, 1) — она работает и в консоли запросов, и в текстах модулей. Запросом можно сначала отобрать записи с ошибочным годом, а затем обойти результат и записать исправленные значения.

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

Порядок массовой замены года
  1. 1
    Создайте резервную копию базы или восстановите копию для теста
  2. 2
    Запросом отберите записи с ошибочным годом и зафиксируйте их количество
  3. 3
    Выполните замену через ДОБАВИТЬКДАТЕ или пересборку даты в коде
  4. 4
    Перепроведите затронутые документы
  5. 5
    Сверьте количество изменённых записей и итоговые остатки с исходными

Групповая обработка в типовых конфигурациях

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

Типичные ошибки и риски

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

Типичные ошибки
01
Изменение даты без перепроведения — движения по регистрам остаются на старой дате
02
Замена года в документах закрытого периода — искажение сданной отчётности
03
Игнорирование 29 февраля при сдвиге через ДобавитьМесяц — дата «переезжает» на соседний день
04
Массовая замена без предварительного подсчёта записей — невозможно проверить полноту изменений

Проверка результата после изменения

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

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

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

Количество изменённых записей
Норма

Совпадает с количеством отобранных до замены

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

Часть записей не изменилась — ищите ошибки прав или блокировки

Движения документов
Норма

Записи регистров стоят на новой дате

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

Движения остались на старой дате — документ не перепроведён

Оборотно-сальдовая ведомость
Норма

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

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

Появились минусы или разрывы последовательности

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

Нет дублей номеров в целевом году

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

Дублирующиеся номера — требуется ручная корректировка

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

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

Как поменять год в дате документа, который находится в закрытом периоде?

Нужно временно снять или сдвинуть дату запрета изменения данных (Администрирование → Поддержка и обслуживание → Даты запрета изменения данных), внести изменение, перепровести документ и вернуть запрет на место. Делать это должен пользователь с правами администратора, а само изменение в закрытом периоде следует согласовать с ответственным за учёт.

Можно ли поменять год сразу у всех документов одного вида?

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

Чем отличается ДОБАВИТЬКДАТЕ от ДобавитьМесяц?

ДОБАВИТЬКДАТЕ — функция языка запросов, работает внутри запроса и позволяет добавлять годы, месяцы, дни и другие единицы. ДобавитьМесяц — функция встроенного языка, сдвигает дату на указанное число месяцев (12 месяцев = год). Для сдвига на год обе дают сопоставимый результат, но применяются в разных контекстах.

Что будет с датой 29 февраля при переносе на невисокосный год?

При сдвиге через ДобавитьМесяц или ДОБАВИТЬКДАТЕ дата 29 февраля будет преобразована в ближайшую корректную дату невисокосного года. Такие записи нужно выявить запросом заранее и обработать индивидуально — например, перенести на 28 февраля или 1 марта по согласованию с пользователями.

Почему новые документы создаются с неправильным годом?

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

Нужно ли перепроводить документ после смены года в дате?

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