Содержание · 7 разделов
Формат даты в 1С — это способ представления значений типа Дата с помощью встроенной функции ФорматДаты, языка запросов и системы компоновки данных (СКД). С его помощью можно вывести дату в нужном виде: только месяц и год, без времени, в формате ДД.ММ.ГГГГ и других. Функция ФорматДаты() преобразует дату в строку, позволяя задать шаблон; в запросах 1С 8.3 используется конструкция ФОРМАТ; в СКД формат настраивается в свойствах поля. В статье разберём все три механизма.
Руководство предназначено для разработчиков и администраторов 1С. Вы научитесь форматировать даты для печатных форм, отчётов, обмена данными, избегая типовых ошибок. Примеры ориентированы на актуальные версии 1С:Бухгалтерии 8, 1С:ЗУП и других типовых конфигураций.
Функция ФорматДаты() в 1С
Функция ФорматДаты() — основной инструмент для приведения даты к строке по заданному шаблону. Она доступна во встроенном языке, в выражениях отчётов и в печатных формах. Синтаксис: ФорматДаты(, , ).
- — исходное значение типа Дата (константа, реквизит, результат вычисления).
- — строковое выражение с символами-заполнителями.
- — код локализации (напр., "ru_RU") для названий месяцев и дней недели. Необязательный параметр.
На практике часто используют упрощённый вызов с двумя параметрами:
ФорматДаты(ТекущаяДата(), 'ДФ=dd.MM.yyyy')— выведет дату в виде "24.06.2026".ФорматДаты(ДатаДокумента, 'ДЛФ=ДД.ММ.ГГГГ')— аналогично, но с опорой на локализацию.ФорматДаты(ДатаДокумента, 'ДФ=ММММ')— выдаст только название месяца ("Июнь").
Полный перечень символов формата описан в документации 1С. Ниже — наиболее ходовые комбинации:
| Символ | Результат |
|---|---|
| dd | День двузначным числом |
| MM | Месяц двузначным числом |
| yy | Две последние цифры года |
| yyyy | Четырёхзначный год |
| MMММ | Полное название месяца |
| hh | Час |
| mm | Минута |
| ss | Секунда |
ДФ=dd.MM.yyyy — один из самых универсальных форматов. Он не зависит от региональных настроек и обеспечивает единообразие при передаче данных во внешние системы.
Совет
Параметр <Язык> в ФорматДаты() часто игнорируют, но он критичен для корректного склонения месяцев: ФорматДаты(Дата, 'ДЛФ=«дд» ММММ yyyy«г.»', 'ru_RU') гарантирует, что месяц будет в родительном падеже.
Формат даты в запросе 1С 8.3
В языке запросов 1С:Предприятие 8.3 для форматирования дат применяется функция ФОРМАТ. Она аналогична встроенной, но имеет некоторые особенности.
Синтаксис в запросе: ФОРМАТ(, ). Параметр задаётся по тем же правилам, что и во встроенном языке, однако допустимые символы немного отличаются.
ВЫБРАТЬ ФОРМАТ(Дата, 'ДФ=dd.MM.yyyy') КАК ОтформатированнаяДата ИЗ ...ВЫБРАТЬ ФОРМАТ(Дата, 'ДЛФ=ДД.ММ.ГГГГ') КАК ДатаЛокализованная ИЗ ...ВЫБРАТЬ ФОРМАТ(Дата, 'ДФ=yyyy-MM-dd') КАК ДатаISO ИЗ ...
Функция ФОРМАТ доступна в запросах начиная с версии платформы 8.3.10. Если конфигурация работает на более старой версии, форматирование приходится выполнять во встроенном языке после получения выборки.
Важно: в запросе нельзя получить название месяца с учётом локали напрямую — для этого потребуется дополнить запрос обработкой результата в коде. Функция ФОРМАТ в запросе оперирует фиксированными наборами символов, не поддерживая произвольные локализационные строки.
В нашей практике нередко встречаются ошибки, когда разработчик пытается задать в запросе шаблон 'ДЛФ' — он не работает в старых версиях платформы. Используйте 'ДФ' и при необходимости доводите формат в коде.
Настройка формата даты в СКД
Система компоновки данных (СКД) предоставляет собственный механизм форматирования дат. В отличие от запросов и встроенного языка, здесь настройка выполняется не через строку формата, а через диалог свойств поля.
Для поля отчёта в схеме компоновки данных откройте свойства, найдите группу «Формат» и настройте:
- Вид представления — Дата.
- Формат даты — один из предустановленных вариантов (Краткий, Полный и т.д.) или собственный шаблон.
- Временная зона — при необходимости задаётся смещение.
Пользовательский шаблон задаётся строкой вроде ДД.ММ.ГГГГ или yyyy-MM-dd. СКД интерпретирует её аналогично функции ФорматДаты().
Особенность: в СКД можно указать формат не только для обычного вывода, но и для группировок, ресурсов, итогов. Например, если дата используется в иерархии периодов, формат влияет на заголовки уровней.
Кроме того, в настройках варианта отчёта можно переопределить формат конкретного поля через условное оформление — это полезно, когда один набор данных используется в разных отчётах с разным представлением дат.
Исключение времени из даты
В 1С значение типа Дата всегда включает время, даже если заполнена только календарная часть. При выводе лишние нули времени (00:00:00) могут мешать восприятию. Чтобы убрать время, достаточно настроить формат.
Во встроенном языке: ФорматДаты(Дата, 'ДФ=dd.MM.yyyy') — время будет опущено. Если нужно сохранить и дату и время, но показать раздельно, используют составной формат.
В запросе: ФОРМАТ(Дата, 'ДФ=dd.MM.yyyy') — результат без времени. Аналогично ФОРМАТ(Дата, 'ДФ=hh:mm:ss') — только время.
В СКД: в свойствах поля достаточно выбрать формат даты без компонентов времени, например «Краткий» (по умолчанию ДД.ММ.ГГ). Если же в источнике данных время хранится и важно, в отчёте показывается только дата, СКД автоматически обрезает лишнее.
Обратите внимание: если в запросе используется сравнение дат, то отсечение времени функцией ФОРМАТ не влияет на условия отбора — сравнение всё равно учитывает полное значение. Для точного сравнения только по дате применяют функцию НАЧАЛОПЕРИОДА или явное отбрасывание времени.
Осторожно
При использовании ФОРМАТ(Дата, 'ДФ=dd.MM.yyyy') в условии отбора запрос вернёт строку, а не дату. Сравнение с диапазоном дат в этом случае не сработает — всегда приводите условия к типу Дата.
Получение только месяца или года из даты
Часто требуется вывести не полную дату, а лишь её часть — месяц или год. Для этого существуют несколько подходов.
- Функция ФорматДаты() с шаблоном.
ФорматДаты(Дата, 'ДФ=ММММ')вернёт полное название месяца (например, «Январь»).ФорматДаты(Дата, 'ДФ=yyyy')— четырёхзначный год.
- Запрос.
ФОРМАТ(Дата, 'ДФ=ММММ')вернёт сокращённое обозначение месяца тремя буквами (например, «Янв»).ФОРМАТ(Дата, 'ДФ=yyyy')— год как в п.1. Если нужен номер месяца, можно применить функции МЕСЯЦ(Дата) и ГОД(Дата) без форматирования.
- СКД. В выражении поля отчёта используйте:
Формат(Дата, "ММММ")илиФормат(Дата, "yyyy"). Либо предварительно в запросе выделите нужную часть и выводите как число.
Для группировки по месяцам с подписью удобнее сначала в запросе получить начало месяца (НАЧАЛОПЕРИОДА(Дата, МЕСЯЦ)), а затем в СКД отформатировать это поле.
Преобразование даты в строку
При обмене данными, выгрузке в Excel или формировании печатных форм дату приходится превращать в строку. Функция ФорматДаты() — это и есть основной механизм такого преобразования. Результат всегда имеет тип Строка.
Дополнительно можно использовать:
Строка(Дата)— даёт представление по умолчанию в зависимости от региональных настроек. Не рекомендуется для обмена.ПредставлениеДаты(Дата)— аналогично.ФорматДаты(...)— наиболее гибкий способ.
Примеры:
ФорматДаты(Дата, 'ДФ=dd.MM.yyyy')— строка "24.06.2026".ФорматДаты(Дата, 'ДФ=yyyy-MM-ddThh:mm:ss')— строка в формате ISO 8601: "2026-06-24T12:30:00".ФорматДаты(Дата, 'ДФ=dd.MM.yy hh:mm')— "24.06.26 12:30".
Важно: при преобразовании в строку теряется тип данных, поэтому дальнейшая сортировка или сравнение будут работать как со строкой. Если предполагается последующая обработка, лучше сохранить дату в исходном виде, а форматировать уже на уровне представления (например, в СКД).
Популярные форматы: ДД.ММ.ГГГГ и другие
Ниже перечислены наиболее востребованные форматы дат в 1С и соответствующие им шаблоны.
| Формат | Шаблон (для встроенного языка) | Примечание |
|---|---|---|
| ДД.ММ.ГГГГ | 'ДЛФ=ДД.ММ.ГГГГ' | Зависит от локали |
| dd.MM.yyyy | 'ДФ=dd.MM.yyyy' | Фиксированный, не зависит от локали |
| ГГГГ-ММ-ДД (ISO) | 'ДФ=yyyy-MM-dd' | Удобен для обмена |
| полное название месяца год | 'ДФ=ММММ yyyy' | Например, «Июнь 2026» |
| день, месяц прописью, год | 'ДФ=«дд» ММММ yyyy«г.»' | «24 июня 2026 г.» |
Для запросов те же строки формата передаются в функцию ФОРМАТ: ФОРМАТ(Дата, 'ДФ=yyyy-MM-dd').
В СКД в поле «Формат» можно ввести строку прямо как в таблице, но удобнее выбрать из предустановленных. Однако для ISO-формата потребуется ввести вручную: yyyy-MM-dd.
Выбор формата зависит от задачи. Для внутренних печатных форм обычно ориентируются на локаль (ДЛФ), для внешнего обмена — на фиксированный шаблон (ДФ). Если форматирование требуется часто, вынесите шаблон в константу или параметр сеанса.
Если нужно внедрить нестандартное форматирование дат в Вашей 1С, специалисты компании Интеграция помогут выполнить доработку под ключ — настроят печатные формы и отчёты.
Материал носит справочный характер и не является налоговой или юридической консультацией; для применения к Вашей ситуации согласуйте действия с бухгалтером или юристом.









ОбсуждениеВопросы читателей и ответы эксперта · 3 веток