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

Разработка и Конфигурация · 10 мин

Как задать формат даты в 1С

Как задать формат даты в 1С: региональные настройки сеанса, функция Формат(), форматные строки ДЛФ, отображение дат в отчётах, печатных формах и типичные ошибки.

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

Основной инструмент разработчика — функция встроенного языка Формат(), которая преобразует значение типа «Дата» в строку по заданному шаблону. Для пользовательских интерфейсов и отчётов чаще применяются свойства «Формат» и «ФорматРедактирования» элементов формы и параметры СКД. А глобальный вид дат по умолчанию определяется региональными установками информационной базы.

Ниже разобраны все способы: от простой смены региональных настроек до форматных строк вида ДЛФ=DD и локальных форматов Л=. Для каждого способа указано, когда он применим, какие есть ограничения и как проверить результат.

От чего зависит формат даты в 1С

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

Из-за этого одна и та же база может показывать даты по-разному у разных пользователей: у одного «01.03.2026», у другого «3/1/2026». Это не ошибка данных, а различие региональных настроек. Понимание этой иерархии важно, чтобы не пытаться исправить кодом то, что решается настройкой.

Дата «плывёт» только у одного пользователяПроблема в его региональных настройках

Проверьте язык и регион в ОС этого компьютера

Дата не так выглядит вездеРегиональные установки базы

Откройте Администрирование → Региональные установки ИБ в конфигураторе

Неверный вид только в одном отчёте или формеЛокальный формат объекта

Проверьте свойство Формат у поля или параметр формата в СКД

Как изменить региональные установки информационной базы

Глобальный способ задать формат даты для всей базы — изменить региональные установки в конфигураторе. Откройте конфигуратор, в меню выберите «Администрирование» → «Региональные установки информационной базы». В появившемся окне задаются язык, формат даты, времени, чисел и логических констант.

На закладке «Форматы» можно выбрать язык (страну), формат которой будет использоваться, либо вручную задать шаблон даты, например дд.ММ.гггг. После сохранения все даты, для которых формат не переопределён явно, будут отображаться по новым правилам. Изменения применяются к новым сеансам, поэтому пользователям стоит перезайти в базу.

Порядок изменения региональных установок
  1. 1
    Откройте базу в конфигураторе с правами администратора
  2. 2
    Перейдите: Администрирование → Региональные установки информационной базы
  3. 3
    На закладке «Форматы» выберите язык или задайте шаблон даты вручную
  4. 4
    Сохраните настройки и попросите пользователей перезайти в сеанс
  5. 5
    Проверьте отображение даты в журнале документов

Если база файловая и запускается под разными операционными системами, региональные установки базы особенно важны: они задают единый вид дат независимо от настроек конкретного компьютера. В клиент-серверном варианте приоритет имеют установки базы, а не сервера.

Функция Формат() — основной способ в коде

Во встроенном языке дата преобразуется в строку функцией Формат(Значение, ФорматнаяСтрока). Для дат используются параметры группы «Д» (дата) и «Л» (локальный формат). Простейшие варианты: ДЛФ=D — короткая дата (01.03.2026), ДЛФ=DD — длинная дата с названием месяца (1 марта 2026 г.), ДЛФ=DT — дата со временем.

ДатаСтрокой = Формат(ТекущаяДатаСеанса(), "ДЛФ=DD");

// Результат: 1 марта 2026 г.

ДатаВремя = Формат(Документ.Дата, "ДЛФ=DT");

// Результат: 01.03.2026 14:30:00

Если нужен произвольный шаблон, используется параметр ДФ с символами-заменителями: д — день, М — месяц, г — год, ч — часы, м — минуты, с — секунды. Например, ДФ=yyyy-MM-dd даст строку «2026-03-01», что удобно для обмена с внешними системами и веб-сервисами.

ДляОбмена = Формат(ДатаДокумента, "ДФ=yyyy-MM-dd");

// Результат: 2026-03-01

СВременем = Формат(ДатаДокумента, "ДФ='dd.MM.yyyy HH:mm:ss'");

// Результат: 01.03.2026 14:30:00

Формат даты для разных языков и локалей

Параметр Л (локаль) определяет, на каком языке и по каким правилам формируется строка. Например, Формат(Дата, "Л=en_US; ДЛФ=DD") выведет длинную дату на английском языке, а Л=uk_UA — на украинском. Это важно для многоязычных баз и печатных форм для иностранных контрагентов.

Коды локалей соответствуют стандартным обозначениям языка и страны: ru_RU, en_US, en_GB, de_DE и т.д. Если локаль не указана, используется локаль текущего сеанса. При этом сам шаблон ДФ (например, yyyy-MM-dd) от локали не зависит — он выводит символы как задано.

Формат даты в формах, отчётах и печатных формах

Поле ввода на форме

У элемента формы «Поле ввода» есть свойство «Формат» — оно определяет, как значение отображается, когда поле не в режиме редактирования. Свойство «ФорматРедактирования» задаёт вид при вводе. Оба заполняются через конструктор форматной строки: нажмите кнопку выбора в поле свойства и соберите нужный формат мышью.

Отчёт на СКД

В системе компоновки данных формат поля даты задаётся на закладке «Наборы данных» или «Настройки» → «Выбранные поля» → оформление поля, параметр «Формат». Туда же вписывается строка вида ДЛФ=D или ДФ=MM.yyyy — например, чтобы показывать только месяц и год в группировке.

Табличный документ и печать

В макете печатной формы у ячейки табличного документа есть свойство «Формат». Если ячейка содержит параметр с датой, задайте формат прямо в макете — тогда в коде достаточно передать само значение даты, а платформа отформатирует её при выводе. Это надёжнее, чем передавать в параметр готовую строку: значение остаётся датой и корректно сортируется и сравнивается.

Сравнение способов задания формата

Региональные установки ИБ

Меняет вид всех дат по умолчанию. Не подходит, если нужен разный формат в разных местах

Функция Формат() в коде

Полный контроль над строкой. Минус: результат — строка, теряются операции с датами

Свойство Формат в форме/макете/СКД

Форматирует только отображение, значение остаётся датой. Оптимально для интерфейса и печати

Частые ошибки и ограничения

Наиболее распространённая ошибка — путаница между русским и английским написанием символов шаблона. В параметре ДФ используются символы языка встроенного кода: в русском варианте синтаксиса — д, М, г, ч, м, с, в английском — d, M, y, h, m, s. Смешивание приводит к неожиданным результатам: например, «м» — это минуты, а не месяц.

Вторая типичная проблема — попытка отформатировать пустую дату. Значение «01.01.0001» (пустая дата в 1С) при выводе через ДЛФ=D даст «01.01.0001», что выглядит странно в отчётах. Перед форматированием проверяйте значение функцией ЗначениеЗаполнено() или сравнением с '00010101'.

Типичные ошибки
01
Передача в печатную форму строки вместо даты — ломается сортировка и автоформат макета
02
Использование жёсткого шаблона ДФ там, где нужен локализованный вид — у иностранных пользователей дата выглядит непривычно
03
Забытая проверка на пустую дату — в отчёте появляется 01.01.0001
04
Смена региональных установок ОС вместо установок ИБ — у других пользователей ничего не меняется

Ещё одно ограничение: функция Формат() возвращает строку. Если отформатированное значение потом участвует в запросе или сравнении как дата, сравнение будет строковым и даст неверный результат. Форматируйте дату только на последнем шаге — при выводе пользователю или передаче во внешнюю систему.

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

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

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

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

Дата в списке документов
Норма

Соответствует региональным установкам ИБ

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

Отличается у разных пользователей — проверьте ОС клиентов

Дата в печатной форме
Норма

Выводится в формате, заданном в макете

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

01.01.0001 — не заполнено значение параметра

Строка из функции Формат()
Норма

Совпадает с шаблоном ДФ/ДЛФ

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

Месяц заменён минутами — перепутаны символы М и м

Итог

Что важно запомнить

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

Часто задаваемые вопросы

Как вывести дату в виде «01.03.2026» независимо от настроек системы?

Используйте функцию Формат с явным шаблоном: Формат(Дата, "ДФ=dd.MM.yyyy") в английском синтаксисе или "ДФ=дд.ММ.гггг" в русском. Такой шаблон не зависит от региональных установок и даст одинаковый результат у всех пользователей.

Почему в отчёте дата показывается со временем, хотя нужно только число?

Значение типа «Дата» в 1С всегда содержит время. Если формат не задан, платформа может выводить его полностью. Задайте для поля отчёта формат ДЛФ=D (только дата) в настройках СКД или свойствах поля — время перестанет отображаться, но останется в значении.

Как получить название месяца прописью, например «март»?

Используйте длинный формат: Формат(Дата, "ДЛФ=DD") вернёт строку вида «1 марта 2026 г.». Если нужен только месяц, задайте шаблон Формат(Дата, "ДФ=MMMM") — он выведет полное название месяца на языке текущей локали.

Можно ли задать разный формат даты для разных пользователей?

Глобально — нет, региональные установки едины для базы. Но локально да: формат полей форм и отчётов можно переопределять, а в коде использовать параметр Л= с локалью, зависящей от настроек конкретного пользователя или языка сеанса.

Что делать, если после форматирования дата не сравнивается в запросе?

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