Быстрый старт · 9 мин
Как задать дату в 1С: документы, отчёты и код
Как задать дату в 1С: в документах, отчётах, коде и обработках. Форматы дат, функции ТекущаяДата, типичные ошибки и способы проверки результата.
Дата в 1С встречается повсюду: в шапке документа, в параметрах отчёта, в периоде начисления зарплаты, в коде модулей. При этом «задать дату» может означать разные действия — ввести число в поле, установить период в отчёте, сформировать значение программно или изменить дату запрета редактирования. Каждый сценарий имеет свои правила и ограничения.
Ключевой момент, который нужно понимать сразу: дата документа определяет, в каком периоде он отразится в учёте. Ошибка на один день может сдвинуть проводки в другой месяц, изменить остатки и нарушить последовательность документов. Поэтому работа с датами требует аккуратности, особенно в закрытых периодах.
Как задать дату в документе
Почти в каждом документе 1С есть поле «Дата» рядом с номером. По умолчанию при создании нового документа туда подставляется текущая дата компьютера. Чтобы изменить её, щёлкните по полю и введите число вручную в формате ДД.ММ.ГГГГ — разделители программа подставит сама, достаточно ввести цифры подряд.
Быстрые способы ввода экономят время. Нажатие клавиши F4 или щелчок по кнопке выбора открывает календарь, где можно кликнуть нужный день. Кнопка «Сегодня» (в некоторых конфигурациях — стрелка возле поля) возвращает текущую дату. В поле даты также работают сочетания: Ctrl+Shift+стрелки сдвигают дату на день вперёд или назад.
Если документ уже проведён, изменение даты может потребовать отмены проведения. Система предупредит об этом или запретит изменение, если период закрыт. После смены даты обязательно перепроведите документ — иначе проводки останутся на старую дату.
- 1Откройте документ и найдите поле «Дата» рядом с номером
- 2Введите новую дату цифрами или выберите день в календаре (F4)
- 3Если документ проведён — отмените проведение, измените дату и проведите заново
- 4Проверьте, в каком месяце документ отразился в отчётах
Как задать период в отчёте
В типовых отчётах (оборотно-сальдовая ведомость, анализ счёта, карточка счёта) период задаётся двумя полями — «с» и «по» — либо одной кнопкой выбора периода. Кликните по полю периода: откроется диалог, где можно выбрать стандартный вариант — «Этот месяц», «Прошлый квартал», «Этот год» — или задать произвольные даты начала и окончания.
В отчётах на СКД (система компоновки данных) период может быть спрятан в настройках. Нажмите «Ещё» → «Изменить вариант» или кнопку настройки и найдите параметры «Начало периода» и «Конец периода». Некоторые отчёты используют единый параметр «Период», который разворачивается в диапазон автоматически.
После изменения периода обязательно нажмите «Сформировать» — отчёт не перестраивается сам. Если данные выглядят странно, первым делом проверьте, какой период фактически установлен: это самая частая причина «пустых» отчётов.
Как задать дату программно в коде
Во встроенном языке 1С дата создаётся несколькими способами. Функция ТекущаяДата() возвращает дату и время компьютера (на клиенте) или сервера (в серверном контексте). Функция ТекущаяДатаСеанса() предпочтительнее в серверном коде — она учитывает часовой пояс сеанса и даёт единообразное значение.
Конкретную дату создают конструктором Дата(Год, Месяц, День) или литералом в одинарных кавычках: '20260115'. Литерал записывается в формате ГГГГММДД, при необходимости добавляются часы, минуты и секунды: '20260115143000'. Для получения частей даты используются функции Год(), Месяц(), День(), НачалоМесяца(), КонецДня().
// Текущая дата и время
ТекДата = ТекущаяДатаСеанса();
// Конкретная дата: 15 января
НужнаяДата = Дата(2026, 1, 15);
// Литерал даты
ДатаОтчёта = '20260115';
// Начало текущего месяца
НачалоПериода = НачалоМесяца(ТекущаяДатаСеанса());
При работе с датами в запросах используются другие конструкции: функция ДАТАВРЕМЯ(2026, 1, 15) и параметры типа &НачалоПериода. Пустая дата в запросе сравнивается с ДАТАВРЕМЯ(1,1,1), а в коде — с '00010101'.
ДатаДокумента = Дата(2026, 3, 31); // 31 марта
Если ДатаДокумента > ТекущаяДатаСеанса() Тогда
Сообщить("Дата в будущем — проверьте ввод");
КонецЕсли;Дата запрета редактирования: почему нельзя изменить дату
Если при изменении даты документа появляется сообщение о запрете редактирования, значит, в базе установлена дата запрета изменения данных. Это защитный механизм: бухгалтер закрывает период после сдачи отчётности, и документы прошлых месяцев становятся недоступны для правки.
Дата запрета настраивается в разделе «Администрирование» → «Поддержка и обслуживание» → «Регламентные операции» (в Бухгалтерии) или «Администрирование» → «Пользователи и права» → «Даты запрета изменения данных» (в конфигурациях на БСП). Изменить её может пользователь с правами администратора или с ролью настройки дат запрета.
Не стоит снимать запрет ради одного документа без согласования с ответственным за учёт: изменение прошлого периода может потребовать уточнённой отчётности. Правильный подход — выяснить, почему документ не был внесён вовремя, и оформить корректировку в текущем периоде, если это возможно.
Форматы дат и настройки отображения
1С хранит дату как значение с точностью до секунды, а формат отображения зависит от региональных настроек информационной базы. В разделе «Администрирование» → «Общие настройки» → «Региональные установки» можно изменить формат даты (ДД.ММ.ГГГГ или другой), первый день недели и начало рабочего времени.
В полях ввода программа понимает сокращённый ввод: «1501» превратится в 15 января текущего года, «150124» — в 15.01.2026. Это удобно при массовом вводе документов. Если введённое значение не распознаётся, поле подсвечивается красным, и записать объект не получится.
В печатных форматах и представлениях дат программно используется функция Формат() с форматной строкой, например Формат(Дата, "ДЛФ=D") для длинного формата. Форматная строка «ДЛФ=DD» выводит дату прописью с названием месяца.
Даты в справочниках, регистрах и обменах
В справочниках даты встречаются в периодических реквизитах: например, история изменения курса валюты или цены номенклатуры. Такие значения задаются через механизм периодичности — при вводе нового значения указывается дата, с которой оно действует. Получить актуальное значение программно помогает функция ПолучитьПоследнее() или срез последних в запросе.
В регистрах сведений с периодичностью каждая запись привязана к полю «Период». При ручном редактировании регистра дату задают в колонке «Период» — она определяет момент, начиная с которого запись актуальна. Ошибка в периоде приводит к тому, что программа берёт неверные значения в расчётах.
При обмене данными между базами даты передаются в формате ISO (ГГГГ-ММ-ДДTЧЧ:ММ:СС). Если после обмена даты сдвигаются на несколько часов, проверьте настройки часовых поясов на серверах обеих баз — это типичная причина расхождений.
Как проверить результат
Документ проведён, в отчётах отражается в нужном месяце
Документ не проведён или попал в другой период учёта
В шапке отчёта указан ожидаемый диапазон, данные заполнены
Период пустой или не тот, отчёт сформирован без данных
Период закрыт осознанно, дата соответствует решению бухгалтерии
Рабочие документы текущего периода заблокированы по ошибке
Частые вопросы о датах в 1С
Ниже собраны вопросы, которые чаще всего возникают у пользователей при работе с датами в типовых конфигурациях.
Почему 1С не даёт поставить дату раньше определённого числа?
Скорее всего, установлена дата запрета редактирования данных. Проверьте раздел «Администрирование» → «Даты запрета изменения данных». Снять или сдвинуть запрет может пользователь с соответствующими правами, обычно администратор или главный бухгалтер.
Как быстро ввести вчерашнюю дату в документ?
Установите курсор в поле даты и нажмите Ctrl+Shift+стрелка влево — дата сдвинется на день назад. Повторное нажатие сдвигает ещё на день. Аналогично стрелка вправо двигает дату вперёд.
Чем отличается ТекущаяДата() от ТекущаяДатаСеанса()?
ТекущаяДата() на клиенте возвращает время компьютера пользователя, на сервере — время сервера. ТекущаяДатаСеанса() всегда возвращает время с учётом часового пояса сеанса. В серверном коде и при работе пользователей из разных часовых поясов корректнее использовать ТекущаяДатаСеанса().
Как задать пустую дату в коде или запросе?
В коде пустая дата — это '00010101' или Дата(1,1,1). В запросе используется ДАТАВРЕМЯ(1,1,1). Присваивать строку "" полю типа Дата нельзя — будет ошибка преобразования типов.
Можно ли изменить дату у проведённого документа без отмены проведения?
В большинстве конфигураций — нет: при попытке записи система потребует отменить проведение. Даже если технически изменить дату через обработку, проводки останутся на старую дату, что создаст рассинхронизацию. Правильный порядок: отменить проведение, изменить дату, провести заново.
Почему в отчёте документ виден, а в журнале — на другую дату?
Отчёты обычно используют дату документа или период регистрации, а журналы сортируют по дате и времени создания. Если документ создан сегодня, но датирован вчера, в журнале он может отображаться не там, где ожидается. Проверьте отбор и сортировку журнала.
Что важно запомнить
Дата в 1С задаётся вводом в поле, выбором периода в отчёте или функциями в коде — способ зависит от задачи. После изменения даты документа всегда перепроводите его, а перед правкой прошлых периодов проверяйте дату запрета редактирования. В программной работе предпочитайте ТекущаяДатаСеанса() и тип Дата вместо строк.