Разработка и Конфигурация · 7 мин
Как в 1С вывести только день, месяц и год
Как в 1С вывести дату без времени: функция Формат с ДЛФ=D, форматная строка ДФ=dd.MM.yyyy, настройки в запросах, СКД и макетах печатных форм.
В 1С реквизиты типа «Дата» по умолчанию хранят и дату, и время, поэтому при выводе на экран или в печатную форму часто получается значение вида «15.03.2026 14:32:07». Для документов, отчётов и писем такой формат избыточен — нужно оставить только день, месяц и год. Задача решается несколькими способами в зависимости от того, где выводится дата: в коде, в запросе, в СКД или в макете.
Основной инструмент — функция Формат() и форматная строка с параметром ДЛФ (локальный формат даты) или ДФ (явный шаблон). Оба варианта работают во всех современных версиях платформы 1С:Предприятие 8.3 и не требуют изменения конфигурации, если дата выводится программно. Ниже разобраны все рабочие сценарии с примерами кода и типичными ошибками.
Вывод даты без времени через функцию Формат
Самый простой способ — передать дату в функцию Формат() с параметром ДЛФ=D. Буква D означает «короткая дата» в соответствии с региональными настройками сеанса. Результат — строка вида «15.03.2026» без часов, минут и секунд.
ДатаДокумента = ТекущаяДатаСеанса();
СтрокаДаты = Формат(ДатаДокумента; "ДЛФ=D");
// Результат: "15.03.2026"
Сообщить("Документ от " + СтрокаДаты);
Обратите внимание: ДЛФ зависит от настроек локализации. Если у пользователя в региональных настройках стоит другой порядок (месяц-день-год), результат будет отличаться. Для печатных форм, где формат строго регламентирован, лучше использовать явный шаблон ДФ (см. следующий раздел).
СтрокаДаты = Формат(ТекущаяДатаСеанса(); "ДЛФ=D"); // 15.03.2026Явный шаблон даты через параметр ДФ
Параметр ДФ задаёт точный шаблон вывода независимо от региональных настроек. Для «день.месяц.год» используется строка ДФ=dd.MM.yyyy. Здесь dd — день с ведущим нулём, MM — месяц с ведущим нулём, yyyy — четырёхзначный год.
Формат(МояДата; "ДФ=dd.MM.yyyy"); // 05.03.2026
Формат(МояДата; "ДФ=d MMMM yyyy"); // 5 марта 2026
Формат(МояДата; "ДФ=dd/MM/yy"); // 05/03/24
Если нужен формат «дд.мм.гггг» с прописным месяцем, применяйте сочетание ДЛФ=DD — длинный формат даты, например «5 марта 2026 г.». Это удобно для договоров и официальных писем, где дата пишется словами.
Сравнение вариантов формата
Короткая дата по региональным настройкам. Подходит для экранных форм, но результат зависит от локали пользователя.
Строгий шаблон, всегда одинаковый результат. Рекомендуется для печатных форм и обменов данными.
Дата прописью (5 марта 2026 г.). Подходит для договоров и официальных документов.
Дата без времени в запросах
В языке запросов 1С функции Формат() нет — там дату приводят к началу дня функцией НАЧАЛОПЕРИОДА(Дата, ДЕНЬ). Она возвращает дату со временем 00:00:00, что часто достаточно для сравнений и группировок.
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(Реализация.Дата, ДЕНЬ) КАК День,
СУММА(Реализация.Сумма) КАК Сумма
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
СГРУППИРОВАТЬ ПО
НАЧАЛОПЕРИОДА(Реализация.Дата, ДЕНЬ)
Если из запроса нужна именно строка «дд.мм.гггг», то форматирование выполняется уже после выборки — при обходе результата запроса через Формат(). В самом запросе дату в строку заданного вида преобразовать стандартными средствами нельзя.
Формат даты в СКД и отчётах
В системе компоновки данных формат поля задаётся без кода. Откройте настройку отчёта, выберите поле с датой и на закладке «Оформление» (или в свойствах поля в конструкторе СКД) установите параметр «Формат» равным ДЛФ=D или ДФ=dd.MM.yyyy.
В пользовательском режиме (вариант отчёта) то же самое доступно через «Настройки → Дополнительные настройки → Оформление», если разработчик разрешил изменение оформления полей. Для типовых отчётов проще всего выбрать поле даты и задать формат в расширенных настройках.
- 1Откройте схему компоновки данных, закладка «Наборы данных» или «Настройки».
- 2Найдите поле с датой в списке выбранных полей.
- 3Откройте свойства оформления поля и задайте параметр Формат = ДЛФ=D.
- 4Сохраните схему и сформируйте отчёт — дата выведется без времени.
Дата в печатных формах и макетах
В табличных макетах у ячейки есть свойство «Формат» — впишите туда ДЛФ=D, и параметр с датой будет выводиться без времени автоматически. Это избавляет от форматирования в коде при заполнении макета.
Если макет заполняется программно, форматируйте значение перед присвоением параметру: Область.Параметры.ДатаДокумента = Формат(Документ.Дата; "ДЛФ=D");. Для договоров часто требуется дата прописью — используйте ДЛФ=DD, чтобы получить «15 марта 2026 г.».
Проверка результата и ограничения
После настройки проверьте вывод на дате с ненулевым временем и на первом числе месяца — так сразу видно, сохраняются ли ведущие нули. Шаблон ДФ=d.M.yyyy выведет «5.3.2026», а ДФ=dd.MM.yyyy — «05.03.2026»; для документов обычно требуется второй вариант.
Учтите ограничение: формат влияет только на отображение, исходное значение в базе не меняется. Если требуется физически хранить дату без времени (например, день рождения), при записи присваивайте реквизиту НачалоДня(ЗначениеДаты) или используйте состав даты «Дата» в свойствах реквизита в конфигураторе.
Как проверить результат
Виден только день, месяц и год, например 05.03.2026
Отображается время 0:00:00 или исходное время
Ведущие нули на месте: 01.02.2026
Нули потеряны или дата обрезана
Сравниваются значения типа Дата
Сравниваются отформатированные строки
Частые вопросы
Как убрать время у даты в реквизите справочника навсегда?
В конфигураторе откройте свойства реквизита и установите «Состав даты» = «Дата». Тогда время при вводе и хранении отсекается платформой, и форматировать значение при выводе не потребуется.
Чем ДЛФ=D отличается от ДФ=dd.MM.yyyy?
ДЛФ=D берёт короткий формат из региональных настроек сеанса и может меняться у разных пользователей. ДФ=dd.MM.yyyy — жёсткий шаблон, результат всегда одинаковый, поэтому для печатных форм и обменов предпочтителен именно он.
Как вывести дату словами, например «15 марта 2026 г.»?
Используйте длинный локальный формат: Формат(Дата; "ДЛФ=DD"). Результат зависит от языка локализации, но для русского интерфейса выдаст полную дату прописью.
Почему после НАЧАЛОПЕРИОДА в отчёте всё равно видно время?
НАЧАЛОПЕРИОДА обнуляет время до 00:00:00, но тип значения остаётся «Дата», и при выводе без формата время отображается. Добавьте формат ДЛФ=D в оформлении поля отчёта или примените Формат() при выводе.
Можно ли отформатировать дату прямо в тексте запроса?
Нет, язык запросов не имеет функции форматирования в строку. Выбирайте дату как есть, а строковое представление формируйте при обходе результата через Формат() или настройкой формата поля в СКД.
Что важно запомнить
Для вывода только дня, месяца и года применяйте Формат(Дата; "ДЛФ=D") или строгий шаблон ДФ=dd.MM.yyyy. В запросах время обнуляют через НАЧАЛОПЕРИОДА, в СКД и макетах формат задаётся в свойствах поля. Сравнивать и хранить следует исходные значения типа Дата, а форматирование использовать только для отображения.